接收的事件
插件可以从 Stream Dock 应用程序接收的事件。
一旦 Stream Dock 应用程序加载了一个插件,并且用户设置了一些键来使用该插件,该插件将收到一些事件。同样,当显示属性检查器时,它将接收一些事件。
插件和属性检查器都可以接收以下事件:
| Event | 描述 |
|---|---|
| didReceiveSettings | settings 改变后收到的事件 |
| didReceiveGlobalSettings | globalSettings 改变后收到的事件 |
插件还可能会收到以下附加事件:
| Event | 描述 |
|---|---|
| keyDown | 当用户按下一个键时,插件将接收到该事件 |
| keyUp | 当用户释放一个键时,插件将接收该事件 |
| dialDown | 当用户按下旋钮时,插件将接收事件 |
| dialUp | 当用户释放按下的旋钮时,插件将接收事件 |
| dialRotate | 当用户旋转旋钮时,插件将接收到事件 |
| willAppear | 当 Stream Dock 上显示某个操作实例时(例如,首次插入硬件时或进入包含该操作的文件夹时),插件将收到该事件 |
| willDisappear | 当某个操作实例不再显示在 Stream Dock 上时,例如切换配置文件或文件夹时,插件将收到该事件 |
| titleParametersDidChange | 当用户更改标题或标题参数时,插件将收到该事件 |
| deviceDidConnect | 当设备插入计算机时,插件将接收该事件 |
| deviceDidDisconnect | 当设备从计算机上拔下时,插件将接收该事件 |
| applicationDidLaunch | 当启动受监控的应用程序时,插件将接收该事件 |
| applicationDidTerminate | 当受监控的应用程序终止时,插件将接收该事件 |
| systemDidWakeUp | 当电脑醒来时,插件将接收该事件 |
| propertyInspectorDidAppear | 当属性检查器出现在 Stream Dock 用户界面中时收到的事件,例如,在选择新实例时 |
| propertyInspectorDidDisappear | 从 Stream Dock 用户界面中销毁 Property Inspector 时收到的事件,例如,在选择新实例时旧实例就会触发改事件 |
| sendToPlugin | 当属性检查器使用该事件时,插件接收的事件 |
属性检查器还可能收到以下事件:
| Event | 描述 |
|---|---|
| sendToPropertyInspector | 当插件使用该事件时,属性检查器接收的事件 |
didReceiveSettings
settings 改变后收到的事件
{
"action": "com.mirabox.demo.action1",
"event": "didReceiveSettings",
"context": uniqueValue,
"device": uniqueValue,
"payload": {
"settings": {<json data>},
"coordinates": {
"column": 3,
"row": 1
},
"isInMultiAction": false
}
}
| 成员 | 描述 |
|---|---|
| action | 操作的唯一标识符 |
| event | didReceiveSettings |
| context | 标识实例操作的值 |
| device | 用于标识设备的值 |
| payload | 一个json对象 |
payload 对象包含以下成员:
| Payload | 描述 |
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 |
| coordinates | 触发的操作的坐标 |
| state | 仅当操作在其manifest.json中定义了多个状态时才设置。从 0 开始的值包含操作的当前状态 |
| isInMultiAction | 布尔值,指示操作是否位于 Multi-Action 内部 |
didReceiveGlobalSettings
globalSettings 改变后收到的事件
{
"event": "didReceiveGlobalSettings",
"payload": {
"settings": {<json data>}
}
}
| 成员 | 描述 |
|---|---|
| event | didReceiveGlobalSettings |
| payload | 一个json对象 |
payload 对象包含以下成员:
| Payload | 描述 |
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 |
dialDown
当用户按下旋钮时,插件将接收事件
{
"action": "com.mirabox.demo.action2",
"event": "dialDown",
"context": uniqueValue,
"device": uniqueValue,
"payload": {
"controller": "Encoder",
"settings": {<json data>},
"coordinates": {
"column": 0,
"row": 0
},
}
}
| 成员 | 描述 |
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 |
| event | dialDown |
| context | 标识实例操作的值 |
| device | 用于标识设备的值 |
| payload | 一个json对象 |
payload 对象包含以下成员:
| Payload | 描述 |
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 |
| coordinates | 触发的操作的坐标 |
| controller | Encoder |
dialUp
当用户释放按下旋钮时,插件将接收事件
{
"action": "com.mirabox.demo.action2",
"event": "dialUp",
"context": uniqueValue,
"device": uniqueValue,
"payload": {
"controller": "Encoder",
"settings": {<json data>},
"coordinates": {
"column": 0,
"row": 0
},
}
}
| 成员 | 描述 |
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 |
| event | dialUp |
| context | 标识实例操作的值 |
| device | 用于标识设备的值 |
| payload | 一个json对象 |
payload 对象包含以下成员:
| Payload | 描述 |
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 |
| coordinates | 触发的操作的坐标 |
| controller | Encoder |
dialRotate
当用户旋转旋钮时,插件将接收事件
{
"action": "com.mirabox.demo.action2",
"event": "dialRotate",
"context": uniqueValue,
"device": uniqueValue,
"payload": {
"controller": "Encoder",
"settings": {<json data>},
"coordinates": {
"column": 0,
"row": 0
},
"ticks": -1,
"pressed": false
}
}
| 成员 | 描述 |
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 |
| event | dialRotate |
| context | 标识实例操作的值 |
| device | 用于标识设备的值 |
| payload | 一个json对象 |
payload 对象包含以下成员:
| Payload | 描述 |
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 |
| coordinates | 触发的操作的坐标 |
| controller | Encoder |
| ticks | 一个整数,用于保存旋钮旋转时的“刻度”数。正值表示顺时针旋转,负值表示逆时针旋转 |
| pressed | 按下旋钮时处于旋转状态的布尔值 |
keyDown
当用户释放按下旋钮时,插件将接收事件
{
"action": "com.mirabox.demo.action2",
"event": "keyDown",
"context": uniqueValue,
"device": uniqueValue,
"payload": {
"settings": {<json data>},
"coordinates": {
"column": 0,
"row": 0
},
"state": 0,
"isInMultiAction": false
}
}
| 成员 | 描述 |
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 |
| event | keyDown |
| context | 标识实例操作的值 |
| device | 用于标识设备的值 |
| payload | 一个json对象 |
payload 对象包含以下成员:
| Payload | 描述 |
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 |
| coordinates | 触发的操作的坐标 |
| state | 仅当操作在其manifest.json中定义了多个状态时才设置。从 0 开始的值包含操作的当前状态 |
| isInMultiAction | 布尔值,指示操作是否位于 Multi-Action 内部 |
keyUp
当用户释放按下旋钮时,插件将接收事件
{
"action": "com.mirabox.demo.action2",
"event": "keyUp",
"context": uniqueValue,
"device": uniqueValue,
"payload": {
"settings": {<json data>},
"coordinates": {
"column": 0,
"row": 0
},
"state": 0,
"isInMultiAction": false
}
}
| 成员 | 描述 |
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 |
| event | keyUp |
| context | 标识实例操作的值 |
| device | 用于标识设备的值 |
| payload | 一个json对象 |
payload 对象包含以下成员:
| Payload | 描述 |
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 |
| coordinates | 触发的操作的坐标 |
| state | 仅当操作在其manifest.json中定义了多个状态时才设置。从 0 开始的值包含操作的当前状态 |
| isInMultiAction | 布尔值,指示操作是否位于 Multi-Action 内部 |
willAppear
当操作的实例显示在 Stream Dock 上时,例如,当首次插入硬件或输入包含该操作的文件夹时,插件将收到一个事件。在以下情况下,您将看到此类事件:
Stream Dock 应用程序启动
用户在配置文件之间切换
用户设置一个键来使用您的操作
{
"action": "com.mirabox.demo.action1",
"event": "willAppear",
"context": uniqueValue,
"device": uniqueValue,
"payload": {
"settings": {<json data>},
"coordinates": {
"column": 3,
"row": 1
},
"controller": "Keypad",
"state": 0,
"isInMultiAction": false
}
}
| 成员 | 描述 |
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 |
| event | willAppear |
| context | 标识实例操作的值 |
| device | 用于标识设备的值 |
| payload | 一个json对象 |
payload 对象包含以下成员:
| Payload | 描述 |
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 |
| coordinates | 触发的操作的坐标 |
| controller | Keypad正常的按键,Information只能看,没有触摸、按键事件,SecondaryScreen小屏幕显示,Knob旋钮 |
| state | 仅当操作在其manifest.json中定义了多个状态时才设置。从 0 开始的值包含操作的当前状态 |
| isInMultiAction | 布尔值,指示操作是否位于 Multi-Action 内部 |
willDisappear
当操作的实例停止在 Stream Dock 上显示时,例如,在切换配置文件或文件夹时,插件将收到一个事件。在以下情况下,您将看到此类事件:willDisappear
用户在配置文件之间切换
用户删除了操作
{
"action": "com.mirabox.demo.action1",
"event": "willDisappear",
"context": uniqueValue,
"device": uniqueValue,
"payload": {
"settings": {<json data>},
"coordinates": {
"column": 3,
"row": 1
},
"controller": "Keypad",
"state": 0,
"isInMultiAction": false
}
}
| 成员 | 描述 |
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 |
| event | willDisappear |
| context | 标识实例操作的值 |
| device | 用于标识设备的值 |
| payload | 一个json对象 |
payload 对象包含以下成员:
| Payload | 描述 |
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 |
| coordinates | 触发的操作的坐标 |
| controller | Keypad正常的按键,Information只能看,没有触摸、按键事件,SecondaryScreen小屏幕显示,Knob旋钮 |
| state | 仅当操作在其manifest.json中定义了多个状态时才设置。从 0 开始的值包含操作的当前状态 |
| isInMultiAction | 布尔值,指示操作是否位于 Multi-Action 内部 |
titleParametersDidChange
当用户更改动作实例的标题或标题参数时,插件将收到该事件
{
"action": "com.mirabox.demo.action1",
"event": "titleParametersDidChange",
"context": "uniqueValue",
"device": "uniqueValue",
"payload": {
"coordinates": {
"column": 3,
"row": 1
},
"settings": {<json data>},
"state": 0,
"title": "",
"titleParameters": {
"fontFamily": "",
"fontSize": 12,
"fontStyle": "",
"fontUnderline": false,
"showTitle": true,
"titleAlignment": "bottom",
"titleColor": "#ffffff"
}
}
}
| 成员 | 描述 |
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 |
| event | titleParametersDidChange |
| context | 标识实例操作的值 |
| device | 用于标识设备的值 |
| payload | 一个json对象 |
payload 对象包含以下成员:
| Payload | 描述 |
|---|---|
| settings | 此 JSON 对象包含持久存储的数据 |
| coordinates | 触发的操作的坐标 |
| title | 新标题 |
| state | 仅当操作在其manifest.json中定义了多个状态时才设置。从 0 开始的值包含操作的当前状态 |
| titleParameters | 描述新标题参数的 JSON 对象 |
titleParameters 对象包含以下成员:
| TitleParameters | 描述 |
|---|---|
| fontFamily | 标题字体 |
| fontSize | 标题的字体大小 |
| fontStyle | 标题的字体样式 |
| fontUnderline | 标题下划线的布尔值 |
| showTitle | 指标题是否可见的布尔值 |
| titleAlignment | 标题位置 |
| titleColor | 标题颜色 |
deviceDidConnect
当设备插入计算机时,插件将接收该事件
{
"event": "deviceDidConnect",
"device": uniqueValue,
"deviceInfo": {
"name": "Device Name",
"type": 0,
"size": {
"columns": 5,
"rows": 3
}
},
}
| 成员 | 描述 |
|---|---|
| event | deviceDidConnect |
| device | 用于标识设备的值 |
| deviceInfo | 一个json对象 |
deviceInfo 对象包含以下成员:
| device | 描述 |
|---|---|
| type | 设备类型 |
| size | 设备拥有的键的列数和行数 |
| name | 设备名称 |
deviceDidDisconnect
当设备从计算机上拔下时,插件将收到该事件
{
"event": "deviceDidDisconnect",
"device": uniqueValue
}
| 成员 | 描述 |
|---|---|
| event | deviceDidDisconnect |
| device | 用于标识设备的值 |
applicationDidLaunch
插件可以在其manifest.json中请求在某些应用程序启动或终止时收到通知。manifest.json应包含一个对象,该对象指定要监视的应用程序标识符列表。在 macOS 上,使用应用程序包标识符,而在 Windows 上使用 exe 文件名。例如,Apple Mail 示例插件使用以下内容:
"ApplicationsToMonitor": {
"mac": [
"com.apple.mail"
]
}
当启动受监视的应用程序时,插件将接收该事件
{
"event": "applicationDidLaunch",
"payload" : {
"application": "com.apple.mail"
}
}
| 成员 | 描述 |
|---|---|
| event | applicationDidLaunch |
| payload | 一个json对象 |
payload 对象包含以下成员:
| payload | 描述 |
|---|---|
| application | 已启动的应用程序的标识符 |
applicationDidTerminate
插件可以在其manifest.json中请求在某些应用程序启动或终止时收到通知。manifest.json应包含一个对象,该对象指定要监视的应用程序标识符列表。在 macOS 上,使用应用程序包标识符,而在 Windows 上使用 exe 文件名。例如,Apple Mail 示例插件使用以下内容:
"ApplicationsToMonitor": {
"mac": [
"com.apple.mail"
]
}
当受监控的应用程序终止时,插件将接收该事件
{
"event": "applicationDidTerminate",
"payload" : {
"application": "com.apple.mail"
}
}
| 成员 | 描述 |
|---|---|
| event | applicationDidLaunch |
| payload | 一个json对象 |
payload 对象包含以下成员:
| payload | 描述 |
|---|---|
| application | 已启动的应用程序的标识符 |
systemDidWakeUp
当计算机醒来时,插件将接收该事件
{
"event": "systemDidWakeUp"
}
| 成员 | 描述 |
|---|---|
| event | systemDidWakeUp |
需要注意的几个要点:
插件在唤醒计算机时可能会获取多个事件systemDidWakeUp
当插件收到事件时,不能保证设备可用systemDidWakeUp
propertyInspectorDidAppear
当属性检查器出现时,插件将收到该事件
{
"action": "com.mirabox.demo.action1",
"event": "propertyInspectorDidAppear",
"context": uniqueValue,
"device": uniqueValue
}
| 成员 | 描述 |
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 |
| event | propertyInspectorDidAppear |
| context | 标识实例操作的值 |
| device | 用于标识设备的值 |
propertyInspectorDidDisappear
当属性检查器消失时,插件将收到该事件
{
"action": "com.mirabox.demo.action1",
"event": "propertyInspectorDidDisappear",
"context": uniqueValue,
"device": uniqueValue
}
| 成员 | 描述 |
|---|---|
| action | 操作的唯一标识符。如果您的插件支持多个操作,则应使用此值来查看触发了哪个操作 |
| event | propertyInspectorDidDisappear |
| context | 标识实例操作的值 |
| device | 用于标识设备的值 |
sendToPlugin
当 propertyInspector(属性检查器)发送一个 sendToPlugin 事件时,插件将收到该事件
{
"action": "com.mirabox.demo.action1",
"event": "sendToPlugin",
"context": uniqueValue,
"payload": {<json data>}
}
sendToPropertyInspector
当插件发送一个 sendToPropertyInspector 事件时,propertyInspector(属性检查器)将收到该事件
{
"action": "com.mirabox.demo.action1",
"event": "sendToPropertyInspector",
"context": uniqueValue,
"payload": {<json data>}
}
