Skip to content

Commit

Permalink
fix: Midas - Behringer X32 - emit all meter values in one blob
Browse files Browse the repository at this point in the history
  • Loading branch information
olzzon authored and olzzon committed May 27, 2020
1 parent d12e45b commit e5fd8a9
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 48 deletions.
19 changes: 19 additions & 0 deletions client/utils/SocketClientHandlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import {
SOCKET_RETURN_CCG_LIST,
SOCKET_SET_VU_REDUCTION,
SOCKET_SET_MIXER_ONLINE,
SOCKET_SET_ALL_VU,
} from '../../server/constants/SOCKET_IO_DISPATCHERS'

export const socketClientHandlers = () => {
Expand Down Expand Up @@ -105,6 +106,24 @@ export const socketClientHandlers = () => {
state: payload.state,
})
})
.on(SOCKET_SET_ALL_VU, (payload: any) => {
payload.vuMeters.forEach((meterLevel: number, index: number) => {
window.storeRedux.dispatch({
type: SET_VU_LEVEL,
channel: index,
level: meterLevel,
})
})
payload.vuReductionMeters.forEach(
(meterLevel: number, index: number) => {
window.storeRedux.dispatch({
type: SET_VU_REDUCTION_LEVEL,
channel: index,
level: meterLevel,
})
}
)
})
.on(SOCKET_SET_VU, (payload: any) => {
window.storeRedux.dispatch({
type: SET_VU_LEVEL,
Expand Down
1 change: 1 addition & 0 deletions server/constants/SOCKET_IO_DISPATCHERS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ export const SOCKET_CLEAR_PST = 'clearPst'
export const SOCKET_SAVE_SETTINGS = 'saveSettings'
export const SOCKET_RESTART_SERVER = 'restartServer'
export const SOCKET_SET_VU = 'setVu'
export const SOCKET_SET_ALL_VU = 'setAllVu'
export const SOCKET_SET_VU_REDUCTION = 'setVuReduction'
export const SOCKET_GET_SNAPSHOT_LIST = 'getSnapshotList'
export const SOCKET_RETURN_SNAPSHOT_LIST = 'returnSnapshotList'
Expand Down
91 changes: 43 additions & 48 deletions server/utils/mixerConnections/productSpecific/midas.ts
Original file line number Diff line number Diff line change
@@ -1,48 +1,43 @@
import { store, state } from '../../../reducers/store'
import { socketServer } from '../../../expressHandler'

import { SET_VU_REDUCTION_LEVEL, SET_VU_LEVEL } from '../../../reducers/faderActions'
import { SOCKET_SET_VU, SOCKET_SET_VU_REDUCTION } from '../../../constants/SOCKET_IO_DISPATCHERS';

export const midasMeter = (message: any) => {

const DATA_OFFSET = 4;
let uint8bytes = Uint8Array.from(message[0]);
let dataview = new DataView(uint8bytes.buffer);
let vuMeters = []
let level: number
let reductionLevel: number
let numberOfChannels = state.settings[0].numberOfChannelsInType[0];

for (let i=0; i < numberOfChannels; i++) {
level = dataview.getFloat32(4*i+DATA_OFFSET , true)
reductionLevel = dataview.getFloat32(4*(i+64)+DATA_OFFSET , true)

vuMeters.push({vuVal : level})
store.dispatch({
type:SET_VU_LEVEL,
channel: i,
level: level
})
socketServer.emit(
SOCKET_SET_VU,
{
faderIndex: state.channels[0].channel[i].assignedFader,
level: level
}
)
store.dispatch({
type:SET_VU_REDUCTION_LEVEL,
channel: i,
level: reductionLevel
})
socketServer.emit(
SOCKET_SET_VU_REDUCTION,
{
faderIndex: state.channels[0].channel[i].assignedFader,
level: reductionLevel
}
)
}
}

import { store, state } from '../../../reducers/store'
import { socketServer } from '../../../expressHandler'

import {
SET_VU_REDUCTION_LEVEL,
SET_VU_LEVEL,
} from '../../../reducers/faderActions'
import { SOCKET_SET_ALL_VU } from '../../../constants/SOCKET_IO_DISPATCHERS'

export const midasMeter = (message: any) => {
const DATA_OFFSET = 4
let uint8bytes = Uint8Array.from(message[0])
let dataview = new DataView(uint8bytes.buffer)
let vuMeters = []
let vuReductionMeters = []
let level: number
let reductionLevel: number
let numberOfChannels = state.settings[0].numberOfChannelsInType[0]

for (let i = 0; i < numberOfChannels; i++) {
level = dataview.getFloat32(4 * i + DATA_OFFSET, true)
reductionLevel = dataview.getFloat32(4 * (i + 64) + DATA_OFFSET, true)

vuMeters.push(level)
store.dispatch({
type: SET_VU_LEVEL,
channel: i,
level: level,
})

vuReductionMeters.push(reductionLevel)

store.dispatch({
type: SET_VU_REDUCTION_LEVEL,
channel: i,
level: reductionLevel,
})
}
socketServer.emit(SOCKET_SET_ALL_VU, {
vuMeters: vuMeters,
vuReductionMeters: vuReductionMeters,
})
}

0 comments on commit e5fd8a9

Please sign in to comment.