From 6ebccb5b64d74809491f10bf92058445071f7a72 Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 12 Jun 2019 18:50:53 +0200 Subject: [PATCH] Device user arguments (2) --- sdrbase/CMakeLists.txt | 4 +- .../{deviceuserarg.cpp => deviceuserargs.cpp} | 18 +- .../{deviceuserarg.h => deviceuserargs.h} | 10 +- sdrbase/settings/mainsettings.cpp | 4 + sdrbase/settings/mainsettings.h | 5 +- sdrgui/CMakeLists.txt | 6 +- sdrgui/gui/deviceuserargdialog.cpp | 72 ---- sdrgui/gui/deviceuserargdialog.ui | 334 ------------------ sdrgui/gui/deviceuserargsdialog.cpp | 128 +++++++ ...userargdialog.h => deviceuserargsdialog.h} | 45 ++- sdrgui/gui/deviceuserargsdialog.ui | 207 +++++++++++ sdrgui/mainwindow.cpp | 8 + sdrgui/mainwindow.h | 1 + sdrgui/mainwindow.ui | 14 +- 14 files changed, 414 insertions(+), 442 deletions(-) rename sdrbase/device/{deviceuserarg.cpp => deviceuserargs.cpp} (84%) rename sdrbase/device/{deviceuserarg.h => deviceuserargs.h} (84%) delete mode 100644 sdrgui/gui/deviceuserargdialog.cpp delete mode 100644 sdrgui/gui/deviceuserargdialog.ui create mode 100644 sdrgui/gui/deviceuserargsdialog.cpp rename sdrgui/gui/{deviceuserargdialog.h => deviceuserargsdialog.h} (58%) create mode 100644 sdrgui/gui/deviceuserargsdialog.ui diff --git a/sdrbase/CMakeLists.txt b/sdrbase/CMakeLists.txt index fe3192cf9..fc6736ef3 100644 --- a/sdrbase/CMakeLists.txt +++ b/sdrbase/CMakeLists.txt @@ -116,7 +116,7 @@ set(sdrbase_SOURCES device/deviceapi.cpp device/deviceenumerator.cpp - device/deviceuserarg.cpp + device/deviceuserargs.cpp settings/preferences.cpp settings/preset.cpp @@ -242,7 +242,7 @@ set(sdrbase_HEADERS device/deviceapi.h device/deviceenumerator.h - device/deviceuserarg.h + device/deviceuserargs.h plugin/plugininstancegui.h plugin/plugininterface.h diff --git a/sdrbase/device/deviceuserarg.cpp b/sdrbase/device/deviceuserargs.cpp similarity index 84% rename from sdrbase/device/deviceuserarg.cpp rename to sdrbase/device/deviceuserargs.cpp index 735f8cadd..3310f9466 100644 --- a/sdrbase/device/deviceuserarg.cpp +++ b/sdrbase/device/deviceuserargs.cpp @@ -18,19 +18,19 @@ #include #include "util/simpleserializer.h" -#include "deviceuserarg.h" +#include "deviceuserargs.h" -QByteArray DeviceUserArg::serialize() const +QByteArray DeviceUserArgs::serialize() const { SimpleSerializer s(1); QByteArray data; QDataStream *stream = new QDataStream(&data, QIODevice::WriteOnly); - *stream << m_argByDevice; + *stream << m_argsByDevice; s.writeBlob(1, data); return s.final(); } -bool DeviceUserArg::deserialize(const QByteArray& data) +bool DeviceUserArgs::deserialize(const QByteArray& data) { SimpleDeserializer d(data); @@ -44,7 +44,7 @@ bool DeviceUserArg::deserialize(const QByteArray& data) d.readBlob(1, &data); QDataStream readStream(&data, QIODevice::ReadOnly); - readStream >> m_argByDevice; + readStream >> m_argsByDevice; return true; } @@ -54,12 +54,12 @@ bool DeviceUserArg::deserialize(const QByteArray& data) } } -void DeviceUserArg::splitDeviceKey(const QString& key, QString& driver, int& sequence) +void DeviceUserArgs::splitDeviceKey(const QString& key, QString& id, int& sequence) { QStringList elms = key.split('-'); if (elms.size() > 0) { - driver = elms[0]; + id = elms[0]; } if (elms.size() > 1) @@ -74,10 +74,10 @@ void DeviceUserArg::splitDeviceKey(const QString& key, QString& driver, int& seq } } -void DeviceUserArg::composeDeviceKey(const QString& driver, int sequence, QString& key) +void DeviceUserArgs::composeDeviceKey(const QString& id, int sequence, QString& key) { QStringList strList; - strList.append(driver); + strList.append(id); strList.append(QString::number(sequence)); key = strList.join('-'); } diff --git a/sdrbase/device/deviceuserarg.h b/sdrbase/device/deviceuserargs.h similarity index 84% rename from sdrbase/device/deviceuserarg.h rename to sdrbase/device/deviceuserargs.h index 2ae9c2591..1f65d56cb 100644 --- a/sdrbase/device/deviceuserarg.h +++ b/sdrbase/device/deviceuserargs.h @@ -15,8 +15,8 @@ // along with this program. If not, see . // /////////////////////////////////////////////////////////////////////////////////// -#ifndef SDRBASE_DEVICE_DEVICEUSERARG_H_ -#define SDRBASE_DEVICE_DEVICEUSERARG_H_ +#ifndef SDRBASE_DEVICE_DEVICEUSERARGS_H_ +#define SDRBASE_DEVICE_DEVICEUSERARGS_H_ #include #include @@ -24,18 +24,16 @@ #include "export.h" -struct DEVICES_API DeviceUserArg +struct DEVICES_API DeviceUserArgs { public: - typedef QMap UserArgs; - QByteArray serialize() const; bool deserialize(const QByteArray& data); static void splitDeviceKey(const QString& key, QString& id, int& sequence); static void composeDeviceKey(const QString& id, int sequence, QString& key); - QMap m_argByDevice; //!< "id-index" to arg map + QMap m_argsByDevice; //!< "id-sequence" to arg map. Id is hardwareId when referencing hardware device but not limited to it }; diff --git a/sdrbase/settings/mainsettings.cpp b/sdrbase/settings/mainsettings.cpp index f00ce91be..1ebdbde0a 100644 --- a/sdrbase/settings/mainsettings.cpp +++ b/sdrbase/settings/mainsettings.cpp @@ -84,6 +84,8 @@ void MainSettings::load() s.endGroup(); } } + + m_hardwareDeviceUserArgs.deserialize(qUncompress(QByteArray::fromBase64(s.value("hwDeviceUserArgs").toByteArray()))); } void MainSettings::save() const @@ -123,6 +125,8 @@ void MainSettings::save() const s.setValue("data", qCompress(m_commands[i]->serialize()).toBase64()); s.endGroup(); } + + s.setValue("hwDeviceUserArgs", qCompress(m_hardwareDeviceUserArgs.serialize()).toBase64()); } void MainSettings::resetToDefaults() diff --git a/sdrbase/settings/mainsettings.h b/sdrbase/settings/mainsettings.h index 5e2cddc2d..f4c833906 100644 --- a/sdrbase/settings/mainsettings.h +++ b/sdrbase/settings/mainsettings.h @@ -1,8 +1,9 @@ #ifndef INCLUDE_SETTINGS_H #define INCLUDE_SETTINGS_H -#include