diff --git a/web/app/assets/javascripts/react-components/MediaControls.js.jsx.coffee b/web/app/assets/javascripts/react-components/MediaControls.js.jsx.coffee index e4a1d9d42..ae20ed587 100644 --- a/web/app/assets/javascripts/react-components/MediaControls.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/MediaControls.js.jsx.coffee @@ -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}) }) \ No newline at end of file diff --git a/web/app/assets/javascripts/react-components/PopupMediaControls.js.jsx.coffee b/web/app/assets/javascripts/react-components/PopupMediaControls.js.jsx.coffee index a475ffecd..22f2a8034 100644 --- a/web/app/assets/javascripts/react-components/PopupMediaControls.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/PopupMediaControls.js.jsx.coffee @@ -128,7 +128,10 @@ mixins.push(Reflux.listenTo(JamTrackStore, 'onJamTrackChanged')) customMixName = `
{selectedMixdown.name}
` disabled = false else - customMixName = `
Creating mixdown...
` + if selectedMixdown.myPackage + customMixName = `
Creating mixdown...
` + else + customMixName = `
{selectedMixdown.name}
` else if SessionStore.downloadingJamTrack diff --git a/web/app/assets/javascripts/react-components/SessionMediaTracks.js.jsx.coffee b/web/app/assets/javascripts/react-components/SessionMediaTracks.js.jsx.coffee index afb9a13f2..d8c2210bd 100644 --- a/web/app/assets/javascripts/react-components/SessionMediaTracks.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/SessionMediaTracks.js.jsx.coffee @@ -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')