1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-02 14:04:46 -04:00

Source plugins: put a serializer and deserializer in the core plugin for server. NFM demod: fixed deserializer

This commit is contained in:
f4exb
2017-12-28 03:21:48 +01:00
parent 1ee6abc3d3
commit 8399baeb4e
36 changed files with 682 additions and 69 deletions
@@ -176,7 +176,16 @@ void SDRdaemonSourceGui::setCenterFrequency(qint64 centerFrequency)
bool SDRdaemonSourceGui::handleMessage(const Message& message)
{
if (SDRdaemonSourceInput::MsgReportSDRdaemonAcquisition::match(message))
if (SDRdaemonSourceInput::MsgConfigureSDRdaemonSource::match(message))
{
const SDRdaemonSourceInput::MsgConfigureSDRdaemonSource& cfg = (SDRdaemonSourceInput::MsgConfigureSDRdaemonSource&) message;
m_settings = cfg.getSettings();
blockApplySettings(true);
displaySettings();
blockApplySettings(false);
return true;
}
else if (SDRdaemonSourceInput::MsgReportSDRdaemonAcquisition::match(message))
{
m_acquisition = ((SDRdaemonSourceInput::MsgReportSDRdaemonAcquisition&)message).getAcquisition();
updateWithAcquisition();
@@ -102,6 +102,33 @@ void SDRdaemonSourceInput::stop()
m_SDRdaemonUDPHandler->stop();
}
QByteArray SDRdaemonSourceInput::serialize() const
{
return m_settings.serialize();
}
bool SDRdaemonSourceInput::deserialize(const QByteArray& data)
{
bool success = true;
if (!m_settings.deserialize(data))
{
m_settings.resetToDefaults();
success = false;
}
MsgConfigureSDRdaemonSource* message = MsgConfigureSDRdaemonSource::create(m_settings, true);
m_inputMessageQueue.push(message);
if (m_guiMessageQueue)
{
MsgConfigureSDRdaemonSource* messageToGUI = MsgConfigureSDRdaemonSource::create(m_settings, true);
m_guiMessageQueue->push(messageToGUI);
}
return success;
}
void SDRdaemonSourceInput::setMessageQueueToGUI(MessageQueue *queue)
{
m_guiMessageQueue = queue;
@@ -131,6 +158,15 @@ quint64 SDRdaemonSourceInput::getCenterFrequency() const
}
}
void SDRdaemonSourceInput::setCenterFrequency(qint64 centerFrequency)
{
SDRdaemonSourceSettings settings = m_settings;
settings.m_centerFrequency = centerFrequency;
MsgConfigureSDRdaemonSource* message = MsgConfigureSDRdaemonSource::create(m_settings, false);
m_inputMessageQueue.push(message);
}
std::time_t SDRdaemonSourceInput::getStartingTimeStamp() const
{
return m_startingTimeStamp;
@@ -17,13 +17,14 @@
#ifndef INCLUDE_SDRDAEMONSOURCEINPUT_H
#define INCLUDE_SDRDAEMONSOURCEINPUT_H
#include <dsp/devicesamplesource.h>
#include <QString>
#include <QByteArray>
#include <QTimer>
#include <ctime>
#include <iostream>
#include <stdint.h>
#include <dsp/devicesamplesource.h>
#include "sdrdaemonsourcesettings.h"
class DeviceSourceAPI;
@@ -265,10 +266,14 @@ public:
virtual bool start();
virtual void stop();
virtual QByteArray serialize() const;
virtual bool deserialize(const QByteArray& data);
virtual void setMessageQueueToGUI(MessageQueue *queue);
virtual const QString& getDeviceDescription() const;
virtual int getSampleRate() const;
virtual quint64 getCenterFrequency() const;
virtual void setCenterFrequency(qint64 centerFrequency);
std::time_t getStartingTimeStamp() const;
bool isStreaming() const;