Skip to content

Commit 3a2ba4e

Browse files
committed
Switch to on off toggle
1 parent a7c3e74 commit 3a2ba4e

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

src/actions/common.ts

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
GetPanoramaDeltaSlider,
1515
GetColorDropdown,
1616
GetNumberField,
17-
GetSoloDropdown,
17+
GetOnOffToggleDropdown,
1818
getDelayModes,
1919
} from '../choices/common.js'
2020
import { getNodeNumber, getNumber, runTransition } from './utils.js'
@@ -470,7 +470,7 @@ export function createCommonActions(self: InstanceBaseExt<WingConfig>): Companio
470470
[CommonActions.SetSolo]: {
471471
name: 'Set Solo',
472472
description: 'Set the solo state for a channel, aux, bux, matrix or main',
473-
options: [GetDropdown('Selection', 'sel', allChannels), GetSoloDropdown('solo')],
473+
options: [GetDropdown('Selection', 'sel', allChannels), GetOnOffToggleDropdown('solo', 'Solo')],
474474
callback: async (event) => {
475475
const sel = event.options.sel as string
476476
const cmd = ActionUtil.getSoloCommand(sel, getNodeNumber(event, 'sel'))
@@ -520,17 +520,23 @@ export function createCommonActions(self: InstanceBaseExt<WingConfig>): Companio
520520
...state.namedChoices.matrices,
521521
...state.namedChoices.busses,
522522
]),
523-
{
524-
type: 'checkbox',
525-
label: 'Delay On/Off',
526-
id: 'delay',
527-
default: false,
528-
},
523+
GetOnOffToggleDropdown('delay', 'Delay'),
529524
],
530525
callback: async (event) => {
531526
const sel = event.options.sel as string
532527
const cmd = ActionUtil.getDelayOnCommand(sel, getNodeNumber(event, 'sel'))
533-
send(cmd, event.options.delay ? 1 : 0)
528+
const val = ActionUtil.getNumber(event, 'delay')
529+
if (val < 2) {
530+
send(cmd, val)
531+
} else {
532+
const currentVal = StateUtil.getBooleanFromState(cmd, state)
533+
send(cmd, Number(!currentVal))
534+
}
535+
},
536+
subscribe: (event) => {
537+
const sel = event.options.sel as string
538+
const cmd = ActionUtil.getDelayOnCommand(sel, getNodeNumber(event, 'sel'))
539+
ensureLoaded(cmd)
534540
},
535541
},
536542

src/choices/common.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,17 @@ export function GetMuteDropdown(id: string, label?: string, includeToggle?: bool
8989
return { ...dropdown, choices: [...dropdown.choices, getIdLabelPair('2', 'Toggle')] }
9090
}
9191

92-
export function GetSoloDropdown(id: string, label?: string, includeToggle?: boolean): CompanionInputFieldDropdown {
92+
export function GetOnOffToggleDropdown(
93+
id: string,
94+
label?: string,
95+
includeToggle?: boolean,
96+
): CompanionInputFieldDropdown {
9397
const dropdown = GetDropdown(
94-
label ?? 'Solo',
98+
label ?? 'Selection',
9599
id,
96100
[getIdLabelPair('1', 'On'), getIdLabelPair('0', 'Off')],
97101
'1',
98-
'Select whether to Mute, Unmute or Toggle your selected target',
102+
'Select whether to turn On, Off, or Toggle your selected target',
99103
)
100104
if (includeToggle == false) return dropdown
101105

0 commit comments

Comments
 (0)