From e1e97fbdcc1f84d08fa04277ab97a50dca54251d Mon Sep 17 00:00:00 2001 From: Axel Boberg Date: Tue, 30 Apr 2024 18:30:17 +0200 Subject: [PATCH] Add a type for activating and deactivating the OSC server Signed-off-by: Axel Boberg --- plugins/osc/index.js | 28 ++++++++++++++++++++++++++-- plugins/osc/lib/types.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/plugins/osc/index.js b/plugins/osc/index.js index d054b6d..9a920d3 100644 --- a/plugins/osc/index.js +++ b/plugins/osc/index.js @@ -256,6 +256,18 @@ async function playTrigger (item) { }) } +function updateServerConfig (type, set) { + bridge.state.apply({ + plugins: { + [manifest.name]: { + settings: { + [type]: set + } + } + } + }) +} + exports.activate = async () => { logger.debug('Activating OSC plugin') @@ -296,8 +308,20 @@ exports.activate = async () => { and handle OSC triggers */ bridge.events.on('item.play', async item => { - if (item?.type === 'bridge.osc.trigger') { - playTrigger(item) + switch (item?.type) { + case 'bridge.osc.trigger': + playTrigger(item) + break + case 'bridge.osc.udp.activate': + updateServerConfig('udp', { + active: item?.data?.osc?.active + }) + break + case 'bridge.osc.tcp.activate': + updateServerConfig('tcp', { + active: item?.data?.osc?.active + }) + break } }) diff --git a/plugins/osc/lib/types.js b/plugins/osc/lib/types.js index a7bd5ef..2fc7557 100644 --- a/plugins/osc/lib/types.js +++ b/plugins/osc/lib/types.js @@ -41,5 +41,33 @@ function init (htmlPath) { } } }) + + bridge.types.registerType({ + id: 'bridge.osc.udp.activate', + name: 'Activate UDP server', + category: 'OSC', + inherits: 'bridge.types.delayable', + properties: { + 'osc.active': { + name: 'Activate server', + type: 'boolean', + 'ui.group': 'OSC' + } + } + }) + + bridge.types.registerType({ + id: 'bridge.osc.tcp.activate', + name: 'Activate TCP server', + category: 'OSC', + inherits: 'bridge.types.delayable', + properties: { + 'osc.active': { + name: 'Activate server', + type: 'boolean', + 'ui.group': 'OSC' + } + } + }) } exports.init = init