* VRFS-3576 - deal with case that mixdown is not yet created

This commit is contained in:
Seth Call 2015-09-23 10:38:38 -05:00
parent 284e671b01
commit c379c6dc44
3 changed files with 23 additions and 10 deletions

View File

@ -19,9 +19,11 @@ MixerActions = reactContext.MixerActions
MediaPlaybackStore = reactContext.MediaPlaybackStore
SessionActions = reactContext.SessionActions
MediaPlaybackActions = reactContext.MediaPlaybackActions
JamTrackStore = reactContext.JamTrackStore
mixins.push(Reflux.listenTo(MixerStore,"onInputsChanged"))
mixins.push(Reflux.listenTo(MediaPlaybackStore, 'onMediaStateChanged'))
mixins.push(Reflux.listenTo(JamTrackStore, 'onJamTrackStateChanged'))
@MediaControls = React.createClass({
@ -29,6 +31,10 @@ mixins.push(Reflux.listenTo(MediaPlaybackStore, 'onMediaStateChanged'))
mixins: mixins
tempos : [ 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 63, 66, 69, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116, 120, 126, 132, 138, 144, 152, 160, 168, 176, 184, 192, 200, 208 ]
onJamTrackStateChanged: (jamTrackState) ->
@monitorControls(@state.controls, @state.mediaSummary, jamTrackState)
@setState({jamTrackState: jamTrackState})
onMediaStateChanged: (changes) ->
if changes.playbackStateChanged
if @state.controls?
@ -53,7 +59,7 @@ mixins.push(Reflux.listenTo(MediaPlaybackStore, 'onMediaStateChanged'))
mediaSummary = mixers.mediaSummary
metro = mixers.metro
@monitorControls(@state.controls, mediaSummary)
@monitorControls(@state.controls, mediaSummary, @state.jamTrackState)
@setState({mediaSummary: mediaSummary, metro: metro})
@updateMetronomeDetails(metro, @state.initializedMetronomeControls)
@ -69,10 +75,10 @@ mixins.push(Reflux.listenTo(MediaPlaybackStore, 'onMediaStateChanged'))
logger.debug("settingcricket", mode)
$root.find('#metronome-playback-select').metronomeSetPlaybackMode(mode)
monitorControls: (controls, mediaSummary) ->
monitorControls: (controls, mediaSummary, jamTrackState) ->
if mediaSummary.mediaOpen || mediaSummary.jamTrack?
if mediaSummary.jamTrackOpen?
if mediaSummary.mediaOpen || mediaSummary.jamTrack? || jamTrackState?.jamTrack?
if mediaSummary.jamTrackOpen? || mediaSummary.jamTrack? || jamTrackState?.jamTrack?
controls.startMonitor(PLAYBACK_MONITOR_MODE.JAMTRACK)
else if mediaSummary.backingTrackOpen
controls.startMonitor(PLAYBACK_MONITOR_MODE.MEDIA_FILE)
@ -203,10 +209,11 @@ mixins.push(Reflux.listenTo(MediaPlaybackStore, 'onMediaStateChanged'))
mediaSummary = MixerStore.mixers.mediaSummary
metro = MixerStore.mixers.metro
jamTrackState = JamTrackStore.getState()
@monitorControls(controls, mediaSummary)
@monitorControls(controls, mediaSummary, jamTrackState)
@tryPrepareMetronome(metro)
@setState({mediaSummary: mediaSummary, controls: controls, metro: metro})
@setState({mediaSummary: mediaSummary, controls: controls, metro: metro, jamTrackState: jamTrackState})
})

View File

@ -128,7 +128,10 @@ mixins.push(Reflux.listenTo(JamTrackStore, 'onJamTrackChanged'))
customMixName = `<h5>{selectedMixdown.name}</h5>`
disabled = false
else
customMixName = `<h5>Creating mixdown... <img src="/assets/shared/spinner.gif" /></h5>`
if selectedMixdown.myPackage
customMixName = `<h5>Creating mixdown... <img src="/assets/shared/spinner.gif" /></h5>`
else
customMixName = `<h5>{selectedMixdown.name}<img src="/assets/content/icon-mix-fail@2X.png" /></h5>`
else
if SessionStore.downloadingJamTrack

View File

@ -15,6 +15,8 @@ ChannelGroupIds = context.JK.ChannelGroupIds
Reflux.listenTo(@JamTrackStore, "onJamTrackStateChanged")]
onJamTrackStateChanged: (jamTrackState) ->
@setState({jamTrackState: jamTrackState})
if jamTrackState.fullTrackActivated || jamTrackState.opened && jamTrackState.jamTrack.activeMixdown == null
@loadJamTrack(jamTrackState.jamTrack)
else if jamTrackState.closed
@ -29,6 +31,7 @@ ChannelGroupIds = context.JK.ChannelGroupIds
SessionActions.closeMedia(true)
#inputsChangedProcessed: (state) ->
@ -230,7 +233,7 @@ ChannelGroupIds = context.JK.ChannelGroupIds
# give the users options to close it
if this.state.mediaSummary.recordingOpen
mediaType = "Recording"
else if this.state.mediaSummary.jamTrackOpen
else if this.state.mediaSummary.jamTrackOpen || @state.jamTrackState?.jamTrack?
mediaType = "JamTrack"
else if this.state.mediaSummary.backingTrackOpen
mediaType = "Audio File"
@ -308,7 +311,7 @@ ChannelGroupIds = context.JK.ChannelGroupIds
getInitialState:() ->
{mediaSummary:{mediaOpen: false}, isRecording: false, backingTracks: [], jamTracks: [], recordedTracks: [], metronome: null}
{mediaSummary:{mediaOpen: false}, isRecording: false, backingTracks: [], jamTracks: [], recordedTracks: [], metronome: null, jamTrackState: {}}
onAppInit: (app) ->
@app = app
@ -343,7 +346,7 @@ ChannelGroupIds = context.JK.ChannelGroupIds
@handlePopup()
handlePopup: () ->
if @state.mediaSummary.userNeedsMediaControls
if @state.mediaSummary.userNeedsMediaControls || @state.jamTrackState?.jamTrack?
unless @childWindow?
logger.debug("opening media control window")
@childWindow = window.open("/popups/media-controls", 'Media Controls', 'scrollbars=yes,toolbar=no,status=no,height=155,width=350')