Skip to content

Commit

Permalink
feat: vista - subscribe to Aux sends when connecting
Browse files Browse the repository at this point in the history
chore: code cleanup
  • Loading branch information
olzzon authored and olzzon committed May 11, 2020
1 parent ab835d6 commit d62dd6d
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 56 deletions.
10 changes: 10 additions & 0 deletions server/constants/mixerProtocols/StuderVistaEmber.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,16 @@ export const StuderVistaMaster: IMixerProtocol = {
max: 10,
zero: 0,
},
{
// Subscribe to Aux levels from Studer
mixerMessage:
'7f 8f ff fe d9 5c 80 30 80 a1 25 31 23 a1 21 31 1f a1 1d 31 1b {ch-type} 19 31 17 {channel} 15 31 13 a1 11 31 0f a4 0d 31 0f {aux} 0d 31 0b e1 09 31 08 63 06 02 04 ff ff f4 c0 00 00 00 00',
value: 0,
type: 'real',
min: -90,
max: 10,
zero: 0,
},
],
pingResponseCommand: [emptyMixerMessage()],
pingTime: 6000, //Bypass ping when pingTime is zero
Expand Down
111 changes: 55 additions & 56 deletions server/utils/mixerConnections/StuderVistaMixerConnection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,11 @@ export class StuderVistaMixerConnection {
return
}

if (value > state.settings[0].autoResetLevel / 100) {
if (
value > state.settings[0].autoResetLevel / 100 ||
state.faders[0].fader[assignedFader].pgmOn ||
state.faders[0].fader[assignedFader].voOn
) {
store.dispatch({
type: SET_FADER_LEVEL,
channel: assignedFader,
Expand All @@ -207,27 +211,9 @@ export class StuderVistaMixerConnection {
})
}
}
} else if (
state.faders[0].fader[assignedFader].pgmOn ||
state.faders[0].fader[assignedFader].voOn
) {
store.dispatch({
type: SET_FADER_LEVEL,
channel: assignedFader,
level: value,
})
state.channels[0].channel.forEach((item, index) => {
if (item.assignedFader === assignedFader) {
store.dispatch({
type: SET_OUTPUT_LEVEL,
channel: index,
level: value,
})
}
})
global.mainThreadHandler.updatePartialStore(assignedFader)
remoteConnections.updateRemoteFaderState(assignedFader, value)
}
global.mainThreadHandler.updatePartialStore(assignedFader)
remoteConnections.updateRemoteFaderState(assignedFader, value)
}

handleEmberAuxCommand(message: string) {
Expand Down Expand Up @@ -370,41 +356,7 @@ export class StuderVistaMixerConnection {
pingMixerCommand() {
this.mixerProtocol.pingCommand.map((command) => {
if (command.mixerMessage.includes('{channel}')) {
state.faders[0].fader.forEach(
(fader: IFader, index: number) => {
state.channels[0].channel.forEach(
(channel: IChannel) => {
if (channel.assignedFader === index) {
let message = command.mixerMessage
.replace(
'{ch-type}',
(
channel.channelType +
1 +
160
).toString(16)
)
.replace(
'{channel}',
(
channel.channelTypeIndex +
1 +
160
).toString(16)
)
let hexArray = message.split(' ')
let buf = Buffer.from(
hexArray.map((val: string) => {
return parseInt(val, 16)
})
)
// console.log('Pinging : ', buf)
this.mixerConnection.write(buf)
}
}
)
}
)
this.pingChannel(command.mixerMessage)
} else {
let hexArray = command.mixerMessage.split(' ')
let buf = Buffer.from(
Expand All @@ -418,6 +370,53 @@ export class StuderVistaMixerConnection {
})
}

pingChannel(mixerMessage: string) {
state.faders[0].fader.forEach((fader: IFader, index: number) => {
state.channels[0].channel.forEach((channel: IChannel) => {
if (channel.assignedFader === index) {
let message = mixerMessage
.replace(
'{ch-type}',
(channel.channelType + 1 + 160).toString(16)
)
.replace(
'{channel}',
(channel.channelTypeIndex + 1 + 160).toString(16)
)
if (message.includes('{aux}')) {
this.pingAuxSend(message)
} else {
let hexArray = message.split(' ')
let buf = Buffer.from(
hexArray.map((val: string) => {
return parseInt(val, 16)
})
)
// console.log('Pinging : ', buf)
this.mixerConnection.write(buf)
}
}
})
})
}

pingAuxSend(message: string) {
for (let index = 0; index < state.settings[0].numberOfAux; index++) {
let auxMessage = message.replace(
'{aux}',
(index + 1 + 160).toString(16)
)
let hexArray = auxMessage.split(' ')
let buf = Buffer.from(
hexArray.map((val: string) => {
return parseInt(val, 16)
})
)
// console.log('Pinging : ', buf)
this.mixerConnection.write(buf)
}
}

sendOutMessage(
mixerMessage: string,
channel: number,
Expand Down

0 comments on commit d62dd6d

Please sign in to comment.