mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 10:19:06 +02:00
corrected removing duplicate devices
This commit is contained in:
parent
b6671d92c8
commit
fc65723d68
1 changed files with 16 additions and 37 deletions
|
@ -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);
|
||||||
|
@ -67,11 +69,12 @@ function setupAudioMenus() {
|
||||||
var thisDeviceSelected = (inputDevices[i] == selectedInputDevice);
|
var thisDeviceSelected = (inputDevices[i] == selectedInputDevice);
|
||||||
var menuItem = "Use " + inputDevices[i] + " for Input";
|
var menuItem = "Use " + inputDevices[i] + " for Input";
|
||||||
Menu.addMenuItem({
|
Menu.addMenuItem({
|
||||||
menuName: "Audio",
|
menuName: "Audio",
|
||||||
menuItemName: menuItem,
|
menuItemName: menuItem,
|
||||||
isCheckable: true,
|
isCheckable: true,
|
||||||
isChecked: thisDeviceSelected
|
isChecked: thisDeviceSelected
|
||||||
});
|
});
|
||||||
|
audioDevicesList.push(menuItem);
|
||||||
if (thisDeviceSelected) {
|
if (thisDeviceSelected) {
|
||||||
selectedInputMenu = menuItem;
|
selectedInputMenu = menuItem;
|
||||||
}
|
}
|
||||||
|
@ -97,46 +100,22 @@ function setupAudioMenus() {
|
||||||
isCheckable: true,
|
isCheckable: true,
|
||||||
isChecked: thisDeviceSelected
|
isChecked: thisDeviceSelected
|
||||||
});
|
});
|
||||||
|
audioDevicesList.push(menuItem);
|
||||||
if (thisDeviceSelected) {
|
if (thisDeviceSelected) {
|
||||||
selectedOutputMenu = menuItem;
|
selectedOutputMenu = menuItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeAudioDevices() {
|
function removeAudioMenus() {
|
||||||
Menu.removeSeparator("Audio", "Input Audio Device");
|
Menu.removeSeparator("Audio", "Input Audio Device");
|
||||||
|
|
||||||
var inputDeviceSetting = Settings.getValue(INPUT_DEVICE_SETTING);
|
|
||||||
var inputDevices = AudioDevice.getInputDevices();
|
|
||||||
var selectedInputDevice = AudioDevice.getInputDevice();
|
|
||||||
if (inputDevices.indexOf(inputDeviceSetting) != -1 && selectedInputDevice != inputDeviceSetting) {
|
|
||||||
if (AudioDevice.setInputDevice(inputDeviceSetting)) {
|
|
||||||
selectedInputDevice = inputDeviceSetting;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
print("audio input devices: " + inputDevices);
|
|
||||||
for(var i = 0; i < inputDevices.length; i++) {
|
|
||||||
var thisDeviceSelected = (inputDevices[i] == selectedInputDevice);
|
|
||||||
var menuItem = "Use " + inputDevices[i] + " for Input";
|
|
||||||
Menu.removeMenuItem("Audio", menuItem);
|
|
||||||
}
|
|
||||||
|
|
||||||
Menu.removeSeparator("Audio", "Output Audio Device");
|
Menu.removeSeparator("Audio", "Output Audio Device");
|
||||||
|
|
||||||
var outputDeviceSetting = Settings.getValue(OUTPUT_DEVICE_SETTING);
|
for (var index = 0; index < audioDevicesList.length; index++) {
|
||||||
var outputDevices = AudioDevice.getOutputDevices();
|
Menu.removeMenuItem("Audio", audioDevicesList[index]);
|
||||||
var selectedOutputDevice = AudioDevice.getOutputDevice();
|
|
||||||
if (outputDevices.indexOf(outputDeviceSetting) != -1 && selectedOutputDevice != outputDeviceSetting) {
|
|
||||||
if (AudioDevice.setOutputDevice(outputDeviceSetting)) {
|
|
||||||
selectedOutputDevice = outputDeviceSetting;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
print("audio output devices: " + outputDevices);
|
|
||||||
for (var i = 0; i < outputDevices.length; i++) {
|
|
||||||
var thisDeviceSelected = (outputDevices[i] == selectedOutputDevice);
|
|
||||||
var menuItem = "Use " + outputDevices[i] + " for Output";
|
|
||||||
Menu.removeMenuItem("Audio", menuItem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
audioDevicesList = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
function onDevicechanged() {
|
function onDevicechanged() {
|
||||||
|
@ -254,7 +233,7 @@ Script.update.connect(checkHMDAudio);
|
||||||
|
|
||||||
Script.scriptEnding.connect(function () {
|
Script.scriptEnding.connect(function () {
|
||||||
restoreAudio();
|
restoreAudio();
|
||||||
removeAudioDevices();
|
removeAudioMenus();
|
||||||
Menu.menuItemEvent.disconnect(menuItemEvent);
|
Menu.menuItemEvent.disconnect(menuItemEvent);
|
||||||
Script.update.disconnect(checkHMDAudio);
|
Script.update.disconnect(checkHMDAudio);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue