mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-04 15:04:38 -04:00
Source plugins: put a serializer and deserializer in the core plugin for server. NFM demod: fixed deserializer
This commit is contained in:
@@ -137,7 +137,16 @@ bool SDRPlayGui::deserialize(const QByteArray& data)
|
||||
|
||||
bool SDRPlayGui::handleMessage(const Message& message)
|
||||
{
|
||||
if (SDRPlayInput::MsgReportSDRPlayGains::match(message))
|
||||
if (SDRPlayInput::MsgConfigureSDRPlay::match(message))
|
||||
{
|
||||
const SDRPlayInput::MsgConfigureSDRPlay& cfg = (SDRPlayInput::MsgConfigureSDRPlay&) message;
|
||||
m_settings = cfg.getSettings();
|
||||
blockApplySettings(true);
|
||||
displaySettings();
|
||||
blockApplySettings(false);
|
||||
return true;
|
||||
}
|
||||
else if (SDRPlayInput::MsgReportSDRPlayGains::match(message))
|
||||
{
|
||||
qDebug() << "SDRPlayGui::handleMessage: MsgReportSDRPlayGains";
|
||||
|
||||
|
||||
@@ -217,6 +217,33 @@ void SDRPlayInput::stop()
|
||||
m_running = false;
|
||||
}
|
||||
|
||||
QByteArray SDRPlayInput::serialize() const
|
||||
{
|
||||
return m_settings.serialize();
|
||||
}
|
||||
|
||||
bool SDRPlayInput::deserialize(const QByteArray& data)
|
||||
{
|
||||
bool success = true;
|
||||
|
||||
if (!m_settings.deserialize(data))
|
||||
{
|
||||
m_settings.resetToDefaults();
|
||||
success = false;
|
||||
}
|
||||
|
||||
MsgConfigureSDRPlay* message = MsgConfigureSDRPlay::create(m_settings, true);
|
||||
m_inputMessageQueue.push(message);
|
||||
|
||||
if (m_guiMessageQueue)
|
||||
{
|
||||
MsgConfigureSDRPlay* messageToGUI = MsgConfigureSDRPlay::create(m_settings, true);
|
||||
m_guiMessageQueue->push(messageToGUI);
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
const QString& SDRPlayInput::getDeviceDescription() const
|
||||
{
|
||||
return m_deviceDescription;
|
||||
@@ -233,6 +260,21 @@ quint64 SDRPlayInput::getCenterFrequency() const
|
||||
return m_settings.m_centerFrequency;
|
||||
}
|
||||
|
||||
void SDRPlayInput::setCenterFrequency(qint64 centerFrequency)
|
||||
{
|
||||
SDRPlaySettings settings = m_settings;
|
||||
settings.m_centerFrequency = centerFrequency;
|
||||
|
||||
MsgConfigureSDRPlay* message = MsgConfigureSDRPlay::create(settings, false);
|
||||
m_inputMessageQueue.push(message);
|
||||
|
||||
if (m_guiMessageQueue)
|
||||
{
|
||||
MsgConfigureSDRPlay* messageToGUI = MsgConfigureSDRPlay::create(settings, false);
|
||||
m_guiMessageQueue->push(messageToGUI);
|
||||
}
|
||||
}
|
||||
|
||||
bool SDRPlayInput::handleMessage(const Message& message)
|
||||
{
|
||||
if (MsgConfigureSDRPlay::match(message))
|
||||
@@ -517,7 +559,7 @@ bool SDRPlayInput::applySettings(const SDRPlaySettings& settings, bool forwardCh
|
||||
|
||||
if(m_dev != 0)
|
||||
{
|
||||
if (setCenterFrequency(deviceCenterFrequency))
|
||||
if (setDeviceCenterFrequency(deviceCenterFrequency))
|
||||
{
|
||||
qDebug() << "SDRPlayInput::applySettings: center freq: " << m_settings.m_centerFrequency << " Hz"
|
||||
<< " device center freq: " << deviceCenterFrequency << " Hz"
|
||||
@@ -588,7 +630,7 @@ bool SDRPlayInput::applySettings(const SDRPlaySettings& settings, bool forwardCh
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SDRPlayInput::setCenterFrequency(quint64 freq_hz)
|
||||
bool SDRPlayInput::setDeviceCenterFrequency(quint64 freq_hz)
|
||||
{
|
||||
qint64 df = ((qint64)freq_hz * m_settings.m_LOppmTenths) / 10000000LL;
|
||||
freq_hz += df;
|
||||
@@ -597,12 +639,12 @@ bool SDRPlayInput::setCenterFrequency(quint64 freq_hz)
|
||||
|
||||
if (r != 0)
|
||||
{
|
||||
qWarning("SDRPlayInput::setCenterFrequency: could not frequency to %llu Hz", freq_hz);
|
||||
qWarning("SDRPlayInput::setDeviceCenterFrequency: could not frequency to %llu Hz", freq_hz);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
qWarning("SDRPlayInput::setCenterFrequency: frequency set to %llu Hz", freq_hz);
|
||||
qWarning("SDRPlayInput::setDeviceCenterFrequency: frequency set to %llu Hz", freq_hz);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,13 +17,14 @@
|
||||
#ifndef PLUGINS_SAMPLESOURCE_SDRPLAY_SDRPLAYINPUT_H_
|
||||
#define PLUGINS_SAMPLESOURCE_SDRPLAY_SDRPLAYINPUT_H_
|
||||
|
||||
#include <dsp/devicesamplesource.h>
|
||||
|
||||
#include "sdrplaysettings.h"
|
||||
#include <mirisdr.h>
|
||||
#include <QString>
|
||||
#include <QByteArray>
|
||||
#include <stdint.h>
|
||||
|
||||
#include <mirisdr.h>
|
||||
#include <dsp/devicesamplesource.h>
|
||||
#include "sdrplaysettings.h"
|
||||
|
||||
class DeviceSourceAPI;
|
||||
class SDRPlayThread;
|
||||
class FileRecord;
|
||||
@@ -136,10 +137,14 @@ public:
|
||||
virtual bool start();
|
||||
virtual void stop();
|
||||
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual void setMessageQueueToGUI(MessageQueue *queue) { m_guiMessageQueue = queue; }
|
||||
virtual const QString& getDeviceDescription() const;
|
||||
virtual int getSampleRate() const;
|
||||
virtual quint64 getCenterFrequency() const;
|
||||
virtual void setCenterFrequency(qint64 centerFrequency);
|
||||
|
||||
virtual bool handleMessage(const Message& message);
|
||||
|
||||
@@ -158,7 +163,7 @@ private:
|
||||
bool openDevice();
|
||||
void closeDevice();
|
||||
bool applySettings(const SDRPlaySettings& settings, bool forwardChange, bool force);
|
||||
bool setCenterFrequency(quint64 freq);
|
||||
bool setDeviceCenterFrequency(quint64 freq);
|
||||
|
||||
DeviceSourceAPI *m_deviceAPI;
|
||||
QMutex m_mutex;
|
||||
|
||||
Reference in New Issue
Block a user