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 | Specify an action array. A plugin can have one or more actions. |
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 | Relative path to the image, image dimensions should be 128px x 128px. |
Name | Required | The name of the plugin. |
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 the image. This image is used in the action list. The image should be a 48px x 48px 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 of the action. It should be a uniform type identifier containing only lowercase alphanumeric characters (a-z, 0-9), hyphens (-), and periods (.). It is recommended to use the reverse DNS format, for example: com.mirabox.streamdock.demo.action1 is specified as the unique identifier of the action. |
Icon | Required | Relative path to an image that will be displayed in the action list. Image size should be 40px x 40px. For actions that are not visible in the action list, this icon is not needed. |
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 | Relative path to the Property Inspector HTML file (if your plug-in wants to show some custom settings in the Property Inspector) |
SupportedInMultiActions | Optional | Used to identify whether the action can be used in the Operation Flow plugin. The default value 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 | Shows the action in the action list, by default 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 |
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
Windows: The software version needs to be 3.10.188.226
or above. Starting from 3.10.188.226
, the software has a built-in node module, and the built-in node version is 20.8.1
. Set Version
in manifest
to 20
. Other versions are not built-in yet.
Mac: The software version required is 3.10.191.0421
or above
