From 089267a937e2adadf153bfedf22a3804f1742f32 Mon Sep 17 00:00:00 2001 From: Craig Hansen-Sturm Date: Sun, 14 Sep 2014 12:26:25 -0700 Subject: [PATCH] completely remove new audio objects from playback rendering path when they are unused --- interface/src/Audio.cpp | 42 ++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index 80500d392d..71b64d7c6e 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -506,30 +506,34 @@ void Audio::handleAudioInput() { QByteArray inputByteArray = _inputDevice->readAll(); - int16_t* inputFrameData = (int16_t*)inputByteArray.data(); - const int inputFrameCount = inputByteArray.size() / sizeof(int16_t); + if (!_muted && (_audioSourceInjectEnabled || _peqEnabled)) { + + int16_t* inputFrameData = (int16_t*)inputByteArray.data(); + const int inputFrameCount = inputByteArray.size() / sizeof(int16_t); - _inputFrameBuffer.copyFrames(1, inputFrameCount, inputFrameData, false /*copy in*/); + _inputFrameBuffer.copyFrames(1, inputFrameCount, inputFrameData, false /*copy in*/); - // _inputGain.render(_inputFrameBuffer); // input/mic gain+mute - - // Add audio source injection if enabled - if (_audioSourceInjectEnabled && !_muted) { - - if (_toneSourceEnabled) { // sine generator - _toneSource.render(_inputFrameBuffer); +#if ENABLE_INPUT_GAIN + _inputGain.render(_inputFrameBuffer); // input/mic gain+mute +#endif + // Add audio source injection if enabled + if (_audioSourceInjectEnabled) { + + if (_toneSourceEnabled) { // sine generator + _toneSource.render(_inputFrameBuffer); + } + else if(_noiseSourceEnabled) { // pink noise generator + _noiseSource.render(_inputFrameBuffer); + } + _sourceGain.render(_inputFrameBuffer); // post gain } - else if(_noiseSourceEnabled) { // pink noise generator - _noiseSource.render(_inputFrameBuffer); + if (_peqEnabled) { + _peq.render(_inputFrameBuffer); // 3-band parametric eq } - _sourceGain.render(_inputFrameBuffer); // post gain - } - if (_peqEnabled && !_muted) { - _peq.render(_inputFrameBuffer); // 3-band parametric eq - } - _inputFrameBuffer.copyFrames(1, inputFrameCount, inputFrameData, true /*copy out*/); - + _inputFrameBuffer.copyFrames(1, inputFrameCount, inputFrameData, true /*copy out*/); + } + if (Menu::getInstance()->isOptionChecked(MenuOption::EchoLocalAudio) && !_muted && _audioOutput) { // if this person wants local loopback add that to the locally injected audio