From aee6fc9c8a1b126b70278223e9c5cfb7114b735f Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Fri, 1 Apr 2016 11:22:12 -0700 Subject: [PATCH] handle starting in HMD mode --- examples/selectAudioDevice.js | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/examples/selectAudioDevice.js b/examples/selectAudioDevice.js index 0b12cfcc6f..fd4cd43a59 100644 --- a/examples/selectAudioDevice.js +++ b/examples/selectAudioDevice.js @@ -148,11 +148,23 @@ Menu.menuItemEvent.connect(menuItemEvent); // Some HMDs (like Oculus CV1) have a built in audio device. If they // do, then this function will handle switching to that device automatically // when you goActive with the HMD active. -var wasHmdMounted = HMD.mounted; +var wasHmdMounted = false; // assume it's un-mounted to start var switchedAudioInputToHMD = false; var switchedAudioOutputToHMD = false; var previousSelectedInputAudioDevice = ""; var previousSelectedOutputAudioDevice = ""; + +function restoreAudio() { + if (switchedAudioInputToHMD) { + print("switching back from HMD preferred audio input to:" + previousSelectedInputAudioDevice); + menuItemEvent("Use " + previousSelectedInputAudioDevice + " for Input"); + } + if (switchedAudioOutputToHMD) { + print("switching back from HMD preferred audio output to:" + previousSelectedOutputAudioDevice); + menuItemEvent("Use " + previousSelectedOutputAudioDevice + " for Output"); + } +} + function checkHMDAudio() { // Mounted state is changing... handle switching if (HMD.mounted != wasHmdMounted) { @@ -187,14 +199,7 @@ function checkHMDAudio() { } } else { print("HMD NOW un-mounted..."); - if (switchedAudioInputToHMD) { - print("switching back from HMD preferred audio input to:" + previousSelectedInputAudioDevice); - menuItemEvent("Use " + previousSelectedInputAudioDevice + " for Input"); - } - if (switchedAudioOutputToHMD) { - print("switching back from HMD preferred audio output to:" + previousSelectedOutputAudioDevice); - menuItemEvent("Use " + previousSelectedOutputAudioDevice + " for Output"); - } + restoreAudio(); } } wasHmdMounted = HMD.mounted; @@ -203,6 +208,7 @@ function checkHMDAudio() { Script.update.connect(checkHMDAudio); Script.scriptEnding.connect(function () { + restoreAudio(); Menu.menuItemEvent.disconnect(menuItemEvent); Script.update.disconnect(checkHMDAudio); });