diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index 02c66b0690..63f19ca8ff 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -81,6 +81,8 @@ Audio::Audio() : _noiseGateFramesToClose(0), _totalInputAudioSamples(0), _muted(false), + _shouldEchoLocally(false), + _shouldEchoToServer(false), _reverb(false), _reverbOptions(&_scriptReverbOptions), _gverbLocal(NULL), @@ -945,19 +947,16 @@ void Audio::toggleAudioNoiseReduction() { _noiseGateEnabled = !_noiseGateEnabled; } -void Audio::toggleStereoInput() { - int oldChannelCount = _desiredInputFormat.channelCount(); - QAction* stereoAudioOption = Menu::getInstance()->getActionForOption(MenuOption::StereoAudio); - - if (stereoAudioOption->isChecked()) { - _desiredInputFormat.setChannelCount(2); - _isStereoInput = true; - } else { - _desiredInputFormat.setChannelCount(1); - _isStereoInput = false; - } - - if (oldChannelCount != _desiredInputFormat.channelCount()) { +void Audio::setIsStereoInput(bool isStereoInput) { + if (isStereoInput != _isStereoInput) { + _isStereoInput = isStereoInput; + + if (_isStereoInput) { + _desiredInputFormat.setChannelCount(2); + } else { + _desiredInputFormat.setChannelCount(1); + } + // change in channel count for desired input format, restart the input device switchInputToAudioDevice(_inputAudioDeviceName); } diff --git a/interface/src/Audio.h b/interface/src/Audio.h index 3dd24b0fc5..231fac5047 100644 --- a/interface/src/Audio.h +++ b/interface/src/Audio.h @@ -94,6 +94,8 @@ public: bool isMuted() { return _muted; } + void setIsStereoInput(bool isStereoInput); + const AudioIOStats& getStats() const { return _stats; } float getInputRingBufferMsecsAvailable() const; @@ -122,7 +124,7 @@ public slots: void toggleLocalEcho() { _shouldEchoLocally = !_shouldEchoLocally; } void toggleServerEcho() { _shouldEchoToServer = !_shouldEchoToServer; } - void toggleStereoInput(); + void toggleStereoInput() { setIsStereoInput(!_isStereoInput); } void processReceivedSamples(const QByteArray& inputBuffer, QByteArray& outputBuffer); void sendMuteEnvironmentPacket(); diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 0268a7ea16..1aad9d4f87 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -536,9 +536,9 @@ Menu::Menu() : SLOT(toggleAudioNoiseReduction())); addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::EchoServerAudio, 0, false, - audioIO, SLOT(toggleLocalEcho())); - addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::EchoLocalAudio, 0, false, audioIO, SLOT(toggleServerEcho())); + addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::EchoLocalAudio, 0, false, + audioIO, SLOT(toggleLocalEcho())); addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::StereoAudio, 0, false, audioIO, SLOT(toggleStereoInput())); addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::MuteAudio,