1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-09 09:25:07 -04:00

Rotator controller and dependent plugins: implemented new message pipes and other fixes. Part of #1154

This commit is contained in:
f4exb
2022-03-28 20:12:25 +02:00
parent 1819ca6e94
commit 842546aec6
25 changed files with 694 additions and 241 deletions
@@ -21,7 +21,7 @@
#include <QThread>
#include <QNetworkRequest>
#include <QTimer>
#include <QHash>
#include "feature/feature.h"
#include "util/message.h"
@@ -101,6 +101,24 @@ public:
{}
};
class MsgReportAvailableChannelOrFeatures : public Message {
MESSAGE_CLASS_DECLARATION
public:
QList<GS232ControllerSettings::AvailableChannelOrFeature>& getItems() { return m_availableChannelOrFeatures; }
static MsgReportAvailableChannelOrFeatures* create() {
return new MsgReportAvailableChannelOrFeatures();
}
private:
QList<GS232ControllerSettings::AvailableChannelOrFeature> m_availableChannelOrFeatures;
MsgReportAvailableChannelOrFeatures() :
Message()
{}
};
GS232Controller(WebAPIAdapterInterface *webAPIAdapterInterface);
virtual ~GS232Controller();
virtual void destroy() { delete this; }
@@ -154,9 +172,8 @@ private:
QThread m_thread;
GS232ControllerWorker *m_worker;
GS232ControllerSettings m_settings;
QList<AvailablePipeSource> m_availablePipes;
PipeEndPoint *m_selectedPipe;
QTimer m_updatePipesTimer;
QHash<QObject*, GS232ControllerSettings::AvailableChannelOrFeature> m_availableChannelOrFeatures;
QObject *m_selectedPipe;
QNetworkAccessManager *m_networkManager;
QNetworkRequest m_networkRequest;
@@ -169,10 +186,18 @@ private:
void applySettings(const GS232ControllerSettings& settings, bool force = false);
void webapiReverseSendSettings(QList<QString>& featureSettingsKeys, const GS232ControllerSettings& settings, bool force);
void webapiFormatFeatureReport(SWGSDRangel::SWGFeatureReport& response);
void scanAvailableChannelsAndFeatures();
void notifyUpdate();
void registerPipe(QObject *object);
private slots:
void updatePipes();
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 handlePipeMessageQueue(MessageQueue* messageQueue);
};
#endif // INCLUDE_FEATURE_GS232CONTROLLER_H_