* VRFS-3366 - make the 'Music' volume affect 5 categories, not just one
This commit is contained in:
parent
e143dc4e1f
commit
e779d25955
|
|
@ -9,7 +9,7 @@ MIX_MODES = context.JK.MIX_MODES
|
|||
|
||||
onInputsChanged: (sessionMixers) ->
|
||||
mixers = sessionMixers.mixers
|
||||
inputGroupMixers = mixers.getAudioInputCategoryMixer(MIX_MODES.MASTER)
|
||||
inputGroupMixers = mixers.getSimulatedMusicCategoryMixer(MIX_MODES.MASTER)
|
||||
chatGroupMixers = mixers.getChatCategoryMixer(MIX_MODES.MASTER)
|
||||
|
||||
@setState({inputGroupMixers: inputGroupMixers, chatGroupMixers: chatGroupMixers})
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
context = window
|
||||
|
||||
@SessionMusicMixer= React.createClass({
|
||||
@SessionMusicMixer = React.createClass({
|
||||
|
||||
handleMute: (e) ->
|
||||
e.preventDefault()
|
||||
|
|
@ -11,12 +11,11 @@ context = window
|
|||
|
||||
muting = $(e.currentTarget).is('.enabled')
|
||||
|
||||
MixerActions.mute([@props.mixers.mixer], muting)
|
||||
MixerActions.mute(@props.mixers.mixer, muting)
|
||||
|
||||
render: () ->
|
||||
|
||||
muteMixer = @props.mixers.muteMixer
|
||||
vuMixer = @props.mixers.vuMixer
|
||||
muteMixer = @props.mixers.muteMixer[0]
|
||||
muteMixerId = muteMixer?.id
|
||||
|
||||
classes = classNames({
|
||||
|
|
@ -25,7 +24,7 @@ context = window
|
|||
'muted' : muteMixer?.mute
|
||||
})
|
||||
|
||||
pan = if @props.mixers.mixer? then @props.mixers.mixer.pan else 0
|
||||
pan = if @props.mixers.mixer? && @props.mixers.mixer.length > 0 then @props.mixers.mixer[0].pan else 0
|
||||
|
||||
panStyle = {
|
||||
transform: "rotate(#{pan}deg)"
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ MixerActions = @MixerActions
|
|||
onInputsChanged: (sessionMixers) ->
|
||||
|
||||
mixers = sessionMixers.mixers
|
||||
inputGroupMixers = mixers.getAudioInputCategoryMixer(MIX_MODES.PERSONAL)
|
||||
inputGroupMixers = mixers.getSimulatedMusicCategoryMixer(MIX_MODES.PERSONAL)
|
||||
chatGroupMixers = mixers.getChatCategoryMixer( MIX_MODES.PERSONAL)
|
||||
|
||||
@setState({inputGroupMixers: inputGroupMixers, chatGroupMixers: chatGroupMixers})
|
||||
|
|
@ -28,30 +28,30 @@ MixerActions = @MixerActions
|
|||
|
||||
muting = $(e.currentTarget).is('.enabled')
|
||||
|
||||
MixerActions.mute([@state.inputGroupMixers.muteMixer], muting)
|
||||
MixerActions.mute(@state.inputGroupMixers.muteMixer, muting)
|
||||
|
||||
handleChatInputMute: (e) ->
|
||||
e.preventDefault()
|
||||
|
||||
muting = $(e.currentTarget).is('.enabled')
|
||||
|
||||
MixerActions.mute([@state.chatGroupMixers.muteMixer], muting)
|
||||
MixerActions.mute(@state.chatGroupMixers.muteMixer, muting)
|
||||
|
||||
handleAudioInputMuteCheckbox: (e) ->
|
||||
muting = $(e.target).is(':checked')
|
||||
|
||||
MixerActions.mute([@state.inputGroupMixers.muteMixer], muting)
|
||||
MixerActions.mute(@state.inputGroupMixers.muteMixer, muting)
|
||||
|
||||
handleChatMuteCheckbox: (e) ->
|
||||
muting = $(e.target).is(':checked')
|
||||
|
||||
MixerActions.mute([@state.chatGroupMixers.muteMixer], muting)
|
||||
MixerActions.mute(@state.chatGroupMixers.muteMixer, muting)
|
||||
|
||||
render: () ->
|
||||
|
||||
monitorMuteMixer = @state.inputGroupMixers.muteMixer
|
||||
monitorMuteMixer = @state.inputGroupMixers.muteMixer[0]
|
||||
monitorMuteMixerId = monitorMuteMixer?.id
|
||||
monitorVolumeLeft = @state.inputGroupMixers.mixer?.volume_left
|
||||
monitorVolumeLeft = @state.inputGroupMixers.mixer[0].volume_left
|
||||
monitorMuteClasses = classNames({
|
||||
'track-icon-mute': true
|
||||
'enabled' : !monitorMuteMixer?.mute
|
||||
|
|
@ -75,14 +75,14 @@ MixerActions = @MixerActions
|
|||
<SessionTrackVU orientation="vertical" lightCount={13} lightWidth={3} lightHeight={17} side="best" mixers={this.state.inputGroupMixers} />
|
||||
</div>
|
||||
<div className="track-vu-right">
|
||||
<SessionTrackVU orientation="vertical" lightCount={13} lightWidth={3} lightHeight={17} side="vur" mixers={this.state.inputGroupMixers} />
|
||||
<SessionTrackVU orientation="vertical" lightCount={13} lightWidth={3} lightHeight={17} side="best" mixers={this.state.inputGroupMixers} />
|
||||
</div>
|
||||
<div className="track-label">
|
||||
<div>Volume</div>
|
||||
<div>{monitorVolumeLeft}dB</div>
|
||||
</div>
|
||||
<SessionTrackGain mixers={this.state.inputGroupMixers} />
|
||||
<div className={monitorMuteClasses} data-control="mute" data-mixer-id={monitorMuteMixerId} onClick={this.handleAudioInputMute}/>
|
||||
<div className={monitorMuteClasses} data-control="mute" onClick={this.handleAudioInputMute}/>
|
||||
|
||||
<input type="checkbox" name="mute"/>
|
||||
<label htmlFor="mute">Mute</label>
|
||||
|
|
@ -102,14 +102,14 @@ MixerActions = @MixerActions
|
|||
<SessionTrackVU orientation="vertical" lightCount={13} lightWidth={3} lightHeight={17} side="best" mixers={this.state.chatGroupMixers} />
|
||||
</div>
|
||||
<div className="track-vu-right">
|
||||
<SessionTrackVU orientation="vertical" lightCount={13} lightWidth={3} lightHeight={17} side="vur" mixers={this.state.chatGroupMixers} />
|
||||
<SessionTrackVU orientation="vertical" lightCount={13} lightWidth={3} lightHeight={17} side="best" mixers={this.state.chatGroupMixers} />
|
||||
</div>
|
||||
<div className="track-label">
|
||||
<div>Volume</div>
|
||||
<div>{chatVolumeLeft}dB</div>
|
||||
</div>
|
||||
<SessionTrackGain mixers={this.state.chatGroupMixers} />
|
||||
<div className={chatMuteClasses} data-control="mute" data-mixer-id={chatMuteMixerId} onClick={this.handleChatMute}/>
|
||||
<div className={chatMuteClasses} data-control="mute" onClick={this.handleChatMute}/>
|
||||
|
||||
<input type="checkbox" name="mute"/>
|
||||
<label htmlFor="mute">Mute</label>
|
||||
|
|
@ -143,7 +143,7 @@ MixerActions = @MixerActions
|
|||
context.JK.checkbox($audioInputMuteCheckbox)
|
||||
$audioInputMuteCheckbox.on('ifChanged', @handleAudioInputMuteCheckbox);
|
||||
|
||||
if @state.inputGroupMixers.muteMixer.mute
|
||||
if @state.inputGroupMixers.muteMixer[0].mute
|
||||
$audioInputMuteCheckbox.iCheck('check').attr('checked', true)
|
||||
else
|
||||
$audioInputMuteCheckbox.iCheck('uncheck').attr('checked', false)
|
||||
|
|
@ -154,14 +154,14 @@ MixerActions = @MixerActions
|
|||
# re-initialize icheck
|
||||
$chatMuteCheckbox = $root.find('.chat-mixer input')
|
||||
|
||||
if nextState.chatGroupMixers.muteMixer?.mute
|
||||
if nextState.chatGroupMixers.muteMixer.mute
|
||||
$chatMuteCheckbox.iCheck('check').attr('checked', true)
|
||||
else
|
||||
$chatMuteCheckbox.iCheck('uncheck').attr('checked', false)
|
||||
|
||||
$audioInputMuteCheckbox = $root.find('.monitor-mixer input')
|
||||
|
||||
if nextState.inputGroupMixers.muteMixer?.mute
|
||||
if nextState.inputGroupMixers.muteMixer[0].mute
|
||||
$audioInputMuteCheckbox.iCheck('check').attr('checked', true)
|
||||
else
|
||||
$audioInputMuteCheckbox.iCheck('uncheck').attr('checked', false)
|
||||
|
|
|
|||
|
|
@ -12,12 +12,17 @@ logger = context.JK.logger
|
|||
faderChanged: (e, data) ->
|
||||
$target = $(this)
|
||||
groupId = $target.data('groupId')
|
||||
mixers = [@state.mixers.mixer]
|
||||
mixers = @state.mixers.mixer
|
||||
|
||||
MixerActions.faderChanged(data, mixers, groupId)
|
||||
|
||||
render: () ->
|
||||
mixerId = this.state.mixers?.mixer?.id
|
||||
# mixer can be a single item or array
|
||||
mixer = @state.mixers?.mixer
|
||||
if mixer && $.isArray(mixer)
|
||||
mixer = mixer[0]
|
||||
|
||||
mixerId = mixer?.id
|
||||
|
||||
`<div className="track-gain">
|
||||
<div className="fader vertical" data-control="fader" data-fader-id={mixerId} data-orientation="vertical">
|
||||
|
|
@ -32,20 +37,15 @@ logger = context.JK.logger
|
|||
if !$root.is('.track-gain')
|
||||
logger.error("unknown root node")
|
||||
|
||||
$fader = $root.attr('data-mixer-id', @state.mixers.mixer.id).data('groupId', @state.mixers.mixer.groupId).data('mixer', @state.mixers.mixer).data('opposite-mixer', @state.mixers.oppositeMixer)
|
||||
|
||||
if @state.behaviors.mediaControlsDisabled
|
||||
$fader.data('media-controls-disabled', true).data('media-track-opener', @state.behaviors.mediaTrackOpener) # this we be applied later to the fader handle $element
|
||||
|
||||
$fader.data('showHelpAboutMediaMixers', @state.behaviors.showHelpAboutMediaMixers)
|
||||
|
||||
context.JK.FaderHelpers.renderFader2($fader, {faderType: 'vertical'});
|
||||
context.JK.FaderHelpers.renderFader2($root, {faderType: 'vertical'});
|
||||
|
||||
# Initialize gain position
|
||||
MixerActions.initGain(@state.mixers.mixer)
|
||||
mixer = @state.mixers?.mixer
|
||||
if mixer && $.isArray(mixer)
|
||||
mixer = mixer[0]
|
||||
|
||||
MixerActions.initGain(mixer)
|
||||
|
||||
# watch for fader change events
|
||||
$fader.on('fader_change', @faderChanged);
|
||||
|
||||
|
||||
$root.on('fader_change', @faderChanged);
|
||||
})
|
||||
|
|
@ -12,13 +12,18 @@ logger = context.JK.logger
|
|||
panChanged: (e, data) ->
|
||||
$target = $(this)
|
||||
groupId = $target.data('groupId')
|
||||
mixers = [@state.mixers.mixer]
|
||||
mixers = @state.mixers.mixer
|
||||
|
||||
MixerActions.panChanged(data, mixers, groupId)
|
||||
|
||||
render: () ->
|
||||
|
||||
mixerId = this.state.mixers?.mixer?.id
|
||||
# mixer can be a single item or array
|
||||
mixer = @state.mixers?.mixer
|
||||
if mixer && $.isArray(mixer)
|
||||
mixer = mixer[0]
|
||||
|
||||
mixerId = mixer?.id
|
||||
|
||||
`<div className="track-pan">
|
||||
<div className="left-label">Left</div>
|
||||
|
|
@ -36,19 +41,17 @@ logger = context.JK.logger
|
|||
if !$root.is('.track-pan')
|
||||
logger.error("unknown root node")
|
||||
|
||||
$fader = $root.attr('data-mixer-id', this.state.mixers.mixer.id).data('groupId', this.state.mixers.mixer.groupId).data('mixer', this.state.mixers.mixer).data('opposite-mixer', this.state.mixers.oppositeMixer)
|
||||
context.JK.FaderHelpers.renderFader2($root, {faderType: 'horizontal', snap:true}, context.JK.PanHelpers.convertPercentToPanForDisplay)
|
||||
|
||||
if this.state.behaviors.mediaControlsDisabled
|
||||
$fader.data('media-controls-disabled', true).data('media-track-opener', this.state.behaviors.mediaTrackOpener) # this we be applied later to the fader handle $element
|
||||
|
||||
$fader.data('showHelpAboutMediaMixers', this.state.behaviors.showHelpAboutMediaMixers)
|
||||
# Initialize panposition
|
||||
mixer = @state.mixers?.mixer
|
||||
if mixer && $.isArray(mixer)
|
||||
mixer = mixer[0]
|
||||
|
||||
context.JK.FaderHelpers.renderFader2($fader, {faderType: 'horizontal', snap:true}, context.JK.PanHelpers.convertPercentToPanForDisplay)
|
||||
|
||||
# Initialize gain position
|
||||
MixerActions.initPan(this.state.mixers.mixer)
|
||||
MixerActions.initPan(mixer)
|
||||
|
||||
# watch for fader change events
|
||||
$fader.on('fader_change', this.panChanged)
|
||||
$root.on('fader_change', this.panChanged)
|
||||
|
||||
})
|
||||
|
|
@ -81,7 +81,7 @@ ptrCount = 0
|
|||
|
||||
componentWillUnmount: () ->
|
||||
if @state.registered?
|
||||
logger.debug("unregistered VU #{context.JK.groupIdDisplay(@state.registered.mixer)}")
|
||||
#logger.debug("unregistered VU #{context.JK.groupIdDisplay(@state.registered.mixer)}")
|
||||
context.JK.VuHelpers.unregisterVU(@state.registered.mixer, @state.registered.ptr)
|
||||
|
||||
})
|
||||
|
|
@ -6,6 +6,7 @@ ptrCount = 0
|
|||
@SessionTrackVolumeHover = React.createClass({
|
||||
|
||||
mixins: [Reflux.listenTo(@SessionMyTracksStore,"onInputsChanged")]
|
||||
iCheckMaint: false
|
||||
|
||||
closeHover: (e) ->
|
||||
e.preventDefault()
|
||||
|
|
@ -17,6 +18,7 @@ ptrCount = 0
|
|||
mixers = sessionMixers.mixers
|
||||
newMixers = mixers.refreshMixer(@state.mixers)
|
||||
|
||||
newMixers = {} unless newMixers?
|
||||
this.setState({mixers: newMixers})
|
||||
|
||||
getInitialState: () ->
|
||||
|
|
@ -30,24 +32,33 @@ ptrCount = 0
|
|||
if @state.mixers.mixer.group_id == ChannelGroupIds.AudioInputMusicGroup || @state.mixers.mixer.group_id == ChannelGroupIds.AudioInputChatGroup
|
||||
MixerActions.mute([this.state.mixers.mixer, this.state.mixers.oppositeMixer], muting)
|
||||
else
|
||||
MixerActions.mute([this.state.mixers.mixer], muting)
|
||||
MixerActions.mute(this.state.mixers.mixer, muting)
|
||||
|
||||
|
||||
handleMuteCheckbox: (e) ->
|
||||
|
||||
return if @iCheckMaint
|
||||
|
||||
muting = $(e.target).is(':checked')
|
||||
|
||||
if @state.mixers.mixer.group_id == ChannelGroupIds.AudioInputMusicGroup || @state.mixers.mixer.group_id == ChannelGroupIds.AudioInputChatGroup
|
||||
MixerActions.mute([this.state.mixers.mixer, this.state.mixers.oppositeMixer], muting)
|
||||
else
|
||||
MixerActions.mute([this.state.mixers.mixer], muting)
|
||||
MixerActions.mute(this.state.mixers.mixer, muting)
|
||||
|
||||
|
||||
render: () ->
|
||||
|
||||
muteMixer = this.state.mixers?.muteMixer
|
||||
|
||||
muteMixer = @state.mixers?.muteMixer
|
||||
if muteMixer && $.isArray(muteMixer)
|
||||
muteMixer = muteMixer[0]
|
||||
muteMixerId = muteMixer?.id
|
||||
volume_left = this.state.mixers?.mixer?.volume_left
|
||||
|
||||
mixer = @state.mixers?.mixer
|
||||
if mixer && $.isArray(mixer)
|
||||
mixer = mixer[0]
|
||||
|
||||
volume_left = mixer.volume_left
|
||||
|
||||
classes = classNames({
|
||||
'track-icon-mute': true
|
||||
|
|
@ -88,15 +99,22 @@ ptrCount = 0
|
|||
componentDidMount: () ->
|
||||
$root = jQuery(this.getDOMNode())
|
||||
|
||||
muteMixer = this.state.mixers?.muteMixer
|
||||
if $.isArray(muteMixer)
|
||||
muteMixer = muteMixer[0]
|
||||
|
||||
# initialize icheck
|
||||
$checkbox = $root.find('input')
|
||||
context.JK.checkbox($checkbox)
|
||||
$checkbox.on('ifChanged', this.handleMuteCheckbox);
|
||||
|
||||
if @state.mixers.muteMixer.mute
|
||||
$checkbox.iCheck('check').attr('checked', true)
|
||||
# using iCheck causes a 'ifChanged' event, so we need to swallow this up
|
||||
@iCheckMaint = true
|
||||
if muteMixer
|
||||
$checkbox.iCheck('check', false).attr('checked', true)
|
||||
else
|
||||
$checkbox.iCheck('uncheck').attr('checked', false)
|
||||
$checkbox.iCheck('uncheck', false).attr('checked', false)
|
||||
@iCheckMaint = false
|
||||
|
||||
componentWillUpdate: (nextProps, nextState) ->
|
||||
$root = jQuery(this.getDOMNode())
|
||||
|
|
@ -110,8 +128,15 @@ ptrCount = 0
|
|||
# re-initialize icheck
|
||||
$checkbox = $root.find('input')
|
||||
|
||||
if nextState.mixers?.muteMixer?.mute
|
||||
$checkbox.iCheck('check').attr('checked', true)
|
||||
muteMixer = nextState.mixers?.muteMixer
|
||||
if muteMixer? && $.isArray(muteMixer)
|
||||
muteMixer = muteMixer[0]
|
||||
|
||||
# using iCheck causes a 'ifChanged' event, so we need to swallow this up
|
||||
@iCheckMaint = true
|
||||
if muteMixer.mute
|
||||
$checkbox.iCheck('check', false).attr('checked', true)
|
||||
else
|
||||
$checkbox.iCheck('uncheck').attr('checked', false)
|
||||
$checkbox.iCheck('uncheck', false).attr('checked', false)
|
||||
@iCheckMaint = false
|
||||
})
|
||||
|
|
@ -21,7 +21,7 @@ MIX_MODES = context.JK.MIX_MODES
|
|||
$root,
|
||||
'SessionSelfVolumeHover',
|
||||
() =>
|
||||
{inputGroupMixers: @state.mixers.getAudioInputCategoryMixer(MIX_MODES.PERSONAL), chatGroupMixers: @state.mixers.getChatCategoryMixer( MIX_MODES.PERSONAL)}
|
||||
{inputGroupMixers: @state.mixers.getSimulatedMusicCategoryMixer(MIX_MODES.PERSONAL), chatGroupMixers: @state.mixers.getChatCategoryMixer( MIX_MODES.PERSONAL)}
|
||||
,
|
||||
{width:470, positions:['right', 'bottom', 'left'], offsetParent:$root.closest('.screen')})
|
||||
|
||||
|
|
|
|||
|
|
@ -503,6 +503,13 @@ MIX_MODES = context.JK.MIX_MODES;
|
|||
|
||||
foundMixers
|
||||
|
||||
mixerForGroupId: (groupId, mixMode) ->
|
||||
mixers = @mixersForGroupId(groupId, mixMode)
|
||||
if mixers? && mixers.length > 0
|
||||
mixers[0]
|
||||
else
|
||||
null
|
||||
|
||||
getMixer: (mixerId, mode) ->
|
||||
mode = @mixMode unless mode?
|
||||
@allMixers[(if mode then 'M' else 'P') + mixerId]
|
||||
|
|
@ -651,6 +658,8 @@ MIX_MODES = context.JK.MIX_MODES;
|
|||
mixer.mute = muting
|
||||
|
||||
faderChanged: (data, mixers, groupId) ->
|
||||
mixers = [mixers] unless $.isArray(mixers)
|
||||
|
||||
for mixer in mixers
|
||||
broadcast = !(data.dragging) # If fader is still dragging, don't broadcast
|
||||
mixer = @fillTrackVolumeObject(mixer.id, mixer.mode, broadcast)
|
||||
|
|
@ -666,11 +675,16 @@ MIX_MODES = context.JK.MIX_MODES;
|
|||
context.JK.FaderHelpers.setFaderValue(mixerId, data.percentage)
|
||||
|
||||
initGain: (mixer) ->
|
||||
if $.isArray(mixer)
|
||||
mixer = mixer[0]
|
||||
|
||||
|
||||
gainPercent = context.JK.FaderHelpers.convertAudioTaperToPercent(mixer.volume_left)
|
||||
context.JK.FaderHelpers.setFaderValue(mixer.id, gainPercent)
|
||||
context.JK.FaderHelpers.showFader(mixer.id)
|
||||
|
||||
panChanged: (data, mixers, groupId) ->
|
||||
mixers = [mixers] unless $.isArray(mixers)
|
||||
# media tracks are the only controls that sometimes set two mixers right now
|
||||
for mixer in mixers
|
||||
broadcast = !(data.dragging) # If fader is still dragging, don't broadcast
|
||||
|
|
@ -832,6 +846,25 @@ MIX_MODES = context.JK.MIX_MODES;
|
|||
oppositeMixer: found
|
||||
}
|
||||
|
||||
getSimulatedMusicCategoryMixer: (mode) ->
|
||||
myInputs = @getAudioInputCategoryMixer(mode)?.mixer
|
||||
peerInputs = @getUserMusicCategoryMixer(mode)?.mixer
|
||||
myMedia= @getMediaCategoryMixer(mode)?.mixer
|
||||
peerMedia = @getUserMediaCategoryMixer(mode)?.mixer
|
||||
metronome = @getMetronomeCategoryMixer(mode)?.mixer
|
||||
output = @getOutputMixer(mode)
|
||||
oppositeOutput = @getOutputMixer(!mode)
|
||||
|
||||
# if any categories are missing, assume
|
||||
if myInputs
|
||||
{
|
||||
mixer: [myInputs, peerInputs, myMedia, peerMedia, metronome]
|
||||
muteMixer: [myInputs, peerInputs, myMedia, peerMedia, metronome]
|
||||
vuMixer: output
|
||||
}
|
||||
else
|
||||
null
|
||||
|
||||
getAudioInputCategoryMixer: (mode) ->
|
||||
@getGroupMixer(CategoryGroupIds.AudioInputMusic, mode)
|
||||
|
||||
|
|
@ -844,18 +877,59 @@ MIX_MODES = context.JK.MIX_MODES;
|
|||
getUserMediaCategoryMixer: (mode) ->
|
||||
@getGroupMixer(CategoryGroupIds.UserMedia, mode)
|
||||
|
||||
getUserMusicCategoryMixer: (mode) ->
|
||||
@getGroupMixer(CategoryGroupIds.UserMusic, mode)
|
||||
|
||||
getMetronomeCategoryMixer: (mode) ->
|
||||
@getGroupMixer(CategoryGroupIds.Metronome, mode)
|
||||
|
||||
getOutputCategoryMixer: (mode) ->
|
||||
if mode == MIX_MODES.MASTER
|
||||
@getGroupMixer(CategoryGroupIds.MasterCatGroup, mode)
|
||||
else
|
||||
@getGroupMixer(CategoryGroupIds.MonitorCatGroup, mode)
|
||||
|
||||
getOutputMixer: (mode) ->
|
||||
if mode == MIX_MODES.MASTER
|
||||
@mixerForGroupId(ChannelGroupIds.MasterGroup, mode)
|
||||
else
|
||||
@mixerForGroupId(ChannelGroupIds.MonitorGroup, mode)
|
||||
|
||||
refreshMixer: (mixers) ->
|
||||
return null unless mixers? && mixers.mixer?
|
||||
|
||||
mixer = @getMixer(mixers.mixer.id, mixers.mixer.mode)
|
||||
updateMixers = null
|
||||
if $.isArray(mixers.mixer)
|
||||
if mixers.mixer.length > 0
|
||||
updateMixers = []
|
||||
for mixer in mixers.mixer
|
||||
updateMixers.push(@getMixer(mixer.id, mixer.mode))
|
||||
else
|
||||
updateMixers = @getMixer(mixers.mixer.id, mixers.mixer.mode)
|
||||
|
||||
if mixer?
|
||||
oppositeMixer = if mixers.oppositeMixer then @getMixer(mixers.oppositeMixer.id, mixers.oppositeMixer.mode) else null
|
||||
updatedVUMixers = null
|
||||
if $.isArray(mixers.vuMixer)
|
||||
updatedVUMixers = []
|
||||
for vuMixer in mixers.vuMixer
|
||||
updateVUMixers.push(@getMixer(vuMixer.id, vuMixer.mode))
|
||||
else
|
||||
updateVUMixers = @getMixer(mixers.vuMixer.id, mixers.vuMixer.mode)
|
||||
|
||||
updateMuteMixers = null
|
||||
if $.isArray(mixers.muteMixer)
|
||||
updateMuteMixers = []
|
||||
for muteMixer in mixers.muteMixer
|
||||
updateMuteMixers.push(@getMixer(muteMixer.id, muteMixer.mode))
|
||||
else
|
||||
updateMuteMixers = @getMixer(mixers.muteMixer.id, mixers.muteMixer.mode)
|
||||
|
||||
oppositeMixer = if mixers.oppositeMixer then @getMixer(mixers.oppositeMixer.id, mixers.oppositeMixer.mode) else null
|
||||
|
||||
if updateMixers
|
||||
{
|
||||
mixer: mixer
|
||||
vuMixer: @getMixer(mixers.vuMixer.id, mixers.vuMixer.mode)
|
||||
muteMixer: @getMixer(mixers.muteMixer.id, mixers.muteMixer.mode)
|
||||
mixer: updateMixers
|
||||
vuMixer: updateVUMixers
|
||||
muteMixer: updateMuteMixers
|
||||
oppositeMixer: oppositeMixer
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -131,6 +131,8 @@ rest = context.JK.Rest()
|
|||
|
||||
onMute: (mixers, muting) ->
|
||||
|
||||
mixers = [mixers] unless $.isArray(mixers)
|
||||
|
||||
for mixer in mixers
|
||||
@mixers.mute(mixer.id, mixer.mode, muting);
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ describe "OAuth", :slow=>true, :js=>true, :type=>:feature, :capybara_feature=>tr
|
|||
|
||||
it "client should authorize a google user" do
|
||||
authorize_google_user(@youtube_client, @user, "filthyblueberryjam")
|
||||
save_screenshot("working.png")
|
||||
#save_screenshot("working.png")
|
||||
@user.reload
|
||||
@user.user_authorizations.count.should eq(1)
|
||||
|
||||
|
|
|
|||
|
|
@ -195,7 +195,7 @@ bputs "before register capybara"
|
|||
config.include Requests::FeatureHelpers, type: :feature
|
||||
|
||||
# Use the specified formatter
|
||||
#config.formatter = :documentation
|
||||
config.formatter = :documentation
|
||||
|
||||
config.before(:suite) do
|
||||
tests_started = true
|
||||
|
|
|
|||
Loading…
Reference in New Issue