* wip
This commit is contained in:
parent
b780b4a462
commit
76adc44a50
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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) {}
|
||||
|
|
|
|||
|
|
@ -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<groupIds.length; i++) {
|
||||
|
|
@ -603,6 +588,7 @@
|
|||
function _wireTopVolume() {
|
||||
var gainPercent = 0;
|
||||
var mixerIds = [];
|
||||
var mixers = sessionModel.isMasterMixMode() ? masterMixers : personalMixers;
|
||||
$.each(mixers, function(index, mixer) {
|
||||
if (sessionModel.isMasterMixMode() && mixer.group_id === ChannelGroupIds.MasterGroup) {
|
||||
mixerIds.push(mixer.id);
|
||||
|
|
@ -615,6 +601,11 @@
|
|||
mixer.range_low, mixer.range_high, mixer.volume_left);
|
||||
}
|
||||
});
|
||||
if(mixerIds.length == 0) {
|
||||
logger.debug("did not find master/monitor volume", mixers)
|
||||
|
||||
}
|
||||
|
||||
var faderId = mixerIds.join(',');
|
||||
var $volume = $('#volume');
|
||||
$volume.attr('mixer-id', faderId);
|
||||
|
|
@ -683,6 +674,7 @@
|
|||
// If, and only if, there is a mixer in group 3 (voice chat)
|
||||
// Add the voice chat controls below my tracks, and hook up the mixer.
|
||||
// Assumption is that there is only ever one, so we just take the first one.
|
||||
var mixers = sessionModel.isMasterMixMode() ? masterMixers : personalMixers;
|
||||
$.each(mixers, function(index, mixer) {
|
||||
if (mixer.group_id === ChannelGroupIds.AudioInputChatGroup) {
|
||||
var $voiceChat = $('#voice-chat');
|
||||
|
|
@ -709,9 +701,9 @@
|
|||
}
|
||||
|
||||
function _renderLocalMediaTracks() {
|
||||
var localMediaMixers = _mixersForGroupId(ChannelGroupIds.MediaTrackGroup);
|
||||
var localMediaMixers = _mixersForGroupId(ChannelGroupIds.MediaTrackGroup, sessionModel.getMixMode());
|
||||
if(localMediaMixers.length == 0) {
|
||||
localMediaMixers = _mixersForGroupId(ChannelGroupIds.PeerMediaTrackGroup);
|
||||
localMediaMixers = _mixersForGroupId(ChannelGroupIds.PeerMediaTrackGroup, sessionModel.getMixMode());
|
||||
}
|
||||
|
||||
var recordedTracks = sessionModel.recordedTracks();
|
||||
|
|
@ -882,28 +874,41 @@
|
|||
// identify by track id or something similar.
|
||||
|
||||
|
||||
var mixers = _groupedMixersForClientId(
|
||||
participant.client_id,
|
||||
[
|
||||
ChannelGroupIds.AudioInputMusicGroup,
|
||||
ChannelGroupIds.PeerAudioInputMusicGroup,
|
||||
ChannelGroupIds.UserMusicInputGroup
|
||||
],
|
||||
usedMixers);
|
||||
var currentMixers = _groupedMixersForClientId(
|
||||
participant.client_id,
|
||||
[
|
||||
ChannelGroupIds.AudioInputMusicGroup,
|
||||
ChannelGroupIds.PeerAudioInputMusicGroup,
|
||||
ChannelGroupIds.UserMusicInputGroup
|
||||
],
|
||||
usedMixers, sessionModel.getMixMode());
|
||||
|
||||
var oppositeMixers = _groupedMixersForClientId(
|
||||
participant.client_id,
|
||||
[
|
||||
ChannelGroupIds.AudioInputMusicGroup,
|
||||
ChannelGroupIds.PeerAudioInputMusicGroup,
|
||||
ChannelGroupIds.UserMusicInputGroup
|
||||
],
|
||||
usedMixers, !sessionModel.getMixMode());
|
||||
|
||||
console.log("currentMixers", currentMixers)
|
||||
console.log("oppositeMixers", oppositeMixers)
|
||||
|
||||
var mixer = null;
|
||||
var oppositeMixer = null;
|
||||
if(mixers) {
|
||||
if(mixers[ChannelGroupIds.AudioInputMusicGroup]) {
|
||||
mixer = mixers[ChannelGroupIds.AudioInputMusicGroup][0]
|
||||
if(currentMixers) {
|
||||
if(currentMixers[ChannelGroupIds.AudioInputMusicGroup]) {
|
||||
mixer = currentMixers[ChannelGroupIds.AudioInputMusicGroup][0]
|
||||
oppositeMixer = oppositeMixers[ChannelGroupIds.AudioInputMusicGroup][0]
|
||||
}
|
||||
else if(sessionModel.isMasterMixMode() && mixers[ChannelGroupIds.PeerAudioInputMusicGroup]) {
|
||||
mixer = mixers[ChannelGroupIds.PeerAudioInputMusicGroup][0]
|
||||
oppositeMixer = mixers[ChannelGroupIds.UserMusicInputGroup][0]
|
||||
else if(sessionModel.isMasterMixMode() && currentMixers[ChannelGroupIds.PeerAudioInputMusicGroup]) {
|
||||
mixer = currentMixers[ChannelGroupIds.PeerAudioInputMusicGroup][0]
|
||||
oppositeMixer = oppositeMixers[ChannelGroupIds.UserMusicInputGroup][0]
|
||||
}
|
||||
else if(!sessionModel.isMasterMixMode() && mixers[ChannelGroupIds.UserMusicInputGroup]) {
|
||||
mixer = mixers[ChannelGroupIds.UserMusicInputGroup][0]
|
||||
oppositeMixer = mixers[ChannelGroupIds.PeerAudioInputMusicGroup][0]
|
||||
else if(!sessionModel.isMasterMixMode() && currentMixers[ChannelGroupIds.UserMusicInputGroup]) {
|
||||
mixer = currentMixers[ChannelGroupIds.UserMusicInputGroup][0]
|
||||
oppositeMixer = oppositeMixers[ChannelGroupIds.PeerAudioInputMusicGroup][0]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -981,50 +986,39 @@
|
|||
var keysToDelete = [];
|
||||
for (var key in lookingForMixers) {
|
||||
var clientId = lookingForMixers[key];
|
||||
<<<<<<< HEAD
|
||||
var mixers = _groupedMixersForClientId(
|
||||
var currentMixers = _groupedMixersForClientId(
|
||||
clientId,
|
||||
[
|
||||
ChannelGroupIds.AudioInputMusicGroup,
|
||||
ChannelGroupIds.PeerAudioInputMusicGroup,
|
||||
ChannelGroupIds.UserMusicInputGroup
|
||||
],
|
||||
usedMixers);
|
||||
usedMixers, sessionModel.getMixMode());
|
||||
|
||||
var oppositeMixers = _groupedMixersForClientId(
|
||||
clientId,
|
||||
[
|
||||
ChannelGroupIds.AudioInputMusicGroup,
|
||||
ChannelGroupIds.PeerAudioInputMusicGroup,
|
||||
ChannelGroupIds.UserMusicInputGroup
|
||||
],
|
||||
usedMixers, !sessionModel.getMixMode());
|
||||
|
||||
var mixer = null;
|
||||
var oppositeMixer = null;
|
||||
if(mixers) {
|
||||
if(mixers[ChannelGroupIds.AudioInputMusicGroup]) {
|
||||
mixer = mixers[ChannelGroupIds.AudioInputMusicGroup][0]
|
||||
if(currentMixers) {
|
||||
if(currentMixers[ChannelGroupIds.AudioInputMusicGroup]) {
|
||||
mixer = currentMixers[ChannelGroupIds.AudioInputMusicGroup][0]
|
||||
oppositeMixer = oppositeMixers[ChannelGroupIds.AudioInputMusicGroup][0]
|
||||
}
|
||||
else if(sessionModel.isMasterMixMode() && mixers[ChannelGroupIds.PeerAudioInputMusicGroup]) {
|
||||
mixer = mixers[ChannelGroupIds.PeerAudioInputMusicGroup][0]
|
||||
oppositeMixer = mixers[ChannelGroupIds.UserMusicInputGroup][0]
|
||||
else if(sessionModel.isMasterMixMode() && currentMixers[ChannelGroupIds.PeerAudioInputMusicGroup]) {
|
||||
mixer = currentMixers[ChannelGroupIds.PeerAudioInputMusicGroup][0]
|
||||
oppositeMixer = oppositeMixers[ChannelGroupIds.UserMusicInputGroup][0]
|
||||
}
|
||||
else if(!sessionModel.isMasterMixMode() && mixers[ChannelGroupIds.UserMusicInputGroup]) {
|
||||
mixer = mixers[ChannelGroupIds.UserMusicInputGroup][0]
|
||||
oppositeMixer = mixers[ChannelGroupIds.PeerAudioInputMusicGroup][0]
|
||||
else if(!sessionModel.isMasterMixMode() && currentMixers[ChannelGroupIds.UserMusicInputGroup]) {
|
||||
mixer = currentMixers[ChannelGroupIds.UserMusicInputGroup][0]
|
||||
oppositeMixer = oppositeMixers[ChannelGroupIds.PeerAudioInputMusicGroup][0]
|
||||
}
|
||||
=======
|
||||
var mixer = null;
|
||||
if(sessionModel.isMasterMixMode()) {
|
||||
mixer = _mixerForClientId(
|
||||
clientId,
|
||||
[
|
||||
ChannelGroupIds.AudioInputMusicGroup,
|
||||
ChannelGroupIds.PeerAudioInputMusicGroup
|
||||
],
|
||||
usedMixers);
|
||||
}
|
||||
else {
|
||||
// don't pass in used mixers; we need to associate multiple tracks with the same mixer
|
||||
mixer = _mixerForClientId(
|
||||
clientId,
|
||||
[
|
||||
ChannelGroupIds.AudioInputMusicGroup,
|
||||
ChannelGroupIds.UserMusicInputGroup
|
||||
],
|
||||
{});
|
||||
>>>>>>> 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());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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++) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue