mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-01 13:47:01 -04:00
Deep redesign: Init sequence review phase #5: fixed source message forwarding for other sample sources
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
#include "rtlsdrinput.h"
|
||||
#include "rtlsdrthread.h"
|
||||
#include "rtlsdrgui.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "util/simpleserializer.h"
|
||||
|
||||
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgConfigureRTLSDR, Message)
|
||||
@@ -259,6 +260,7 @@ bool RTLSDRInput::handleMessage(const Message& message)
|
||||
bool RTLSDRInput::applySettings(const Settings& settings, bool force)
|
||||
{
|
||||
QMutexLocker mutexLocker(&m_mutex);
|
||||
bool forwardChange = false;
|
||||
|
||||
if ((m_settings.m_gain != settings.m_gain) || force)
|
||||
{
|
||||
@@ -275,6 +277,8 @@ bool RTLSDRInput::applySettings(const Settings& settings, bool force)
|
||||
|
||||
if ((m_settings.m_devSampleRate != settings.m_devSampleRate) || force)
|
||||
{
|
||||
forwardChange = true;
|
||||
|
||||
if(m_dev != 0)
|
||||
{
|
||||
if( rtlsdr_set_sample_rate(m_dev, settings.m_devSampleRate) < 0)
|
||||
@@ -306,6 +310,8 @@ bool RTLSDRInput::applySettings(const Settings& settings, bool force)
|
||||
|
||||
if ((m_settings.m_log2Decim != settings.m_log2Decim) || force)
|
||||
{
|
||||
forwardChange = true;
|
||||
|
||||
if(m_dev != 0)
|
||||
{
|
||||
m_settings.m_log2Decim = settings.m_log2Decim;
|
||||
@@ -313,6 +319,11 @@ bool RTLSDRInput::applySettings(const Settings& settings, bool force)
|
||||
}
|
||||
}
|
||||
|
||||
if (m_settings.m_centerFrequency != settings.m_centerFrequency)
|
||||
{
|
||||
forwardChange = true;
|
||||
}
|
||||
|
||||
m_settings.m_centerFrequency = settings.m_centerFrequency;
|
||||
|
||||
if(m_dev != 0)
|
||||
@@ -333,6 +344,13 @@ bool RTLSDRInput::applySettings(const Settings& settings, bool force)
|
||||
qDebug("rtlsdr_set_center_freq(%lld) failed", m_settings.m_centerFrequency);
|
||||
}
|
||||
}
|
||||
|
||||
if (forwardChange)
|
||||
{
|
||||
int sampleRate = m_settings.m_devSampleRate/(1<<m_settings.m_log2Decim);
|
||||
DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency);
|
||||
getOutputMessageQueue()->push(notif);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user