Skip to content

Commit 3af9fb8

Browse files
committed
add GPIO variables
1 parent 1b5e1a0 commit 3af9fb8

File tree

5 files changed

+18
-0
lines changed

5 files changed

+18
-0
lines changed

src/models/compact.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ export const WingCompact: ModelSpec = {
1919
aesIns: 2,
2020
aesOut: 2,
2121
stageConnect: 1,
22+
gpio: 2,
2223
}

src/models/full.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ export const WingFull: ModelSpec = {
1919
aesIns: 2,
2020
aesOut: 2,
2121
stageConnect: 1,
22+
gpio: 4,
2223
}

src/models/rack.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ export const WingRack: ModelSpec = {
1919
aesIns: 2,
2020
aesOut: 2,
2121
stageConnect: 1,
22+
gpio: 4,
2223
}

src/models/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export interface ModelSpec {
2727

2828
stageConnect: number
2929
headphoneOuts?: number
30+
gpio: number
3031
}
3132

3233
export const ModelChoices: DropdownChoice[] = [

src/variables.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,9 @@ export function UpdateVariableDefinitions(self: WingInstance): void {
197197
variables.push({ variableId: `talkback_b_main${main}_assign`, name: `Talkback B to Main ${main} assign` })
198198
}
199199

200+
for (let gpio = 1; gpio <= model.gpio; gpio++) {
201+
variables.push({ variableId: `gpio${gpio}`, name: `GPIO ${gpio} state (true = pressed/connected)` })
202+
}
200203
self.setVariableDefinitions(variables)
201204
}
202205

@@ -213,6 +216,7 @@ export function UpdateVariables(self: WingInstance, msgs: OscMessage[]): void {
213216
UpdateUsbVariables(self, path, args[0])
214217
UpdateSdVariables(self, path, args[0])
215218
UpdateTalkbackVariables(self, path, args[0])
219+
UpdateGpioVariables(self, path, args[0]?.value as number)
216220
}
217221
}
218222

@@ -406,3 +410,13 @@ function UpdateTalkbackVariables(self: WingInstance, path: string, args: OSCMeta
406410
[`talkback_${talkback}_${destination}${num}_assign`]: args.value as number,
407411
})
408412
}
413+
414+
function UpdateGpioVariables(self: WingInstance, path: string, value: number): void {
415+
const match = path.match(/^\/\$ctl\/gpio\/(\d+)\/\$state$/)
416+
if (!match) {
417+
return
418+
}
419+
420+
const gpio = match[1]
421+
self.setVariableValues({ [`gpio${gpio}`]: !value })
422+
}

0 commit comments

Comments
 (0)