1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-02-03 09:44:01 -05:00

DSD demod: rescale demod gain and volume

This commit is contained in:
f4exb 2017-10-03 23:00:18 +02:00
parent 65ec5015df
commit 6e2e8dc2b5
5 changed files with 28 additions and 28 deletions

View File

@ -57,7 +57,7 @@ DSDDemod::DSDDemod(DeviceSourceAPI *deviceAPI) :
m_config.m_inputFrequencyOffset = 0;
m_config.m_rfBandwidth = 10000.0;
m_config.m_fmDeviation = 5000.0;
m_config.m_demodGain = 100;
m_config.m_demodGain = 1.0;
m_config.m_squelchGate = 5; // 10s of ms at 48000 Hz sample rate. Corresponds to 2400 for AGC attack
m_config.m_squelch = -30.0;
m_config.m_volume = 1.0;
@ -107,8 +107,8 @@ DSDDemod::~DSDDemod()
void DSDDemod::configure(MessageQueue* messageQueue,
Real rfBandwidth,
Real fmDeviation,
int demodGain,
int volume,
Real demodGain,
Real volume,
int baudRate,
int squelchGate,
Real squelch,
@ -182,7 +182,7 @@ void DSDDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto
m_magsqCount++;
Real demod = 32768.0f * m_phaseDiscri.phaseDiscriminator(ci) * ((float) m_running.m_demodGain / 100.0f);
Real demod = 32768.0f * m_phaseDiscri.phaseDiscriminator(ci) * m_running.m_demodGain;
m_sampleCount++;
// AF processing
@ -414,8 +414,8 @@ bool DSDDemod::handleMessage(const Message& cmd)
qDebug() << "DSDDemod::handleMessage: MsgConfigureDSDDemod: m_rfBandwidth: " << m_config.m_rfBandwidth
<< " m_fmDeviation: " << m_config.m_fmDeviation
<< " m_demodGain: " << m_config.m_demodGain / 100.0
<< " m_volume: " << m_config.m_volume / 10.0
<< " m_demodGain: " << m_config.m_demodGain
<< " m_volume: " << m_config.m_volume
<< " m_baudRate: " << m_config.m_baudRate
<< " m_squelchGate" << m_config.m_squelchGate
<< " m_squelch: " << m_config.m_squelch
@ -483,7 +483,7 @@ void DSDDemod::apply(bool force)
if ((m_config.m_volume != m_running.m_volume) || force)
{
m_dsdDecoder.setAudioGain(m_config.m_volume / 10.0f);
m_dsdDecoder.setAudioGain(m_config.m_volume);
}
if ((m_config.m_baudRate != m_running.m_baudRate) || force)

View File

@ -69,10 +69,10 @@ public:
void setScopeSink(BasebandSampleSink* sampleSink) { m_scope = sampleSink; }
void configure(MessageQueue* messageQueue,
Real rfBandwidth,
Real fmDeviation,
int demodGain,
int volume,
Real rfBandwidth,
Real fmDeviation,
Real demodGain,
Real volume,
int baudRate,
int squelchGate,
Real squelch,
@ -141,8 +141,8 @@ private:
public:
Real getRFBandwidth() const { return m_rfBandwidth; }
Real getFMDeviation() const { return m_fmDeviation; }
int getDemodGain() const { return m_demodGain; }
int getVolume() const { return m_volume; }
Real getDemodGain() const { return m_demodGain; }
Real getVolume() const { return m_volume; }
int getBaudRate() const { return m_baudRate; }
int getSquelchGate() const { return m_squelchGate; }
Real getSquelch() const { return m_squelch; }
@ -159,8 +159,8 @@ private:
static MsgConfigureDSDDemod* create(Real rfBandwidth,
Real fmDeviation,
int demodGain,
int volume,
Real demodGain,
Real volume,
int baudRate,
int squelchGate,
Real squelch,
@ -200,7 +200,7 @@ private:
Real m_rfBandwidth;
Real m_fmDeviation;
Real m_demodGain;
int m_volume;
Real m_volume;
int m_baudRate;
int m_squelchGate;
Real m_squelch;
@ -216,10 +216,10 @@ private:
quint16 m_udpPort;
bool m_force;
MsgConfigureDSDDemod(int rfBandwidth,
int fmDeviation,
int demodGain,
int volume,
MsgConfigureDSDDemod(Real rfBandwidth,
Real fmDeviation,
Real demodGain,
Real volume,
int baudRate,
int squelchGate,
Real squelch,
@ -266,8 +266,8 @@ private:
qint64 m_inputFrequencyOffset;
Real m_rfBandwidth;
Real m_fmDeviation;
int m_demodGain;
int m_volume;
Real m_demodGain;
Real m_volume;
int m_baudRate;
int m_squelchGate;
Real m_squelch;
@ -288,8 +288,8 @@ private:
m_inputFrequencyOffset(0),
m_rfBandwidth(10000.0),
m_fmDeviation(5000.0),
m_demodGain(-1),
m_volume(-1),
m_demodGain(1.0),
m_volume(1.0),
m_baudRate(4800),
m_squelchGate(1),
m_squelch(0),

View File

@ -409,8 +409,8 @@ void DSDDemodGUI::applySettings(bool force)
m_dsdDemod->configure(m_dsdDemod->getInputMessageQueue(),
ui->rfBW->value() * 100.0,
ui->fmDeviation->value() * 100.0,
ui->demodGain->value(),
ui->volume->value(),
ui->demodGain->value() / 100.0,
ui->volume->value() / 10.0,
DSDDemodBaudRates::getRate(ui->baudRate->currentIndex()),
ui->squelchGate->value(), // in 10ths of ms
ui->squelch->value(),

View File

@ -33,10 +33,10 @@ void DSDDemodSettings::resetToDefaults()
m_inputSampleRate = 96000;
m_inputFrequencyOffset = 0;
m_rfBandwidth = 10000.0;
m_fmDeviation = 5000.0;
m_demodGain = 1.0;
m_volume = 1.0;
m_baudRate = 4800;
m_fmDeviation = 5000.0;
m_squelchGate = 5; // 10s of ms at 48000 Hz sample rate. Corresponds to 2400 for AGC attack
m_squelch = -30.0;
m_audioMute = false;

View File

@ -26,10 +26,10 @@ struct DSDDemodSettings
int m_inputSampleRate;
qint64 m_inputFrequencyOffset;
Real m_rfBandwidth;
Real m_fmDeviation;
Real m_demodGain;
Real m_volume;
int m_baudRate;
Real m_fmDeviation;
int m_squelchGate;
Real m_squelch;
bool m_audioMute;