From eff19235c3478274564e4ce0c479d62cfbb56e91 Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Sun, 1 Feb 2015 17:59:34 -0600 Subject: [PATCH] VRFS-2730 : Hook up jamtrack looping. --- .../javascripts/dialog/openBackingTrackDialog.js | 7 ++++++- web/app/assets/javascripts/fakeJamClient.js | 8 +++++++- web/app/assets/javascripts/session.js | 12 ++++++++++++ .../assets/stylesheets/client/session.css.scss | 16 ++++++++++++++++ web/app/views/clients/_session.html.slim | 2 ++ 5 files changed, 43 insertions(+), 2 deletions(-) diff --git a/web/app/assets/javascripts/dialog/openBackingTrackDialog.js b/web/app/assets/javascripts/dialog/openBackingTrackDialog.js index a57cd48d2..82038a760 100644 --- a/web/app/assets/javascripts/dialog/openBackingTrackDialog.js +++ b/web/app/assets/javascripts/dialog/openBackingTrackDialog.js @@ -87,7 +87,7 @@ // tell the server we are about to open a backing track: rest.openBackingTrack({id: context.JK.CurrentSessionModel.id(), backing_track_path: backingTrack.name}) .done(function(response) { - var result = context.jamClient.SessionOpenBackingTrackFile(backingTrack.name); + var result = context.jamClient.SessionOpenBackingTrackFile(backingTrack.name, false); console.log("BackingTrackPlay response: %o", result); // TODO: Possibly actually check the result. Investigate @@ -110,6 +110,11 @@ context.JK.helpBubble($whatAreBackingTracks, 'no help yet for this topic', {}, {positions:['bottom'], offsetParent: $dialog}) $whatAreBackingTracks.on('click', false) // no help yet + + $displayAudioFileFolder.on('click', function(e) { + e.stopPropagation(); + context.jamClient.OpenBackingTracksDirectory(); + }) } function initialize(){ diff --git a/web/app/assets/javascripts/fakeJamClient.js b/web/app/assets/javascripts/fakeJamClient.js index 45fb1299e..f4b1db377 100644 --- a/web/app/assets/javascripts/fakeJamClient.js +++ b/web/app/assets/javascripts/fakeJamClient.js @@ -727,10 +727,15 @@ function SetScoreWorkTimingInterval(knobs) {return true;} function SessionOpenBackingTrackFile(path, loop) { - backingTrackPath=path + backingTrackPath = path backingTrackLoop = loop } + function SessionSetBackingTrackFileLoop(path, loop) { + backingTrackPath = path + backingTrackLoop = loop + } + function SessionCloseBackingTrackFile(path) { backingTrackPath="" } @@ -1055,6 +1060,7 @@ this.getBackingTrackList = getBackingTrackList; this.SessionCloseBackingTrackFile = SessionCloseBackingTrackFile; this.SessionOpenBackingTrackFile = SessionOpenBackingTrackFile; + this.SessionSetBackingTrackFileLoop = SessionSetBackingTrackFileLoop; this.SessionCloseMetronome = SessionCloseMetronome; this.SessionOpenMetronome = SessionOpenMetronome; diff --git a/web/app/assets/javascripts/session.js b/web/app/assets/javascripts/session.js index 2477cdf7d..53b7fb4fb 100644 --- a/web/app/assets/javascripts/session.js +++ b/web/app/assets/javascripts/session.js @@ -945,6 +945,7 @@ latency: "good", gainPercent: 0, muteClass: 'muted', + showLoop: true, mixerId: "", avatarClass : 'avatar-recording', preMasteredClass: "" @@ -1691,6 +1692,17 @@ $trackIconMute.data('media-controls-disabled', true).data('media-track-opener', trackData.mediaTrackOpener) } + if(trackData.showLoop) { + var $trackIconLoop = $track.find('.track-icon-loop') + $trackIconLoop.show() + var loopBtn = $trackIconLoop.find('#loop-button') + loopBtn.on('click', function(event) { + var loop = loopBtn.is(':checked') + console.log("Looping: ", loop); + context.jamClient.SessionSetBackingTrackFileLoop(trackData.name, loop) + }) + } + // is this used? tracks[trackData.trackId] = new context.JK.SessionTrack(trackData.clientId); } diff --git a/web/app/assets/stylesheets/client/session.css.scss b/web/app/assets/stylesheets/client/session.css.scss index 6c3823b6f..6a49b01df 100644 --- a/web/app/assets/stylesheets/client/session.css.scss +++ b/web/app/assets/stylesheets/client/session.css.scss @@ -534,6 +534,22 @@ table.vu td { text-align: center; } +.track-icon-loop { + cursor: pointer; + position:absolute; + top:250px; + left:9; + width: 20px; + height: 18px; + // background-image:url('/assets/content/icon_mute.png'); + // background-repeat:no-repeat; + text-align: center; + input { + font-size: 8pt; + font-weight: bold; + } +} + .metronome-selects { position: absolute; width: 52px; diff --git a/web/app/views/clients/_session.html.slim b/web/app/views/clients/_session.html.slim index a096216a9..3c184cd2d 100644 --- a/web/app/views/clients/_session.html.slim +++ b/web/app/views/clients/_session.html.slim @@ -118,6 +118,8 @@ script#template-session-track[type="text/template"] img height="45" src="{instrumentIcon}" width="45" .track-gain mixer-id="{mixerId}" .track-icon-mute class="{muteClass}" control="mute" mixer-id="{muteMixerId}" + .track-icon-loop.hidden control="loop" + input#loop-button type="checkbox" value="loop" Loop .track-connection.grey mixer-id="{mixerId}_connection" CONNECTION .disabled-track-overlay