Skip to content

Commit

Permalink
feat: preparing support for multiple mixers in settings store
Browse files Browse the repository at this point in the history
  • Loading branch information
olzzon authored and olzzon committed Oct 4, 2020
1 parent 70b83f4 commit 1796992
Show file tree
Hide file tree
Showing 27 changed files with 169 additions and 116 deletions.
2 changes: 1 addition & 1 deletion client/components/CcgChannelSettings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ const mapStateToProps = (
): IChannelSettingsInjectProps => {
return {
label: state.channels[0].chConnection[0].channel[props.channelIndex].label,
mixerProtocol: state.settings[0].mixerProtocol,
mixerProtocol: state.settings[0].mixers[0].mixerProtocol,
sourceOption: (state.channels[0].chConnection[0].channel[props.channelIndex].private ||
{})['channel_layout'],
}
Expand Down
8 changes: 4 additions & 4 deletions client/components/ChanStrip.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -679,8 +679,8 @@ class ChanStrip extends React.PureComponent<
const mapStateToProps = (state: any, props: any): IChanStripInjectProps => {
let inject: IChanStripInjectProps = {
label: '',
selectedProtocol: state.settings[0].mixerProtocol,
numberOfChannelsInType: state.settings[0].numberOfChannelsInType,
selectedProtocol: state.settings[0].mixers[0].mixerProtocol,
numberOfChannelsInType: state.settings[0].mixers[0].numberOfChannelsInType,
channel: state.channels[0].chConnection[0].channel,
fader: state.faders[0].fader,
auxSendIndex: -1,
Expand All @@ -689,8 +689,8 @@ const mapStateToProps = (state: any, props: any): IChanStripInjectProps => {
if (props.faderIndex >= 0) {
inject = {
label: state.faders[0].fader[props.faderIndex].label,
selectedProtocol: state.settings[0].mixerProtocol,
numberOfChannelsInType: state.settings[0].numberOfChannelsInType,
selectedProtocol: state.settings[0].mixers[0].mixerProtocol,
numberOfChannelsInType: state.settings[0].mixers[0].numberOfChannelsInType,
channel: state.channels[0].chConnection[0].channel,
fader: state.faders[0].fader,
auxSendIndex: state.faders[0].fader[props.faderIndex].monitor - 1,
Expand Down
4 changes: 2 additions & 2 deletions client/components/Channel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ class Channel extends React.Component<
nextProps.fader.showChannel != this.props.fader.showChannel ||
nextProps.fader.faderLevel != this.props.fader.faderLevel ||
nextProps.fader.label != this.props.fader.label ||
nextProps.settings.mixerProtocol !=
this.props.settings.mixerProtocol ||
nextProps.settings.mixers[0].mixerProtocol !=
this.props.settings.mixers[0].mixerProtocol ||
nextProps.settings.showSnaps != this.props.settings.showSnaps ||
nextProps.settings.showPfl != this.props.settings.showPfl ||
nextProps.settings.showChanStrip !=
Expand Down
4 changes: 2 additions & 2 deletions client/components/ChannelMonitorOptions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -201,8 +201,8 @@ const mapStateToProps = (
): IMonitorSettingsInjectProps => {
return {
label: state.faders[0].fader[props.faderIndex].label,
selectedProtocol: state.settings[0].mixerProtocol,
numberOfChannelsInType: state.settings[0].numberOfChannelsInType,
selectedProtocol: state.settings[0].mixers[0].mixerProtocol,
numberOfChannelsInType: state.settings[0].mixers[0].numberOfChannelsInType,
channel: state.channels[0].chConnection[0].channel,
fader: state.faders[0].fader,
settings: state.settings[0],
Expand Down
4 changes: 2 additions & 2 deletions client/components/ChannelRouteSettings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,8 @@ const mapStateToProps = (
): IChannelSettingsInjectProps => {
return {
label: state.faders[0].fader[props.faderIndex].label,
selectedProtocol: state.settings[0].mixerProtocol,
numberOfChannelsInType: state.settings[0].numberOfChannelsInType,
selectedProtocol: state.settings[0].mixers[0].mixerProtocol,
numberOfChannelsInType: state.settings[0].mixers[0].numberOfChannelsInType,
channel: state.channels[0].chConnection[0].channel,
fader: state.faders[0].fader,
}
Expand Down
8 changes: 4 additions & 4 deletions client/components/MiniChanStrip.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ class MiniChanStrip extends React.PureComponent<
const mapStateToProps = (state: any, props: any): IChanStripInjectProps => {
let inject: IChanStripInjectProps = {
label: '',
selectedProtocol: state.settings[0].mixerProtocol,
numberOfChannelsInType: state.settings[0].numberOfChannelsInType,
selectedProtocol: state.settings[0].mixers[0].mixerProtocol,
numberOfChannelsInType: state.settings[0].mixers[0].numberOfChannelsInType,
channel: state.channels[0].chConnection[0].channel,
fader: state.faders[0].fader,
auxSendIndex: -1,
Expand All @@ -123,8 +123,8 @@ const mapStateToProps = (state: any, props: any): IChanStripInjectProps => {
if (props.faderIndex >= 0) {
inject = {
label: state.faders[0].fader[props.faderIndex].label,
selectedProtocol: state.settings[0].mixerProtocol,
numberOfChannelsInType: state.settings[0].numberOfChannelsInType,
selectedProtocol: state.settings[0].mixers[0].mixerProtocol,
numberOfChannelsInType: state.settings[0].mixers[0].numberOfChannelsInType,
channel: state.channels[0].chConnection[0].channel,
fader: state.faders[0].fader,
auxSendIndex: state.faders[0].fader[props.faderIndex].monitor - 1,
Expand Down
59 changes: 35 additions & 24 deletions client/components/Settings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,13 @@ class Settings extends React.PureComponent<IAppProps & Store, IState> {

handleMixerMidiInputPort = (selectedOption: any) => {
var settingsCopy = Object.assign({}, this.state.settings)
settingsCopy.mixerMidiInputPort = selectedOption.value
settingsCopy.mixers[0].mixerMidiInputPort = selectedOption.value
this.setState({ settings: settingsCopy })
}

handleMixerMidiOutputPort = (selectedOption: any) => {
var settingsCopy = Object.assign({}, this.state.settings)
settingsCopy.mixerMidiOutputPort = selectedOption.value
settingsCopy.mixers[0].mixerMidiOutputPort = selectedOption.value
this.setState({ settings: settingsCopy })
}

Expand All @@ -103,19 +103,29 @@ class Settings extends React.PureComponent<IAppProps & Store, IState> {
this.setState({ settings: settingsCopy })
}

handleMixerChange = (event: ChangeEvent<HTMLInputElement>) => {
var settingsCopy = Object.assign({}, this.state.settings)
if (event.target.type === 'checkbox') {
(settingsCopy.mixers[0] as any)[event.target.name] = !!event.target.checked
} else {
(settingsCopy.mixers[0] as any)[event.target.name] = event.target.value
}
this.setState({ settings: settingsCopy })
}

handleProtocolChange = (selectedOption: any) => {
var settingsCopy = Object.assign({}, this.state.settings)
settingsCopy.mixerProtocol = selectedOption.value
settingsCopy.mixers[0].mixerProtocol = selectedOption.value
window.mixerProtocol =
window.mixerProtocolPresets[settingsCopy.mixerProtocol]
window.mixerProtocolPresets[settingsCopy.mixers[0].mixerProtocol]
this.setState({ settings: settingsCopy })
}

handleNumberOfChannels = (index: number, event: any) => {
let settingsCopy = Object.assign({}, this.state.settings)
settingsCopy.numberOfChannelsInType[index] = parseInt(
settingsCopy.mixers[0].numberOfChannelsInType[index] = parseInt(
event.target.value
)
) || 1
this.setState({ settings: settingsCopy })
}

Expand Down Expand Up @@ -178,7 +188,7 @@ class Settings extends React.PureComponent<IAppProps & Store, IState> {
name="numberOfChannelsInType"
type="text"
value={
this.state.settings
this.state.settings.mixers[0]
.numberOfChannelsInType[index]
}
onChange={(event) =>
Expand Down Expand Up @@ -208,8 +218,8 @@ class Settings extends React.PureComponent<IAppProps & Store, IState> {
<Select
styles={selectorColorStyles}
value={{
label: this.state.settings.mixerMidiInputPort,
value: this.state.settings.mixerMidiInputPort,
label: this.state.settings.mixers[0].mixerMidiInputPort,
value: this.state.settings.mixers[0].mixerMidiInputPort,
}}
onChange={this.handleMixerMidiInputPort}
options={this.midiInputPortList}
Expand All @@ -221,8 +231,8 @@ class Settings extends React.PureComponent<IAppProps & Store, IState> {
<Select
styles={selectorColorStyles}
value={{
label: this.state.settings.mixerMidiOutputPort,
value: this.state.settings.mixerMidiOutputPort,
label: this.state.settings.mixers[0].mixerMidiOutputPort,
value: this.state.settings.mixers[0].mixerMidiOutputPort,
}}
onChange={this.handleMixerMidiOutputPort}
options={this.midiOutputPortList}
Expand All @@ -242,9 +252,9 @@ class Settings extends React.PureComponent<IAppProps & Store, IState> {
value={{
label:
window.mixerProtocolPresets[
this.state.settings.mixerProtocol
this.state.settings.mixers[0].mixerProtocol
].label,
value: this.state.settings.mixerProtocol,
value: this.state.settings.mixers[0].mixerProtocol,
}}
onChange={this.handleProtocolChange}
options={window.mixerProtocolList}
Expand Down Expand Up @@ -275,8 +285,8 @@ class Settings extends React.PureComponent<IAppProps & Store, IState> {
<input
name="deviceIp"
type="text"
value={this.state.settings.deviceIp}
onChange={this.handleChange}
value={this.state.settings.mixers[0].deviceIp}
onChange={this.handleMixerChange}
/>
</label>
<br />
Expand All @@ -285,8 +295,8 @@ class Settings extends React.PureComponent<IAppProps & Store, IState> {
<input
name="devicePort"
type="text"
value={this.state.settings.devicePort}
onChange={this.handleChange}
value={this.state.settings.mixers[0].devicePort}
onChange={this.handleMixerChange}
/>
</label>
<br />
Expand Down Expand Up @@ -339,8 +349,8 @@ class Settings extends React.PureComponent<IAppProps & Store, IState> {
<input
name="protocolLatency"
type="text"
value={this.state.settings.protocolLatency}
onChange={this.handleChange}
value={this.state.settings.mixers[0].protocolLatency}
onChange={this.handleMixerChange}
/>
</label>
<br />
Expand All @@ -359,8 +369,8 @@ class Settings extends React.PureComponent<IAppProps & Store, IState> {
<input
name="numberOfAux"
type="text"
value={this.state.settings.numberOfAux}
onChange={this.handleChange}
value={this.state.settings.mixers[0].numberOfAux}
onChange={this.handleMixerChange}
/>
</label>
<br />
Expand All @@ -369,8 +379,8 @@ class Settings extends React.PureComponent<IAppProps & Store, IState> {
<input
name="nextSendAux"
type="text"
value={this.state.settings.nextSendAux}
onChange={this.handleChange}
value={this.state.settings.mixers[0].nextSendAux}
onChange={this.handleMixerChange}
/>
</label>
<br />
Expand Down Expand Up @@ -461,9 +471,10 @@ class Settings extends React.PureComponent<IAppProps & Store, IState> {
}
}

const mapStateToProps = (state: any): IAppProps => {
const mapStateToProps = (state: any, t: any): IAppProps => {
return {
store: state,
t: t
}
}

Expand Down
5 changes: 3 additions & 2 deletions client/utils/SocketClientHandlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ export const socketClientHandlers = () => {
window.mixerProtocol.channelTypes.forEach(
(item: any, index: number) => {
numberOfChannels.push(
payload.settings[0].numberOfChannelsInType[index]
payload.settings[0].mixers[0]
.numberOfChannelsInType[index]
)
}
)
Expand All @@ -68,7 +69,7 @@ export const socketClientHandlers = () => {
})
window.storeRedux.dispatch({
type: SET_MIXER_ONLINE,
mixerOnline: payload.settings[0].mixerOnline,
mixerOnline: payload.settings[0].mixers[0].mixerOnline,
})
window.storeRedux.dispatch({
type: SET_SERVER_ONLINE,
Expand Down
4 changes: 3 additions & 1 deletion server/MainThreadHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,9 @@ export class MainThreadHandlers {
.on('get-mixerprotocol', () => {
socketServer.emit('set-mixerprotocol', {
mixerProtocol:
mixerProtocolPresets[state.settings[0].mixerProtocol],
mixerProtocolPresets[
state.settings[0].mixers[0].mixerProtocol
],
mixerProtocolPresets: mixerProtocolPresets,
mixerProtocolList: mixerProtocolList,
})
Expand Down
4 changes: 2 additions & 2 deletions server/reducers/channelsReducer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,10 @@ export const channels = (
case SET_COMPLETE_CH_STATE: //allState //numberOfChannels
nextState = defaultChannelsReducerState(action.numberOfTypeChannels)
if (
action.allState.channel.length ==
action.allState.chConnection[0].channel.length ==
nextState[0].chConnection[0].channel.length
) {
action.allState.channel.forEach(
action.allState.chConnection[0].channel.forEach(
(channel: any, index: number) => {
if (
index < nextState[0].chConnection[0].channel.length
Expand Down
Loading

0 comments on commit 1796992

Please sign in to comment.