mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-04 23:14:47 -04:00
Sink plugins: put a serializer and deserializer in the core plugin for server
This commit is contained in:
@@ -169,6 +169,33 @@ void HackRFOutput::stop()
|
||||
m_running = false;
|
||||
}
|
||||
|
||||
QByteArray HackRFOutput::serialize() const
|
||||
{
|
||||
return m_settings.serialize();
|
||||
}
|
||||
|
||||
bool HackRFOutput::deserialize(const QByteArray& data)
|
||||
{
|
||||
bool success = true;
|
||||
|
||||
if (!m_settings.deserialize(data))
|
||||
{
|
||||
m_settings.resetToDefaults();
|
||||
success = false;
|
||||
}
|
||||
|
||||
MsgConfigureHackRF* message = MsgConfigureHackRF::create(m_settings, true);
|
||||
m_inputMessageQueue.push(message);
|
||||
|
||||
if (m_guiMessageQueue)
|
||||
{
|
||||
MsgConfigureHackRF* messageToGUI = MsgConfigureHackRF::create(m_settings, true);
|
||||
m_guiMessageQueue->push(messageToGUI);
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
const QString& HackRFOutput::getDeviceDescription() const
|
||||
{
|
||||
return m_deviceDescription;
|
||||
@@ -185,6 +212,21 @@ quint64 HackRFOutput::getCenterFrequency() const
|
||||
return m_settings.m_centerFrequency;
|
||||
}
|
||||
|
||||
void HackRFOutput::setCenterFrequency(qint64 centerFrequency)
|
||||
{
|
||||
HackRFOutputSettings settings = m_settings;
|
||||
settings.m_centerFrequency = centerFrequency;
|
||||
|
||||
MsgConfigureHackRF* message = MsgConfigureHackRF::create(settings, false);
|
||||
m_inputMessageQueue.push(message);
|
||||
|
||||
if (m_guiMessageQueue)
|
||||
{
|
||||
MsgConfigureHackRF* messageToGUI = MsgConfigureHackRF::create(settings, false);
|
||||
m_guiMessageQueue->push(messageToGUI);
|
||||
}
|
||||
}
|
||||
|
||||
bool HackRFOutput::handleMessage(const Message& message)
|
||||
{
|
||||
if (MsgConfigureHackRF::match(message))
|
||||
|
||||
@@ -98,10 +98,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);
|
||||
|
||||
|
||||
@@ -131,7 +131,16 @@ void HackRFOutputGui::blockApplySettings(bool block)
|
||||
|
||||
bool HackRFOutputGui::handleMessage(const Message& message)
|
||||
{
|
||||
if (HackRFOutput::MsgReportHackRF::match(message))
|
||||
if (HackRFOutput::MsgConfigureHackRF::match(message))
|
||||
{
|
||||
const HackRFOutput::MsgConfigureHackRF& cfg = (HackRFOutput::MsgConfigureHackRF&) message;
|
||||
m_settings = cfg.getSettings();
|
||||
blockApplySettings(true);
|
||||
displaySettings();
|
||||
blockApplySettings(false);
|
||||
return true;
|
||||
}
|
||||
else if (HackRFOutput::MsgReportHackRF::match(message))
|
||||
{
|
||||
displaySettings();
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user