Add member variable for base sample rate and inline sample rate getter functions (#7552)

Co-authored-by: saker <sakertooth@gmail.com>
This commit is contained in:
Rossmaxx
2024-10-31 05:25:11 +05:30
committed by GitHub
parent b5de1d50e1
commit 9912fd88e3
2 changed files with 17 additions and 31 deletions

View File

@@ -33,6 +33,7 @@
#include <memory>
#include <vector>
#include "AudioDevice.h"
#include "lmms_basics.h"
#include "SampleFrame.h"
#include "LocklessList.h"
@@ -235,9 +236,20 @@ public:
}
sample_rate_t baseSampleRate() const;
sample_rate_t outputSampleRate() const;
sample_rate_t inputSampleRate() const;
sample_rate_t baseSampleRate() const { return m_baseSampleRate; }
sample_rate_t outputSampleRate() const
{
return m_audioDev != nullptr ? m_audioDev->sampleRate() : m_baseSampleRate;
}
sample_rate_t inputSampleRate() const
{
return m_audioDev != nullptr ? m_audioDev->sampleRate() : m_baseSampleRate;
}
inline float masterGain() const
{
@@ -361,6 +373,7 @@ private:
SampleFrame* m_inputBuffer[2];
f_cnt_t m_inputBufferFrames[2];
f_cnt_t m_inputBufferSize[2];
sample_rate_t m_baseSampleRate;
int m_inputBufferRead;
int m_inputBufferWrite;

View File

@@ -74,6 +74,7 @@ static thread_local bool s_renderingThread = false;
AudioEngine::AudioEngine( bool renderOnly ) :
m_renderOnly( renderOnly ),
m_framesPerPeriod( DEFAULT_BUFFER_SIZE ),
m_baseSampleRate(std::max(ConfigManager::inst()->value("audioengine", "samplerate").toInt(), 44100)),
m_inputBufferRead( 0 ),
m_inputBufferWrite( 1 ),
m_outputBufferRead(nullptr),
@@ -241,34 +242,6 @@ void AudioEngine::stopProcessing()
sample_rate_t AudioEngine::baseSampleRate() const
{
sample_rate_t sr = ConfigManager::inst()->value( "audioengine", "samplerate" ).toInt();
if( sr < 44100 )
{
sr = 44100;
}
return sr;
}
sample_rate_t AudioEngine::outputSampleRate() const
{
return m_audioDev != nullptr ? m_audioDev->sampleRate() :
baseSampleRate();
}
sample_rate_t AudioEngine::inputSampleRate() const
{
return m_audioDev != nullptr ? m_audioDev->sampleRate() :
baseSampleRate();
}
bool AudioEngine::criticalXRuns() const
{
return cpuLoad() >= 99 && Engine::getSong()->isExporting() == false;