From 81dcd9bddc95106f45656e6421856aec9f17fc52 Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Thu, 12 Feb 2015 14:05:25 -0600 Subject: [PATCH] VRFS-2498 : Hook up new metronome sounds. Check group_id in lieu of media_type as it is not set for metronomes. --- web/app/assets/javascripts/session.js | 52 +++++++++++-------- .../stylesheets/client/session.css.scss | 7 +-- web/app/views/clients/_session.html.slim | 10 ++-- 3 files changed, 38 insertions(+), 31 deletions(-) diff --git a/web/app/assets/javascripts/session.js b/web/app/assets/javascripts/session.js index 53b7fb4fb..fff71eff5 100644 --- a/web/app/assets/javascripts/session.js +++ b/web/app/assets/javascripts/session.js @@ -44,6 +44,8 @@ var rateSessionDialog = null; var friendInput = null; var sessionPageDone = null; + var metroTempo = 120; + var metroSound = "Beep"; var $recordingManagerViewer = null; var $screen = null; var $mixModeDropdown = null; @@ -849,18 +851,18 @@ function groupByType(mixers) { context._.each(mixers, function(mixer) { var mediaType = mixer.media_type; - - // mediaType == null is for backwards compat with older clients. Can be removed soon - if(mediaType == null || mediaType == "" || mediaType == 'RecordingTrack') { - recordingTrackMixers.push(mixer) - } else if(mediaType == 'PeerMediaTrack' || mediaType == 'BackingTrack') { + if(mediaType == 'PeerMediaTrack' || mediaType == 'BackingTrack') { // BackingTrack backingTrackMixers.push(mixer); - } else if(mediaType == 'MetronomeTrack') { - // Metronome t + } else if(mediaType == 'MetronomeTrack' || mixer.group_id==ChannelGroupIds.MetronomeGroup) { + // Metronomes come across with a blank media type, so check group_id: metronomeTrackMixers.push(mixer); } else if(mediaType == 'JamTrack') { jamTrackMixers.push(mixer); + group_id == ChannelGroupIds.MediaTrackGroup; + } else if(mediaType == null || mediaType == "" || mediaType == 'RecordingTrack') { + // mediaType == null is for backwards compat with older clients. Can be removed soon + recordingTrackMixers.push(mixer) } else { console.log("Unknown track type: " + mediaType) adhocTrackMixers.push(mixer); @@ -913,7 +915,6 @@ var preMasteredClass = ""; // find the track or tracks that correspond to the mixer var correspondingTracks = [] - console.log("mixer", mixer) correspondingTracks.push(backingTrack); if(correspondingTracks.length == 0) { @@ -988,7 +989,6 @@ var preMasteredClass = ""; // find the track or tracks that correspond to the mixer var correspondingTracks = [] - console.log("mixer", mixer) $.each(jamTracks, function(i, jamTrack) { if(mixer.id.indexOf("L") == 0) { if(mixer.id.substring(1) == jamTrack.id) { @@ -1078,7 +1078,6 @@ // using the server's info in conjuction with the client's, draw the recording tracks if(metronomeActive && metronomeTrackMixers.length > 0) { - console.log("Rendering active metronome."); var metronome = {active: metronomeActive} $('.session-recording-name').text(name);//sessionModel.getCurrentSession().backing_track_path); @@ -1087,7 +1086,6 @@ var preMasteredClass = ""; // find the track or tracks that correspond to the mixer var correspondingTracks = [] - console.log("mixer", mixer) correspondingTracks.push(metronome); if(correspondingTracks.length == 0) { @@ -1160,10 +1158,9 @@ //trackData.mediaControlsDisabled = true; trackData.mediaTrackOpener = isOpener; } - _addRecordingTrack(trackData); - - + _addRecordingTrack(trackData); }// if + setFormFromMetronome() } @@ -1503,8 +1500,7 @@ } if (track.showMetronomeControls) { - $track.find('.metronome-selects').removeClass("hidden") - setMetronomeDefaults() + $track.find('.metronome-selects').removeClass("hidden") } else { $track.find('.metronome-selects').addClass("hidden") } @@ -1741,6 +1737,15 @@ // }); // } + function handleMetronomeCallback(args) { + console.log("MetronomeCallback: ", args) + metroTempo = args.bpm + + // This isn't actually there, so we rely on the metroSound as set from select on form: + // metroSound = args.sound + context.JK.CurrentSessionModel.refreshCurrentSession(true); + } + function handleVolumeChangeCallback(mixerId, isLeft, value, isMuted) { // Visually update mixer // There is no need to actually set the back-end mixer value as the @@ -2195,7 +2200,7 @@ } else { rest.openMetronome({id: sessionModel.id()}) .done(function() { - context.jamClient.SessionOpenMetronome(120, "click", 1, 0) + context.jamClient.SessionOpenMetronome(120, "Click", 1, 0) context.JK.CurrentSessionModel.refreshCurrentSession(true) context.JK.CurrentSessionModel.refreshCurrentSession(true) }) @@ -2351,16 +2356,17 @@ $(friendInput).show(); } - function setMetronomeDefaults() { - $("select.metro-tempo option[value='120']").attr('selected', 'selected'); + function setFormFromMetronome() { + $("select.metro-tempo").val(metroTempo) + $("select.metro-sound").val(metroSound) } function setMetronomeFromForm() { var tempo = $("select.metro-tempo:visible option:selected").val() var sound = $("select.metro-sound:visible option:selected").val() - var t = parseInt(tempo); - var s; + var t = parseInt(tempo) + var s if (tempo==NaN || tempo==0 || tempo==null) { t = 120 } @@ -2372,6 +2378,8 @@ } console.log("Setting tempo and sound:", t, s) + metroTempo = t + metroSound = s context.jamClient.SessionSetMetronome(t, s, 1, 0) } @@ -2436,6 +2444,7 @@ context.jamClient.SetVURefreshRate(150); context.jamClient.RegisterVolChangeCallBack("JK.HandleVolumeChangeCallback"); playbackControls = new context.JK.PlaybackControls($('.session-recordings .recording-controls')); + context.jamClient.setMetronomeOpenCallback("JK.HandleMetronomeCallback") var screenBindings = { 'beforeShow': beforeShow, @@ -2477,6 +2486,7 @@ } context.JK.HandleVolumeChangeCallback = handleVolumeChangeCallback; + context.JK.HandleMetronomeCallback = handleMetronomeCallback; context.JK.HandleBridgeCallback = handleBridgeCallback; }; diff --git a/web/app/assets/stylesheets/client/session.css.scss b/web/app/assets/stylesheets/client/session.css.scss index 3f107b2bd..14f232941 100644 --- a/web/app/assets/stylesheets/client/session.css.scss +++ b/web/app/assets/stylesheets/client/session.css.scss @@ -564,11 +564,8 @@ table.vu td { margin: 0; width: 100% !important; font-size: 10px; - font-weight: normal; - //margin: 0 4px 0 4px; - background: transparent !important; - color: white; - } + font-weight: normal; + } } .track-icon-mute.muted { diff --git a/web/app/views/clients/_session.html.slim b/web/app/views/clients/_session.html.slim index 3c184cd2d..c765d4d61 100644 --- a/web/app/views/clients/_session.html.slim +++ b/web/app/views/clients/_session.html.slim @@ -124,12 +124,12 @@ script#template-session-track[type="text/template"] CONNECTION .disabled-track-overlay .metronome-selects.hidden - select.metronome-select.metro-sound - option.label value="bleep" bleep - option.label value="click" click - option.label value="drum" drum + select.metronome-select.metro-sound title="Metronome Sound" + option.label value="Beep" Bleep + option.label value="Click" Click + option.label value="Snare" Drum br - select.metronome-select.metro-tempo + select.metronome-select.metro-tempo title="Metronome Tempo" - metronome_tempos.each do |t| option.label value=t =t