Merge pull request #9813 from druiz17/multipule-audio-fix

removed duplicated audio devices
This commit is contained in:
Andrew Meadows 2017-03-07 10:00:48 -08:00 committed by GitHub
commit 1e9623e2f2

View file

@ -51,7 +51,9 @@ const OUTPUT_DEVICE_SETTING = "audio_output_device";
var selectedInputMenu = ""; var selectedInputMenu = "";
var selectedOutputMenu = ""; var selectedOutputMenu = "";
var audioDevicesList = [];
function setupAudioMenus() { function setupAudioMenus() {
removeAudioMenus();
Menu.addSeparator("Audio", "Input Audio Device"); Menu.addSeparator("Audio", "Input Audio Device");
var inputDeviceSetting = Settings.getValue(INPUT_DEVICE_SETTING); var inputDeviceSetting = Settings.getValue(INPUT_DEVICE_SETTING);
@ -72,6 +74,7 @@ function setupAudioMenus() {
isCheckable: true, isCheckable: true,
isChecked: thisDeviceSelected isChecked: thisDeviceSelected
}); });
audioDevicesList.push(menuItem);
if (thisDeviceSelected) { if (thisDeviceSelected) {
selectedInputMenu = menuItem; selectedInputMenu = menuItem;
} }
@ -97,12 +100,24 @@ function setupAudioMenus() {
isCheckable: true, isCheckable: true,
isChecked: thisDeviceSelected isChecked: thisDeviceSelected
}); });
audioDevicesList.push(menuItem);
if (thisDeviceSelected) { if (thisDeviceSelected) {
selectedOutputMenu = menuItem; selectedOutputMenu = menuItem;
} }
} }
} }
function removeAudioMenus() {
Menu.removeSeparator("Audio", "Input Audio Device");
Menu.removeSeparator("Audio", "Output Audio Device");
for (var index = 0; index < audioDevicesList.length; index++) {
Menu.removeMenuItem("Audio", audioDevicesList[index]);
}
audioDevicesList = [];
}
function onDevicechanged() { function onDevicechanged() {
print("audio devices changed, removing Audio > Devices menu..."); print("audio devices changed, removing Audio > Devices menu...");
Menu.removeMenu("Audio > Devices"); Menu.removeMenu("Audio > Devices");
@ -218,6 +233,7 @@ Script.update.connect(checkHMDAudio);
Script.scriptEnding.connect(function () { Script.scriptEnding.connect(function () {
restoreAudio(); restoreAudio();
removeAudioMenus();
Menu.menuItemEvent.disconnect(menuItemEvent); Menu.menuItemEvent.disconnect(menuItemEvent);
Script.update.disconnect(checkHMDAudio); Script.update.disconnect(checkHMDAudio);
}); });