接收的事件
插件可以从 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": -5,
"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 | willDisappear |
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>}
}