1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-20 06:38:36 -04:00

CW Keyer: test with AM modulator and fixes

This commit is contained in:
f4exb
2016-12-10 08:12:16 +01:00
parent d6c9b2f707
commit 2defcc7cec
8 changed files with 201 additions and 134 deletions
+26
View File
@@ -66,6 +66,13 @@ AMMod::AMMod() :
m_toneNco.setFreq(1000.0, m_config.m_audioSampleRate);
DSPEngine::instance()->addAudioSource(&m_audioFifo);
// test CW keyer
// TODO: link to CW keyer GUI
m_cwKeyer.setSampleRate(m_config.m_audioSampleRate);
m_cwKeyer.setWPM(5);
m_cwKeyer.setText("PARIS PARIS PARIS PARIS PARIS");
m_cwKeyer.setMode(CWKeyer::CWText);
}
AMMod::~AMMod()
@@ -176,6 +183,20 @@ void AMMod::pullAF(Real& sample)
m_audioFifo.read(reinterpret_cast<quint8*>(audioSample), 1, 10);
sample = ((audioSample[0] + audioSample[1]) / 65536.0f) * m_running.m_volumeFactor;
break;
case AMModInputCWTone:
if (m_cwKeyer.getSample())
{
sample = m_toneNco.next();
}
else
{
sample = 0.0f;
m_toneNco.setPhase(0);
// if (m_cwKeyer.eom()) {
// m_cwKeyer.resetText();
// }
}
break;
case AMModInputNone:
default:
sample = 0.0f;
@@ -331,6 +352,11 @@ void AMMod::apply()
m_settingsMutex.unlock();
}
if (m_config.m_audioSampleRate != m_running.m_audioSampleRate)
{
m_cwKeyer.setSampleRate(m_config.m_audioSampleRate);
}
m_running.m_outputSampleRate = m_config.m_outputSampleRate;
m_running.m_inputFrequencyOffset = m_config.m_inputFrequencyOffset;
m_running.m_rfBandwidth = m_config.m_rfBandwidth;