diff options
author | Jan Holthuis <jan.holthuis@ruhr-uni-bochum.de> | 2020-09-24 22:19:22 +0200 |
---|---|---|
committer | Jan Holthuis <jan.holthuis@ruhr-uni-bochum.de> | 2020-09-24 23:02:26 +0200 |
commit | bbeebd219cd3c903cd62475d6370e82cc1f01b96 (patch) | |
tree | 338db34c8f936c93bc3e3f57cecd8d5362227a22 /src/engine/enginemaster.h | |
parent | 8170414a9cad5c72a58e764a5960469e488f86f5 (diff) |
engine/enginemaster: Use CSAMPLE_GAIN for gain values
Diffstat (limited to 'src/engine/enginemaster.h')
-rw-r--r-- | src/engine/enginemaster.h | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/src/engine/enginemaster.h b/src/engine/enginemaster.h index 5b5a1f2405..9bcdffc0ea 100644 --- a/src/engine/enginemaster.h +++ b/src/engine/enginemaster.h @@ -90,10 +90,10 @@ class EngineMaster : public QObject, public AudioSource { // only call it before the engine has started mixing. void addChannel(EngineChannel* pChannel); EngineChannel* getChannel(const QString& group); - static inline double gainForOrientation(EngineChannel::ChannelOrientation orientation, - double leftGain, - double centerGain, - double rightGain) { + static inline CSAMPLE_GAIN gainForOrientation(EngineChannel::ChannelOrientation orientation, + CSAMPLE_GAIN leftGain, + CSAMPLE_GAIN centerGain, + CSAMPLE_GAIN rightGain) { switch (orientation) { case EngineChannel::LEFT: return leftGain; @@ -147,24 +147,25 @@ class EngineMaster : public QObject, public AudioSource { class GainCalculator { public: - virtual double getGain(ChannelInfo* pChannelInfo) const = 0; + virtual CSAMPLE_GAIN getGain(ChannelInfo* pChannelInfo) const = 0; }; class PflGainCalculator : public GainCalculator { public: - inline double getGain(ChannelInfo* pChannelInfo) const { + inline CSAMPLE_GAIN getGain(ChannelInfo* pChannelInfo) const override { Q_UNUSED(pChannelInfo); return m_dGain; } - inline void setGain(double dGain) { + inline void setGain(CSAMPLE_GAIN dGain) { m_dGain = dGain; } + private: - double m_dGain; + CSAMPLE_GAIN m_dGain; }; class TalkoverGainCalculator : public GainCalculator { public: - inline double getGain(ChannelInfo* pChannelInfo) const { - return pChannelInfo->m_pVolumeControl->get(); + inline CSAMPLE_GAIN getGain(ChannelInfo* pChannelInfo) const override { + return static_cast<CSAMPLE_GAIN>(pChannelInfo->m_pVolumeControl->get()); } }; class OrientationVolumeGainCalculator : public GainCalculator { @@ -176,16 +177,21 @@ class EngineMaster : public QObject, public AudioSource { m_dTalkoverDuckingGain(1.0) { } - inline double getGain(ChannelInfo* pChannelInfo) const { - const double channelVolume = pChannelInfo->m_pVolumeControl->get(); - const double orientationGain = EngineMaster::gainForOrientation( + inline CSAMPLE_GAIN getGain(ChannelInfo* pChannelInfo) const { + const CSAMPLE_GAIN channelVolume = static_cast<CSAMPLE_GAIN>( + pChannelInfo->m_pVolumeControl->get()); + const CSAMPLE_GAIN orientationGain = EngineMaster::gainForOrientation( pChannelInfo->m_pChannel->getOrientation(), - m_dLeftGain, m_dCenterGain, m_dRightGain); + m_dLeftGain, + m_dCenterGain, + m_dRightGain); return channelVolume * orientationGain * m_dTalkoverDuckingGain; } - inline void setGains(double leftGain, double centerGain, double rightGain, - double talkoverDuckingGain) { + inline void setGains(CSAMPLE_GAIN leftGain, + CSAMPLE_GAIN centerGain, + CSAMPLE_GAIN rightGain, + CSAMPLE_GAIN talkoverDuckingGain) { m_dLeftGain = leftGain; m_dCenterGain = centerGain; m_dRightGain = rightGain; @@ -193,10 +199,10 @@ class EngineMaster : public QObject, public AudioSource { } private: - double m_dLeftGain; - double m_dCenterGain; - double m_dRightGain; - double m_dTalkoverDuckingGain; + CSAMPLE_GAIN m_dLeftGain; + CSAMPLE_GAIN m_dCenterGain; + CSAMPLE_GAIN m_dRightGain; + CSAMPLE_GAIN m_dTalkoverDuckingGain; }; enum class MicMonitorMode { @@ -272,7 +278,7 @@ class EngineMaster : public QObject, public AudioSource { ChannelHandleFactoryPointer m_pChannelHandleFactory; void applyMasterEffects(); - void processHeadphones(const double masterMixGainInHeadphones); + void processHeadphones(const CSAMPLE_GAIN masterMixGainInHeadphones); bool sidechainMixRequired() const; EngineEffectsManager* m_pEngineEffectsManager; |