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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user