diff --git a/plugins/channelrx/demodapt/aptdemod.cpp b/plugins/channelrx/demodapt/aptdemod.cpp index 4fbe8fec6..76a5a0a08 100644 --- a/plugins/channelrx/demodapt/aptdemod.cpp +++ b/plugins/channelrx/demodapt/aptdemod.cpp @@ -72,6 +72,8 @@ APTDemod::APTDemod(DeviceAPI *deviceAPI) : m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); + + startImageWorker(); } APTDemod::~APTDemod() @@ -109,7 +111,6 @@ void APTDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto void APTDemod::start() { startBasebandSink(); - startImageWorker(); } void APTDemod::startBasebandSink() @@ -141,7 +142,6 @@ void APTDemod::startImageWorker() void APTDemod::stop() { - stopImageWorker(); stopBasebandSink(); } @@ -594,7 +594,7 @@ int APTDemod::webapiActionsPost( m_basebandSink->getInputMessageQueue()->push(APTDemod::MsgResetDecoder::create()); // Save satellite name - m_satelliteName = *satelliteName; + m_imageWorker->getInputMessageQueue()->push(APTDemodImageWorker::MsgSetSatelliteName::create(*satelliteName)); // Enable decoder and set direction of pass APTDemodSettings settings = m_settings; diff --git a/plugins/channelrx/demodapt/aptdemod.h b/plugins/channelrx/demodapt/aptdemod.h index d30dad511..271cd6fe9 100644 --- a/plugins/channelrx/demodapt/aptdemod.h +++ b/plugins/channelrx/demodapt/aptdemod.h @@ -250,8 +250,6 @@ private: QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; - QString m_satelliteName; - void applySettings(const APTDemodSettings& settings, bool force = false); void webapiReverseSendSettings(QList& channelSettingsKeys, const APTDemodSettings& settings, bool force); void webapiFormatChannelSettings( diff --git a/plugins/channelrx/demodapt/aptdemodimageworker.cpp b/plugins/channelrx/demodapt/aptdemodimageworker.cpp index 00b398dd3..b26b42f89 100644 --- a/plugins/channelrx/demodapt/aptdemodimageworker.cpp +++ b/plugins/channelrx/demodapt/aptdemodimageworker.cpp @@ -26,6 +26,7 @@ MESSAGE_CLASS_DEFINITION(APTDemodImageWorker::MsgConfigureAPTDemodImageWorker, Message) MESSAGE_CLASS_DEFINITION(APTDemodImageWorker::MsgSaveImageToDisk, Message) +MESSAGE_CLASS_DEFINITION(APTDemodImageWorker::MsgSetSatelliteName, Message) APTDemodImageWorker::APTDemodImageWorker() : m_messageQueueToGUI(nullptr), @@ -99,6 +100,12 @@ bool APTDemodImageWorker::handleMessage(const Message& cmd) saveImageToDisk(); return true; } + else if (MsgSetSatelliteName::match(cmd)) + { + MsgSetSatelliteName& msg = (MsgSetSatelliteName&) cmd; + m_satelliteName = msg.getSatelliteName(); + return true; + } else if (APTDemod::MsgPixels::match(cmd)) { QMutexLocker mutexLocker(&m_mutex); @@ -336,7 +343,7 @@ void APTDemodImageWorker::saveImageToDisk() { QString filename; QDateTime datetime = QDateTime::currentDateTime(); - filename = QString("apt_%1_%2.png").arg(m_satelliteName).arg(datetime.toString("yyyyMMdd_hhmm")); + filename = QString("apt_%1_%2.png").arg(m_satelliteName.replace(" ", "_")).arg(datetime.toString("yyyyMMdd_hhmm")); if (!m_settings.m_autoSavePath.isEmpty()) { diff --git a/plugins/channelrx/demodapt/aptdemodimageworker.h b/plugins/channelrx/demodapt/aptdemodimageworker.h index 9dcfd49ac..eb823b8f7 100644 --- a/plugins/channelrx/demodapt/aptdemodimageworker.h +++ b/plugins/channelrx/demodapt/aptdemodimageworker.h @@ -74,6 +74,27 @@ public: } }; + class MsgSetSatelliteName : public Message { + MESSAGE_CLASS_DECLARATION + + public: + QString getSatelliteName() const { return m_satelliteName; } + + static MsgSetSatelliteName* create(const QString &satelliteName) + { + return new MsgSetSatelliteName(satelliteName); + } + + private: + QString m_satelliteName; + + MsgSetSatelliteName(const QString &satelliteName) : + Message(), + m_satelliteName(satelliteName) + { + } + }; + APTDemodImageWorker(); ~APTDemodImageWorker(); void reset();