From 6be71a71407720652693d668b85b6171f6631e85 Mon Sep 17 00:00:00 2001 From: ksuprynowicz Date: Fri, 1 Mar 2024 02:12:28 +0100 Subject: [PATCH] Code cleanup for avatar volmue fix --- .../src/audio/AudioMixerClientData.cpp | 24 +++++++++---------- libraries/audio/src/AudioHRTF.h | 7 +----- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/assignment-client/src/audio/AudioMixerClientData.cpp b/assignment-client/src/audio/AudioMixerClientData.cpp index 4f7b236026..a47420a873 100644 --- a/assignment-client/src/audio/AudioMixerClientData.cpp +++ b/assignment-client/src/audio/AudioMixerClientData.cpp @@ -222,25 +222,23 @@ void AudioMixerClientData::parseInjectorGainSet(ReceivedMessage& message, const qCDebug(audio) << "Setting MASTER injector gain for" << uuid << "to" << gain; } -void AudioMixerClientData::setGainForAvatar(QUuid nodeID, float gain) { - auto itActive = std::find_if(_streams.active.cbegin(), _streams.active.cend(), [nodeID](const MixableStream& mixableStream){ +bool setGainInStreams(const QUuid &nodeID, float gain, std::vector &streamVector) { + auto itActive = std::find_if(streamVector.cbegin(), streamVector.cend(), + [nodeID](const AudioMixerClientData::MixableStream& mixableStream){ return mixableStream.nodeStreamID.nodeID == nodeID && mixableStream.nodeStreamID.streamID.isNull(); }); - if (itActive != _streams.active.cend()) { + if (itActive != streamVector.cend()) { itActive->hrtf->setGainAdjustment(gain); - return; + return true; + } else { + return false; } +} - // If someone is not speaking at the moment, then stream is not in active streams, and volume adjustment will fail, - // so we need to search in inactive streams too - auto itInactive = std::find_if(_streams.inactive.cbegin(), _streams.inactive.cend(), [nodeID](const MixableStream& mixableStream){ - return mixableStream.nodeStreamID.nodeID == nodeID && mixableStream.nodeStreamID.streamID.isNull(); - }); - - if (itInactive != _streams.active.cend()) { - itInactive->hrtf->setGainAdjustment(gain); - return; +void AudioMixerClientData::setGainForAvatar(QUuid nodeID, float gain) { + if (!setGainInStreams(nodeID, gain, _streams.active)) { + setGainInStreams(nodeID, gain, _streams.inactive); } } diff --git a/libraries/audio/src/AudioHRTF.h b/libraries/audio/src/AudioHRTF.h index 07af5390e4..6bbd9bc08a 100644 --- a/libraries/audio/src/AudioHRTF.h +++ b/libraries/audio/src/AudioHRTF.h @@ -16,8 +16,6 @@ #include #include -#include - #include "AudioHelpers.h" static const int HRTF_AZIMUTHS = 72; // 360 / 5-degree steps @@ -82,10 +80,7 @@ public: // // HRTF local gain adjustment in amplitude (1.0 == unity) // - void setGainAdjustment(float gain) { - _gainAdjust = HRTF_GAIN * gain; - qDebug() << "AudioHRTF::setGainAdjustment: " << _gainAdjust; - }; + void setGainAdjustment(float gain) { _gainAdjust = HRTF_GAIN * gain; }; float getGainAdjustment() { return _gainAdjust; } // clear internal state, but retain settings