diff --git a/web/app/assets/javascripts/session.js b/web/app/assets/javascripts/session.js index bec4c565f..db44a05fa 100644 --- a/web/app/assets/javascripts/session.js +++ b/web/app/assets/javascripts/session.js @@ -962,8 +962,11 @@ var recordedBackingTracks = sessionModel.recordedBackingTracks(); var backingTracks = sessionModel.backingTracks(); + var recordedJamTracks = sessionModel.recordedJamTracks(); + var jamTracks = sessionModel.jamTracks(); - logger.debug("localMediaMixers", localMediaMixers) + //logger.debug("localMediaMixers", localMediaMixers) + //logger.debug("peerMediaMixers", peerLocalMediaMixers) // with mixer info, we use these to decide what kind of tracks are open in the backend @@ -998,29 +1001,57 @@ // additional check; if we can match an id in backing tracks or recorded backing track, // we need to remove it from the recorded track set, but move it to the backing track set - var isBackingTrack = false - if(recordedBackingTracks) { - context._.each(recordedBackingTracks, function (recordedBackingTrack) { - if (mixer.id == 'L' + recordedBackingTrack.client_track_id) { - isBackingTrack = true; - return false; // break - } - }) - } - if(backingTracks) { - context._.each(backingTracks, function (backingTrack) { - if (mixer.id == 'L' + backingTrack.client_track_id) { - isBackingTrack = true; + var isJamTrack = false; + + if(jamTracks) { + // check if the ID matches that of an open jam track + context._.each(jamTracks, function (jamTrack) { + if (mixer.id == jamTrack.id) { + isJamTrack = true; return false; // break } }) } - if(isBackingTrack) { - backingTrackMixers.push(mixer) + if(!isJamTrack && recordedJamTracks) { + // then check if the ID matches that of a open, recorded jam track + context._.each(recordedJamTracks, function (recordedJamTrack) { + if (mixer.id == recordedJamTrack.id) { + isJamTrack = true; + return false; // break + } + }) + } + + if(isJamTrack) { + jamTrackMixers.push(mixer) } else { - recordingTrackMixers.push(mixer); + var isBackingTrack = false + if (recordedBackingTracks) { + context._.each(recordedBackingTracks, function (recordedBackingTrack) { + if (mixer.id == 'L' + recordedBackingTrack.client_track_id) { + isBackingTrack = true; + return false; // break + } + }) + } + if (backingTracks) { + context._.each(backingTracks, function (backingTrack) { + if (mixer.id == 'L' + backingTrack.client_track_id) { + isBackingTrack = true; + return false; // break + } + }) + } + + if (isBackingTrack) { + backingTrackMixers.push(mixer) + } + else { + // couldn't resolve this as a JamTrack or Backing track, must be a normal recorded file + recordingTrackMixers.push(mixer); + } } } else if(mediaType == 'PeerMediaTrack' || mediaType == 'BackingTrack') { // BackingTrack