UpChannelizer: pass baseband sample rate in notification message

This commit is contained in:
f4exb 2017-08-06 17:10:29 +02:00
parent d0f718d982
commit f6bc9daf8e
4 changed files with 11 additions and 4 deletions

View File

@ -201,7 +201,7 @@ void SSBMod::pull(Sample& sample)
void SSBMod::pullAudio(int nbSamples) void SSBMod::pullAudio(int nbSamples)
{ {
unsigned int nbSamplesAudio = nbSamples * m_interpolatorDistance; unsigned int nbSamplesAudio = nbSamples * ((Real) m_config.m_audioSampleRate / (Real) m_config.m_basebandSampleRate);
if (nbSamplesAudio > m_audioBuffer.size()) if (nbSamplesAudio > m_audioBuffer.size())
{ {
@ -567,12 +567,14 @@ bool SSBMod::handleMessage(const Message& cmd)
{ {
UpChannelizer::MsgChannelizerNotification& notif = (UpChannelizer::MsgChannelizerNotification&) cmd; UpChannelizer::MsgChannelizerNotification& notif = (UpChannelizer::MsgChannelizerNotification&) cmd;
m_config.m_basebandSampleRate = notif.getBasebandSampleRate();
m_config.m_outputSampleRate = notif.getSampleRate(); m_config.m_outputSampleRate = notif.getSampleRate();
m_config.m_inputFrequencyOffset = notif.getFrequencyOffset(); m_config.m_inputFrequencyOffset = notif.getFrequencyOffset();
apply(); apply();
qDebug() << "SSBMod::handleMessage: MsgChannelizerNotification:" qDebug() << "SSBMod::handleMessage: MsgChannelizerNotification:"
<< " m_basebandSampleRate: " << m_config.m_basebandSampleRate
<< " m_outputSampleRate: " << m_config.m_outputSampleRate << " m_outputSampleRate: " << m_config.m_outputSampleRate
<< " m_inputFrequencyOffset: " << m_config.m_inputFrequencyOffset; << " m_inputFrequencyOffset: " << m_config.m_inputFrequencyOffset;

View File

@ -341,6 +341,7 @@ private:
}; };
struct Config { struct Config {
int m_basebandSampleRate;
int m_outputSampleRate; int m_outputSampleRate;
qint64 m_inputFrequencyOffset; qint64 m_inputFrequencyOffset;
Real m_bandwidth; Real m_bandwidth;
@ -364,6 +365,7 @@ private:
int m_agcThresholdDelay; int m_agcThresholdDelay;
Config() : Config() :
m_basebandSampleRate(0),
m_outputSampleRate(0), m_outputSampleRate(0),
m_inputFrequencyOffset(0), m_inputFrequencyOffset(0),
m_bandwidth(3000.0f), m_bandwidth(3000.0f),

View File

@ -196,7 +196,7 @@ void UpChannelizer::applyConfiguration()
if (m_sampleSource != 0) if (m_sampleSource != 0)
{ {
MsgChannelizerNotification notif(m_currentInputSampleRate, m_currentCenterFrequency); MsgChannelizerNotification notif(m_outputSampleRate, m_currentInputSampleRate, m_currentCenterFrequency);
m_sampleSource->handleMessage(notif); m_sampleSource->handleMessage(notif);
} }
} }

View File

@ -40,16 +40,19 @@ public:
MESSAGE_CLASS_DECLARATION MESSAGE_CLASS_DECLARATION
public: public:
MsgChannelizerNotification(int samplerate, qint64 frequencyOffset) : MsgChannelizerNotification(int basebandSampleRate, int samplerate, qint64 frequencyOffset) :
Message(), Message(),
m_basebandSampleRate(basebandSampleRate),
m_sampleRate(samplerate), m_sampleRate(samplerate),
m_frequencyOffset(frequencyOffset) m_frequencyOffset(frequencyOffset)
{ } { }
int getBasebandSampleRate() const { return m_basebandSampleRate; }
int getSampleRate() const { return m_sampleRate; } int getSampleRate() const { return m_sampleRate; }
qint64 getFrequencyOffset() const { return m_frequencyOffset; } qint64 getFrequencyOffset() const { return m_frequencyOffset; }
private: private:
int m_basebandSampleRate;
int m_sampleRate; int m_sampleRate;
qint64 m_frequencyOffset; qint64 m_frequencyOffset;
}; };