From 76adc44a509dee9300a4de80307ac8e88c3d2197 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Mon, 17 Nov 2014 17:16:30 -0600 Subject: [PATCH] * wip --- ruby/lib/jam_ruby/models/user.rb | 9 +- web/app/assets/javascripts/fakeJamClient.js | 6 +- web/app/assets/javascripts/session.js | 176 ++++++++++---------- web/app/assets/javascripts/sessionModel.js | 5 + web/app/assets/javascripts/trackHelpers.js | 6 +- 5 files changed, 98 insertions(+), 104 deletions(-) diff --git a/ruby/lib/jam_ruby/models/user.rb b/ruby/lib/jam_ruby/models/user.rb index 2aec3475d..831b9235a 100644 --- a/ruby/lib/jam_ruby/models/user.rb +++ b/ruby/lib/jam_ruby/models/user.rb @@ -386,21 +386,15 @@ module JamRuby # new_modes should be a regular hash with non-symbolized keys (vs symbolized keys) def mod_merge(new_mods) self.mods = (mods_json.merge(new_mods) do |key, old_val, new_val| -<<<<<<< HEAD - if key == "no_show" - # we take the values from previous no_shows, and merge it with the new no_shows -======= if key == MOD_NO_SHOW || key == MOD_GEAR # we take the values from previous hash, and merge it with the new hash ->>>>>>> develop old_val.merge(new_val) else raise "unknown in mode_merge key: #{key}" end end).to_json @mods_json = nil # invalidate this since we've updated self.mods -<<<<<<< HEAD -======= + end # any mod with the value 'null' will be deleted @@ -431,7 +425,6 @@ module JamRuby def get_no_show_mod(sub_key) get_mod(MOD_NO_SHOW, sub_key) ->>>>>>> develop end def heartbeat_interval_client diff --git a/web/app/assets/javascripts/fakeJamClient.js b/web/app/assets/javascripts/fakeJamClient.js index 899ca4274..016da08f9 100644 --- a/web/app/assets/javascripts/fakeJamClient.js +++ b/web/app/assets/javascripts/fakeJamClient.js @@ -392,7 +392,7 @@ logger.debug("Fake JamClient: SessionAudioResync()"); } - function SessionGetControlState(mixerIds) { + function SessionGetControlState(mixerIds, isMasterOrPersonal) { dbg("SessionGetControlState"); var groups = [0, 1, 2, 3, 7, 9]; var names = [ @@ -473,8 +473,8 @@ dbg('SessionSetConnectionStatusRefreshRate: ' + milliseconds); } - function SessionSetControlState(stringValue) { - dbg('SessionSetControlState: ' + stringValue); + function SessionSetControlState(stringValue, isMasterOrPersonal) { + dbg('SessionSetControlState: ' + stringValue + " m/p=" + isMasterOrPersonal); } function SessionSetRecordingFilename(filename) {} function SessionSetRecordingFolder(folderName) {} diff --git a/web/app/assets/javascripts/session.js b/web/app/assets/javascripts/session.js index 6c07ba1e3..a424c8615 100644 --- a/web/app/assets/javascripts/session.js +++ b/web/app/assets/javascripts/session.js @@ -16,7 +16,8 @@ var sessionId; var tracks = {}; var myTracks = []; - var mixers = []; + var masterMixers = []; + var personalMixers = []; var configureTrackDialog; var addNewGearDialog; var localRecordingsDialog = null; @@ -453,8 +454,9 @@ * you must iterate. Convenience method to locate a particular * mixer by id. */ - function getMixer(mixerId) { + function getMixer(mixerId, mixMode) { var foundMixer = null; + var mixers = mixMode == MIX_MODES.MASTER ? masterMixers : personalMixers; $.each(mixers, function(index, mixer) { if (mixer.id === mixerId) { foundMixer = mixer; @@ -492,26 +494,17 @@ // Get the latest list of underlying audio mixer channels function _updateMixers() { - var mixerIds = context.jamClient.SessionGetIDs(); - var holder = $.extend(true, {}, {mixers: context.jamClient.SessionGetControlState(mixerIds)}); - mixers = holder.mixers; - // grab the first mixer, and check the mode - var newMixerMode;; - if(mixers.length > 0) { - newMixerMode = mixers[0]["mode"] - if(newMixerMode === undefined) { - logger.error("mixer mode not present. defaulting to personal") - newMixerMode = MIX_MODES.PERSONAL; - } - } - else { - logger.error("no mixers present. defaulting mixer mode to personal") - newMixerMode = MIX_MODES.PERSONAL; - } + masterMixers = context.jamClient.SessionGetAllControlState(true); + //var holder = $.extend(true, {}, {mixers: context.jamClient.SessionGetControlState(masterMixerIds, true)}); + //masterMixers = masterMixerIds.mixers; - sessionModel.setMixerMode(newMixerMode) + personalMixers = context.jamClient.SessionGetAllControlState(false); + //holder = $.extend(true, {}, {mixers: context.jamClient.SessionGetControlState(personalMixerIds, false)}); + //personalMixers = personalMixerIds.mixers; + console.log("masterMixers", masterMixers) + console.log("personalMixers", personalMixers) // Always add a hard-coded simplified 'mixer' for the L2M mix /** @@ -524,31 +517,21 @@ mixers.push(l2m_mixer);*/ } - function _mixersForGroupId(groupId) { + function _mixersForGroupId(groupId, mixMode) { var foundMixers = []; + var mixers = mixMode == MIX_MODES.MASTER ? masterMixers : personalMixers; $.each(mixers, function(index, mixer) { - if (mixer.group_id === groupId) { + if ( mixer.group_id === groupId) { foundMixers.push(mixer); } - }); return foundMixers; } - function _userMusicInputMixerForClientId(clientId) { - var found = null; - $.each(mixers, function(index, mixer) { - if (mixer.group_id === ChannelGroupIds.UserMusicInputGroup && mixer.client_id == clientId) { - found = mixer; - return false; - } - }); - return found; - } - - function _clientIdForUserInputMixer(mixerId) { + function _clientIdForUserInputMixer(mixerId, mixMode) { var found = null; + var mixers = mixMode == MIX_MODES.MASTER ? masterMixers : personalMixers; $.each(mixers, function(index, mixer) { if (mixer.group_id === ChannelGroupIds.UserMusicInputGroup && mixer.id == mixerId) { found = mixer.client_id; @@ -578,9 +561,11 @@ return foundMixer; } - function _groupedMixersForClientId(clientId, groupIds, usedMixers) { + function _groupedMixersForClientId(clientId, groupIds, usedMixers, mixMode) { //logger.debug("clientId", clientId, "groupIds", groupIds, "mixers", mixers) var foundMixers = {}; + var mixers = mixMode == MIX_MODES.MASTER ? masterMixers : personalMixers; + console.log("_groupedMixersForClientId", mixers) $.each(mixers, function(index, mixer) { if (mixer.client_id === clientId) { for (var i=0; i>>>>>> develop } if (mixer) { var participant = (sessionModel.getParticipant(clientId) || {name:'unknown'}).name; @@ -1082,7 +1076,7 @@ var selector; var pureMixerId = mixerId.replace("_vul", ""); pureMixerId = pureMixerId.replace("_vur", ""); - var mixer = getMixer(pureMixerId); + var mixer = getMixer(pureMixerId, sessionModel.getMixMode()); if (mixer) { if (!(mixer.stereo)) { // mono track if (mixerId.substr(-4) === "_vul") { @@ -1223,7 +1217,7 @@ if (value < 4) { connectionClass = 'red'; } - var clientId = _clientIdForUserInputMixer(mixerId); + var clientId = _clientIdForUserInputMixer(mixerId, sessionModel.getMixMode()); if(clientId) { var $connection = $('.session-track[client-id="' + clientId + '"] .track-connection'); @@ -1284,7 +1278,7 @@ function _toggleAudioMute(mixerId, muting) { fillTrackVolumeObject(mixerId); context.trackVolumeObject.mute = muting; - context.jamClient.SessionSetControlState(mixerId); + context.jamClient.SessionSetControlState(mixerId, sessionModel.getMixerMode()); } function showMuteDropdowns($control) { @@ -1400,7 +1394,7 @@ context.jamClient.SessionSetMasterLocalMix(dbValue); // context.jamClient.SessionSetMasterLocalMix(sliderValue); } else { - context.jamClient.SessionSetControlState(mixerId); + context.jamClient.SessionSetControlState(mixerId, sessionModel.getMixerMode()); } } diff --git a/web/app/assets/javascripts/sessionModel.js b/web/app/assets/javascripts/sessionModel.js index 719fc650f..ddc77d8e3 100644 --- a/web/app/assets/javascripts/sessionModel.js +++ b/web/app/assets/javascripts/sessionModel.js @@ -506,6 +506,10 @@ return mixerMode == MIX_MODES.MASTER; } + function getMixMode() { + return mixerMode; + } + function onWebsocketDisconnected(in_error) { // kill the streaming of the session immediately if(currentSessionId) { @@ -664,6 +668,7 @@ this.inSession = inSession; this.setMixerMode = setMixerMode; this.isMasterMixMode = isMasterMixMode; + this.getMixMode = getMixMode; // ALERT HANDLERS this.onBackendMixerChanged = onBackendMixerChanged; diff --git a/web/app/assets/javascripts/trackHelpers.js b/web/app/assets/javascripts/trackHelpers.js index 384fd5dc3..cc9b7ea63 100644 --- a/web/app/assets/javascripts/trackHelpers.js +++ b/web/app/assets/javascripts/trackHelpers.js @@ -16,8 +16,9 @@ getTracks: function(jamClient, groupId) { var tracks = []; - var trackIds = jamClient.SessionGetIDs(); - var allTracks = jamClient.SessionGetControlState(trackIds); + var allTracks = context.jamClient.SessionGetAllControlState(true); + //var trackIds = jamClient.SessionGetIDs(); + //var allTracks = jamClient.SessionGetControlState(trackIds, true); // get client's tracks for (var i=0; i < allTracks.length; i++) { @@ -41,6 +42,7 @@ localMusicTracks = context.JK.TrackHelpers.getTracks(jamClient, 2); + console.log("getUserTracks", localMusicTracks) var trackObjects = []; for (i=0; i < localMusicTracks.length; i++) {