Manifest
Each plugin has a manifest that provides information to the Stream Dock application and the Stream Dock store.
Example JSON
Here is an example of a manifest.json
file.
{
"Actions": [
{
"UUID": "com.mirabox.streamdock.demo.action1",
"Icon": "images/icon.png",
"state": 0,
"States": [
{
"FontSize": "11",
"FontStyle": "Bold",
"TitleAlignment": "bottom",
"Image": "images/index.jpg"
}
],
"Settings": {
},
"UserTitleEnabled": false,
"SupportedInMultiActions": false,
"Controllers": [
"Keypad",
"Information",
"SecondaryScreen",
"Knob",
"btn"
],
"Name": "Name",
"Tooltip": "Tooltip",
"PropertyInspectorPath": "index.html"
}
],
"Version": "2.0.0",
"Name": "Demo",
"Icon": "images/icon.png",
"CategoryIcon": "images/icon.png",
"Category": "",
"Description": "This is a sample plugin",
"CodePath": "index.html",
"SDKVersion": 1,
"Author": "MiraBox",
"URL": "http://video.hotspotek.com.cn/",
"OS": [
{
"Platform": "mac",
"MinimumVersion": "10.11"
},
{
"Platform": "windows",
"MinimumVersion": "7"
}
],
"Software": {
"MinimumVersion": "2.10.179.426"
},
"Nodejs":{
"Version": "20"
}
}
Members
Member | Type | Description |
---|---|---|
Actions | Required | Specifies the actions array. A plugin can have one or more actions. For example, the plugin may have six actions: Scene, Recording, Screenshot, Replay Record, Stream, Live Comments |
Author | Required | The author of the plugin |
CodePath | Required | The relative path to the HTML/binary files containing the plugin code |
Description | Required | A general description of the plugin's functionality |
Icon | Required | The relative path to an image without an extension. This image is displayed in the Stream Dock market. PNG images should be 288 x 288 pixels. You should provide both @1x and @2x versions (288 x 288 pixels and 576 x 576 pixels). The Stream Dock application handles loading the appropriate version of the image |
Name | Required | The name of the plugin. This string is displayed to users in the Stream Dock store |
Version | Required | The version of the plugin |
SDKVersion | Required | The current SDK version, which is 1 |
OS | Required | The list of supported operating systems and versions for the plugin |
Software | Optional | The list of supported operating systems and versions for the plugin |
Category | Optional | The name of the custom category to list actions under. This string is visible to users in the action list. If you do not provide a category, the action will be listed under "Custom" |
CategoryIcon | Optional | The relative path to a PNG image without an extension. This image is used in the action list. PNG images should be 28pt x 28pt. You should provide both @1x and @2x versions. The Stream Dock application handles loading the appropriate version of the image |
CodePathMac | Optional | The CodePath for macOS |
CodePathWin | Optional | The CodePath for Windows |
PropertyInspectorPath | Optional | The relative path to the Property Inspector HTML file, if your plugin wants to display custom settings in the Property Inspector. If omitted, the plugin will have an empty Property Inspector |
URL | Optional | A website providing more information about the plugin |
ApplicationsToMonitor | Optional | A list of application identifiers to monitor (applications that are started or terminated). See the applicationDidLaunch and applicationDidTerminate events |
Nodejs | Optional | Indicates that the plugin requires Node.js. If needed, please refer to the instructions at the bottom. |
Actions
Member | Type | Description |
---|---|---|
UUID | Required | The unique identifier for the action. It must be a Uniform Type Identifier (UTI) containing only lowercase alphanumeric characters (a-z, 0-9), hyphens (-), and periods (.). The string must use reverse DNS format. For example, if your domain is mirabox.com, you created a plugin named demo and your action is named action1, you could use the string com.mirabox.streamdock.demo.action1 as the unique identifier for the action |
Icon | Required | The relative path to a PNG image without an extension. This image will be displayed in the action list. PNG images should be 20pt x 20pt. You should provide both @1x and @2x versions. The Stream Dock application handles loading the appropriate version of the image. If the action is not visible in the action list (set to false), this icon is not required |
Name | Required | The name of the action. This string is visible to users in the action list |
state | Optional | Sets the state of the action corresponding to the index in the States array, default is 0 |
States | Required | Specifies the array of states. Each action can have one or more states |
PropertyInspectorPath | Optional | If you want to have different PropertyInspectorPaths based on the action, this can override the PropertyInspectorPath member in the plugin. The relative path to the Property Inspector HTML file (if your plugin wants to display custom settings in the Property Inspector) |
SupportedInMultiActions | Optional | Used to prevent the action from being used in multi-actions, default is true |
Tooltip | Optional | The string that will be displayed as a tooltip when the user hovers over the action in the action list |
Settings | Optional | This is the value where the setSettings method is used to persist settings in the plugin and can be initialized here |
UserTitleEnabled | Optional | Boolean to disable the user title field in the Property Inspector. Default is True |
Controllers | Optional | Specifies the array of controllers. Valid values include "Keypad", "Information", "SecondaryScreen", "Knob". Keypad for normal buttons, Information for view-only without touch or button events, SecondaryScreen for secondary screen display, Knob for rotary controls. Default is ["Keypad"] |
VisibleInActionsList | Optional | Hides the action in the actions list. This can be used for plugins only applicable to specific profiles. Default is True |
OS | Optional | An array of supported operating system platforms, e.g., ["mac", "windows"] |
States
Member | Type | Description |
---|---|---|
Image | Required | The default image for the state. When a custom image is set for the main state, Stream Dock automatically sets the secondary state to a darker version of the same icon |
MultiActionImage | Optional | Use this to provide a different image for the state when displayed in Multi-Action |
Name | Optional | Displayed in the dropdown menu for "Multi-Actions". For example, the "Game Capture Record" action has Start and Stop states. If no name is provided, the state will not be shown in Multi-Actions |
Title | Optional | Default title |
ShowTitle | Optional | Hides/shows the title. Default is true |
TitleColor | Optional | Default title color |
TitleAlignment | Optional | Default vertical alignment of the title. Possible values are "top", "bottom", and "center" |
FontFamily | Optional | Default font for the title |
FontStyle | Optional | Default font style for the title. Possible values are "Regular", "Bold", "Italic", and "Bold Italic". Note that some fonts may not support all values |
FontSize | Optional | Default font size for the title |
FontUnderline | Optional | Underline for the title, default is false |
OS
Member | Type | Description |
---|---|---|
Platform | Required | The name of the platform: mac or windows |
MinimumVersion | Required | The minimum version of the operating system required for the plugin. For Windows 7, you can use 7; for macOS 10.11, you can use 10.11 |
Example of a plugin supporting macOS 10.11 and higher and Windows 7 and higher:
"OS": [
{
"Platform": "mac",
"MinimumVersion" : "10.11"
},
{
"Platform": "windows",
"MinimumVersion" : "7"
}
]
Software
Member | Type | Description |
---|---|---|
MinimumVersion | Required | The minimum version of the Stream Dock application required for the plugin. This value should be set to support Stream Dock 2.10.179.426 or higher. |
Example of a plugin requiring Stream Dock 2.10.179.426 or higher:
"Software": {
"MinimumVersion" : "2.10.179.426"
}
ApplicationsToMonitor
Plugins can request notifications when certain applications start or terminate. This object should include an array for each platform, specifying the list of application identifiers to monitor (bundle identifiers on macOS and executables on Windows).ApplicationsToMonitor
"ApplicationsToMonitor": {
"mac": [
"com.apple.mail",
"com.apple.safari"
],
"windows": [
"someApp.exe",
"anotherApp.exe"
]
}
Nodejs
For plugins that depend on Node.js, we have integrated Node.js within the software. Plugins configured with this parameter will be launched using the built-in Node.js, eliminating the need to package Node.js dependencies within the plugin.
TIP
Currently, to keep the installation package size small, we have not included Node.js in our installation package. If you wish to use it, you can download Node.js separately and add it to the software's installation directory. In the future, we may consider including Node.js in the installation package.
To add it to the software installation directory, first, create a node
folder in the installation directory. Then, copy the node.exe
file from the bin
directory of Node.js into the node
folder.