From dee9f167f0fd4b08b15206b8cae47035fe9bf0bb Mon Sep 17 00:00:00 2001 From: tobias <thinkdifferent055@gmail.com> Date: Sun, 8 Oct 2023 23:21:49 +0200 Subject: [PATCH] #187 - Add presets for pad playback, page set and page navigation --- feedbacks.js | 4 +- main.js | 7 ++- presets.js | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 139 insertions(+), 4 deletions(-) create mode 100644 presets.js diff --git a/feedbacks.js b/feedbacks.js index 2586a35..d59a6ec 100644 --- a/feedbacks.js +++ b/feedbacks.js @@ -2,7 +2,7 @@ const {combineRgb} = require('@companion-module/base') module.exports = async function (self) { self.setFeedbackDefinitions({ - PadStatus: { + pad_status: { name: 'Pad Status', type: 'advanced', options: [ @@ -64,7 +64,7 @@ module.exports = async function (self) { } }, }, - PageActive: { + page_active: { name: 'Page Active', type: 'boolean', defaultStyle: { diff --git a/main.js b/main.js index dc91ec8..6d65601 100644 --- a/main.js +++ b/main.js @@ -1,4 +1,4 @@ -const {InstanceBase, Regex, runEntrypoint, InstanceStatus} = require('@companion-module/base') +const {InstanceBase, Regex, runEntrypoint, InstanceStatus, combineRgb} = require('@companion-module/base') const UpgradeScripts = require('./upgrades') const UpdateActions = require('./actions') const UpdateFeedbacks = require('./feedbacks') @@ -9,6 +9,7 @@ const PadNameUpdate = require("./receive/pad_name_update"); const PadStatusUpdate = require("./receive/pad_status_update"); const CurrentPageUpdate = require("./receive/current_page_update"); const uuid = require('uuid'); +const presets = require('./presets'); class ModuleInstance extends InstanceBase { isInitialized = false @@ -36,6 +37,8 @@ class ModuleInstance extends InstanceBase { this.updateActions() await this.updateFeedbacks() + + this.setPresetDefinitions(presets()); } // When module gets deleted @@ -201,7 +204,7 @@ class ModuleInstance extends InstanceBase { for (let i in pads) { let pad = pads[i]; this.log('debug', `Update variable 'pad-${pad.position}'`); - this.setVariableValues({ [`pad-${pad.position}`]: pad.name}); + this.setVariableValues({[`pad-${pad.position}`]: pad.name}); } } } diff --git a/presets.js b/presets.js new file mode 100644 index 0000000..683eb96 --- /dev/null +++ b/presets.js @@ -0,0 +1,132 @@ +const {combineRgb} = require("@companion-module/base"); +module.exports = function () { + let presets = {}; + + // Pad Playback + for (let i = 0; i < 100; i++) { + presets[`pad-playback-${i}`] = { + category: 'Pad Playback', + name: `pad-playback-${i}`, + type: 'button', + previewStyle: { + text: `Pad ${i + 1}`, + size: '24', + color: combineRgb(255, 255, 255), + bgcolor: combineRgb(0, 0, 0), + }, + style: { + text: `$(PlayWall:pad-${i})`, + size: '24', + color: combineRgb(255, 255, 255), + bgcolor: combineRgb(0, 0, 0), + }, + steps: [ + { + down: [ + { + actionId: 'pad_playback_action', + options: { + 'type': 'NUMBER', + 'index': i + 1 + } + } + ] + } + ], + feedbacks: [ + { + feedbackId: 'pad_status', + options: { + 'type': 'NUMBER', + 'index': i + 1 + } + } + ] + }; + } + + // Pages + for (let i = 0; i < 20; i++) { + presets[`page-set-${i}`] = { + category: 'Pad Set', + name: `page-set-${i}`, + type: 'button', + style: { + text: `Seite ${i + 1}`, + size: '24', + color: combineRgb(255, 255, 255), + bgcolor: combineRgb(0, 0, 0), + }, + steps: [ + { + down: [ + { + actionId: 'page_set_action', + options: { + 'number': i + 1 + } + } + ] + } + ], + feedbacks: [ + { + feedbackId: 'page_active', + options: { + 'number': i + 1 + } + } + ] + }; + } + + presets['pad-navigate-previous'] = { + category: 'Pad Navigate', + name: 'pad-navigate-previous', + type: 'button', + style: { + text: 'Zurück', + size: '24', + color: combineRgb(255, 255, 255), + bgcolor: combineRgb(0, 0, 0), + }, + steps: [ + { + down: [ + { + actionId: 'pad_navigate_action', + options: { + 'type': 'PREVIOUS' + } + } + ] + } + ] + }; + presets['pad-navigate-next'] = { + category: 'Pad Navigate', + name: 'pad-navigate-next', + type: 'button', + style: { + text: 'Vor', + size: '24', + color: combineRgb(255, 255, 255), + bgcolor: combineRgb(0, 0, 0), + }, + steps: [ + { + down: [ + { + actionId: 'pad_navigate_action', + options: { + 'type': 'NEXT' + } + } + ] + } + ] + } + + + return presets; +}; \ No newline at end of file -- GitLab