1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-16 20:58:45 -04:00

Add AvailableChannelOrFeatureHandler for handling lists of channels, features and message pipes to them.

This commit is contained in:
srcejon
2024-02-16 16:31:12 +00:00
parent 607d7db702
commit 483e338614
47 changed files with 1040 additions and 1441 deletions
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2020-2023 Jon Beniston, M7RCE <jon@beniston.com> //
// Copyright (C) 2020-2024 Jon Beniston, M7RCE <jon@beniston.com> //
// Copyright (C) 2020-2022 Edouard Griffiths, F4EXB <f4exb06@gmail.com> //
// Copyright (C) 2020 Kacper Michajłow <kasper93@gmail.com> //
// //
@@ -27,6 +27,7 @@
#include "feature/feature.h"
#include "util/message.h"
#include "availablechannelorfeaturehandler.h"
#include "maincore.h"
#include "gs232controllersettings.h"
@@ -111,17 +112,23 @@ public:
MESSAGE_CLASS_DECLARATION
public:
QList<MainCore::AvailableChannelOrFeature>& getItems() { return m_availableChannelOrFeatures; }
AvailableChannelOrFeatureList& getItems() { return m_availableChannelOrFeatures; }
const QStringList& getRenameFrom() const { return m_renameFrom; }
const QStringList& getRenameTo() const { return m_renameTo; }
static MsgReportAvailableChannelOrFeatures* create() {
return new MsgReportAvailableChannelOrFeatures();
static MsgReportAvailableChannelOrFeatures* create(const QStringList& renameFrom, const QStringList& renameTo) {
return new MsgReportAvailableChannelOrFeatures(renameFrom, renameTo);
}
private:
QList<MainCore::AvailableChannelOrFeature> m_availableChannelOrFeatures;
AvailableChannelOrFeatureList m_availableChannelOrFeatures;
QStringList m_renameFrom;
QStringList m_renameTo;
MsgReportAvailableChannelOrFeatures() :
Message()
MsgReportAvailableChannelOrFeatures(const QStringList& renameFrom, const QStringList& renameTo) :
Message(),
m_renameFrom(renameFrom),
m_renameTo(renameTo)
{}
};
@@ -213,8 +220,8 @@ private:
QThread *m_thread;
GS232ControllerWorker *m_worker;
GS232ControllerSettings m_settings;
//QHash<QObject*, GS232ControllerSettings::AvailableChannelOrFeature> m_availableChannelOrFeatures;
QList<MainCore::AvailableChannelOrFeature> m_availableChannelOrFeatures;
AvailableChannelOrFeatureList m_availableChannelOrFeatures;
AvailableChannelOrFeatureHandler m_availableChannelOrFeatureHandler;
QObject *m_selectedPipe;
QTimer m_timer;
@@ -231,17 +238,11 @@ private:
void applySettings(const GS232ControllerSettings& settings, const QList<QString>& settingsKeys, bool force = false);
void webapiReverseSendSettings(const QList<QString>& featureSettingsKeys, const GS232ControllerSettings& settings, bool force);
void webapiFormatFeatureReport(SWGSDRangel::SWGFeatureReport& response);
void scanAvailableChannelsAndFeatures();
void notifyUpdate();
void registerPipe(QObject *object);
void notifyUpdate(const QStringList& renameFrom, const QStringList& renameTo);
private slots:
void networkManagerFinished(QNetworkReply *reply);
void handleFeatureAdded(int featureSetIndex, Feature *feature);
void handleChannelAdded(int deviceSetIndex, ChannelAPI *channel);
void handleFeatureRemoved(int featureSetIndex, Feature *feature);
void handleChannelRemoved(int deviceSetIndex, ChannelAPI *feature);
//void handleMessagePipeToBeDeleted(int reason, QObject* object);
void channelsOrFeaturesChanged(const QStringList& renameFrom, const QStringList& renameTo);
void handlePipeMessageQueue(MessageQueue* messageQueue);
void scanSerialPorts();
};