VRFS-668 voice chat changes corresponding to backend client changes

This commit is contained in:
Brian Smith 2013-09-13 23:18:53 -04:00
parent 501010d74a
commit 08938e7e8e
4 changed files with 67 additions and 57 deletions

View File

@ -16,10 +16,8 @@
};
var VOICE_CHAT = {
NO_CHAT: "-1",
CHAT: "0",
SESSION: "1",
MIC: "2"
NO_CHAT: "0",
CHAT: "1"
};
var instrument_array = [];
@ -41,7 +39,6 @@
var devices = [];
var originalDeviceId;
var originalVoiceChat;
var currentVoiceChat;
var configure_audio_instructions = {
"Win32": "Choose the audio profile you would like to use for this session. If needed, use arrow buttons to assign audio inputs " +
@ -221,7 +218,7 @@
$cloneAudio.appendTo('#audio-inputs-unused');
// add it to the unused Voice Chat box
if ($('#voice-chat-type').val() == VOICE_CHAT.SESSION) {
if ($('#voice-chat-type').val() == VOICE_CHAT.CHAT) {
$cloneChat.appendTo('#voice-inputs-unused');
}
});
@ -230,11 +227,11 @@
}
function _syncVoiceChatType() {
logger.debug("syncVoiceChatDialog:originalVoiceChat=" + originalVoiceChat);
var $option1 = $('#voice-chat-type > option[value="1"]');
var voiceChatType = $('#voice-chat-type').val();
// remove Session Audio option from voice chat if none are available
if ($('#audio-inputs-unused > option').size() === 0 && $('#voice-inputs-selection > option').size() === 0) {
// remove option 1 from voice chat type dropdown if no music (based on what's unused on the Music Audio tab) or chat inputs are available
if ($('#audio-inputs-unused > option').size() === 0 && chatOtherUnassignedList.length === 0 && chatOtherAssignedList.length === 0) {
logger.debug("Removing Option 1 from Voice Chat dropdown.");
$option1.remove();
}
@ -242,7 +239,7 @@
// make sure it's not already in list before adding back
if ($option1.length === 0) {
logger.debug("Adding Option 1 back to Voice Chat dropdown.");
$('#voice-chat-type').prepend('<option value="1">Use an input on my session audio device for chat</option>');
$('#voice-chat-type').append('<option value="1">Use an input from the list below for chat</option>');
}
}
}
@ -268,13 +265,34 @@
$cloneChat.appendTo('#voice-inputs-unused');
// add it to the unused Music Input box if the selection is Session
if ($('#voice-chat-type').val() == VOICE_CHAT.SESSION) {
// add it to the unused Music Input box if the selected input is not type "chat"
if (!isChatInput(this.value)) {
$cloneAudio.appendTo('#audio-inputs-unused');
}
});
}
function isChatInput(id) {
// copy the arrays since $.grep modifies them
var chatOtherUnassignedListCopy = chatOtherUnassignedList;
var chatOtherAssignedListCopy = chatOtherAssignedList;
// is this input in the unassigned list?
$.grep(chatOtherUnassignedListCopy, function(n,i){
return n.chat && n.id === id;
});
// is this input in the assigned list?
$.grep(chatOtherAssignedListCopy, function(n,i){
return n.chat && n.id === id;
});
logger.debug("chatOtherUnassignedListCopy=" + JSON.stringify(chatOtherUnassignedListCopy));
logger.debug("chatOtherAssignedListCopy=" + JSON.stringify(chatOtherAssignedListCopy));
return chatOtherUnassignedListCopy.length > 0 || chatOtherAssignedListCopy.length > 0;
}
function audioDriverChanged() {
context.jamClient.TrackSetMusicDevice($('#audio-drivers').val());
@ -291,7 +309,9 @@
function voiceChatChanged() {
var voiceChatVal = $('#voice-chat-type').val();
logger.debug("voiceChatVal=" + voiceChatVal);
if (voiceChatVal == VOICE_CHAT.NO_CHAT) {
logger.debug("VOICE_CHAT.NO_CHAT");
_addSelectedVoiceInputsToMusicInputs();
@ -301,42 +321,28 @@
}
else if (voiceChatVal == VOICE_CHAT.CHAT) {
logger.debug("VOICE_CHAT.CHAT");
_addSelectedVoiceInputsToMusicInputs();
$('#voice-inputs-unused').empty();
$('#voice-inputs-selection').empty();
// add the chat inputs (unassigned and assigned) to the unused box to force the user to select again
context.JK.loadOptions($('#template-option').html(), $('#voice-inputs-unused'), chatOtherUnassignedList, "id", "name", -1);
context.JK.loadOptions($('#template-option').html(), $('#voice-inputs-selection'), chatOtherAssignedList, "id", "name", -1);
}
else if (voiceChatVal == VOICE_CHAT.SESSION) {
logger.debug("VOICE_CHAT.SESSION");
$('#voice-inputs-unused').empty();
$('#voice-inputs-selection').empty();
context.JK.loadOptions($('#template-option').html(), $('#voice-inputs-unused'), chatOtherAssignedList, "id", "name", -1);
// add each unused music input if it doesn't already exist
$('#audio-inputs-unused > option').each(function() {
if ($('#voice-inputs-unused > option[value="' + this.value + '"]').length === 0) {
$('#voice-inputs-unused').append('<option value="' + this.value + '">' + this.text + '</option>');
}
});
}
else if (voiceChatVal == VOICE_CHAT.MIC) {
logger.debug("VOICE_CHAT.MIC");
_addSelectedVoiceInputsToMusicInputs();
$('#voice-inputs-unused').empty();
$('#voice-inputs-selection').empty();
}
currentVoiceChat = voiceChatVal;
}
function _addSelectedVoiceInputsToMusicInputs() {
$('#voice-inputs-selection > option').each(function() {
// if this input is not in the available music inputs box and the current selection is not voice devices, add
// if this input is not already in the available music inputs box and the selected input is not chat input, add
// it to the unused music inputs box
if ($('#audio-inputs-unused > option[value="' + this.value + '"]').length === 0 && currentVoiceChat != VOICE_CHAT.CHAT) {
if ($('#audio-inputs-unused > option[value="' + this.value + '"]').length === 0 && !isChatInput(this.value)) {
$('#audio-inputs-unused').append('<option value="' + this.value + '">' + this.text + '</option>');
}
});
@ -447,19 +453,16 @@
var chatOption = $('#voice-chat-type').val();
if (chatOption == VOICE_CHAT.SESSION) {
if (chatOption == VOICE_CHAT.CHAT) {
context.JK.loadOptions($('#template-option').html(), $('#voice-inputs-unused'), chatUnassignedList, "id", "name", -1);
context.JK.loadOptions($('#template-option').html(), $('#voice-inputs-selection'), chatAssignedList, "id", "name", -1);
}
// populate with voice devices
else if (chatOption == VOICE_CHAT.CHAT) {
context.JK.loadOptions($('#template-option').html(), $('#voice-inputs-unused'), chatOtherUnassignedList, "id", "name", -1);
context.JK.loadOptions($('#template-option').html(), $('#voice-inputs-selection'), chatOtherAssignedList, "id", "name", -1);
}
// disable inputs
else if (chatOption == VOICE_CHAT.MIC || chatOption == VOICE_CHAT.NO_CHAT) {
else if (chatOption == VOICE_CHAT.NO_CHAT) {
}
}
}
@ -648,11 +651,11 @@
}
function saveVoiceChatSettings() {
currentVoiceChat = $('#voice-chat-type').val();
originalVoiceChat = currentVoiceChat;
var voiceChatType = $('#voice-chat-type').val();
originalVoiceChat = voiceChatType;
logger.debug("Calling TrackSetChatUsesMusic with value = " + currentVoiceChat);
context.jamClient.TrackSetChatUsesMusic(currentVoiceChat);
logger.debug("Calling TrackSetChatEnable with value = " + voiceChatType);
context.jamClient.TrackSetChatEnable(voiceChatType == VOICE_CHAT.CHAT ? true : false);
// UNASSIGNED VOICE CHAT
$('#voice-inputs-unused > option').each(function() {
@ -674,7 +677,6 @@
context.jamClient.TrackSetMusicDevice(originalDeviceId);
$('#voice-chat-type').val(originalVoiceChat);
currentVoiceChat = originalVoiceChat;
app.layout.closeDialog('configure-audio');
}
@ -745,14 +747,14 @@
}
else {
var chatType = $('#voice-chat-type').val();
if (chatType == VOICE_CHAT.SESSION || chatType == VOICE_CHAT.CHAT) {
if (chatType == VOICE_CHAT.CHAT) {
var $voiceInputSelection = $('#voice-inputs-selection > option');
if ($voiceInputSelection.size() === 0 || $voiceInputSelection.size() > 2) {
if ($voiceInputSelection.size() === 0) {
errMsg = noTrackErrMsg;
isValid = false;
}
}
else if (chatType == VOICE_CHAT.MIC || chatType == VOICE_CHAT.NO_CHAT) {
else if (chatType == VOICE_CHAT.NO_CHAT) {
// NO VALIDATION NEEDED
}
@ -783,12 +785,11 @@
});
});
originalVoiceChat = context.jamClient.TrackGetChatUsesMusic();
currentVoiceChat = originalVoiceChat;
$('#voice-chat-type').val(originalVoiceChat);
originalVoiceChat = context.jamClient.TrackGetChatEnable() ? VOICE_CHAT.CHAT : VOICE_CHAT.NO_CHAT;
logger.debug("originalVoiceChat=" + originalVoiceChat);
$('#voice-chat-type').val(originalVoiceChat);
originalDeviceId = context.jamClient.TrackGetMusicDeviceID();
context.jamClient.TrackLoadAssignments();
@ -796,8 +797,8 @@
var $option1 = $('#voice-chat-type > option[value="1"]');
// remove Session Audio option from voice chat if none are available and not already assigned
if (inputUnassignedList.length === 0 && chatAssignedList.length === 0) {
// remove option 1 from voice chat if none are available and not already assigned
if (inputUnassignedList.length === 0 && chatAssignedList.length === 0 && chatOtherAssignedList.length === 0 && chatOtherUnassignedList.length === 0) {
logger.debug("Removing Option 1 from Voice Chat dropdown.");
$option1.remove();
}
@ -805,7 +806,7 @@
else {
if ($option1.length === 0) {
logger.debug("Adding Option 1 back to Voice Chat dropdown.");
$('#voice-chat-type').prepend('<option value="1">Use an input on my session audio device for chat</option>');
$('#voice-chat-type').append('<option value="1">Use an input from the list below for chat</option>');
}
}
}

View File

@ -370,6 +370,14 @@
}
}
function TrackGetChatEnable() {
return true;
}
function TrackSetChatEnable(chat) {
}
function TrackSaveAssignments() {}
function TrackGetDevices() {
@ -567,6 +575,9 @@
this.TrackOpenControlPanel = TrackOpenControlPanel;
this.TrackIsMusicDeviceType = TrackIsMusicDeviceType;
this.TrackGetChatEnable = TrackGetChatEnable;
this.TrackSetChatEnable = TrackSetChatEnable;
this.TrackGetChatUsesMusic = TrackGetChatUsesMusic;
this.TrackSetChatUsesMusic = TrackSetChatUsesMusic;

View File

@ -232,10 +232,10 @@
// that we're using music for voice-chat.
if ($('[layout-wizard-step="2"] select[data-device="voice-chat-input"]').val()) {
// Voice input selected
jamClient.TrackSetChatUsesMusic(0);
jamClient.TrackSetChatEnable(true);
} else {
// No voice input selected.
jamClient.TrackSetChatUsesMusic(-1);
jamClient.TrackSetChatEnable(false);
}
logger.debug("Calling FTUESave(" + persist + ")");

View File

@ -138,10 +138,8 @@
<div class="clearall"></div>
<div class="left w100">
<select id="voice-chat-type" class="w100">
<option value="-1">I don't want to use voice chat</option>
<option value="1">Use an input on my session audio device for chat</option>
<option value="0">Use a device from the list below for chat</option>
<option value="2">Use my session audio mic for both music and chat</option>
<option value="0">Don't set up an input for voice chat</option>
<option value="1">Use an input from the list below for chat</option>
</select>
</div>
</div>