diff --git a/plugins/channelrx/freqscanner/freqscanner.cpp b/plugins/channelrx/freqscanner/freqscanner.cpp index 24d3d55b9..f7222c47d 100644 --- a/plugins/channelrx/freqscanner/freqscanner.cpp +++ b/plugins/channelrx/freqscanner/freqscanner.cpp @@ -49,6 +49,7 @@ MESSAGE_CLASS_DEFINITION(FreqScanner::MsgReportChannels, Message) MESSAGE_CLASS_DEFINITION(FreqScanner::MsgStartScan, Message) MESSAGE_CLASS_DEFINITION(FreqScanner::MsgStopScan, Message) MESSAGE_CLASS_DEFINITION(FreqScanner::MsgScanComplete, Message) +MESSAGE_CLASS_DEFINITION(FreqScanner::MsgContinueScan, Message) MESSAGE_CLASS_DEFINITION(FreqScanner::MsgScanResult, Message) MESSAGE_CLASS_DEFINITION(FreqScanner::MsgStatus, Message) MESSAGE_CLASS_DEFINITION(FreqScanner::MsgReportActiveFrequency, Message) @@ -261,6 +262,12 @@ bool FreqScanner::handleMessage(const Message& cmd) return true; } + else if (MsgContinueScan::match(cmd)) + { + continueScan(); + + return true; + } else { return false; @@ -320,6 +327,11 @@ void FreqScanner::initScan() m_state = SCAN_FOR_MAX_POWER; } +void FreqScanner::continueScan() +{ + m_state = SCAN_FOR_MAX_POWER; +} + void FreqScanner::processScanResults(const QDateTime& fftStartTime, const QList& results) { switch (m_state) diff --git a/plugins/channelrx/freqscanner/freqscanner.h b/plugins/channelrx/freqscanner/freqscanner.h index d3b3b63ce..69118c382 100644 --- a/plugins/channelrx/freqscanner/freqscanner.h +++ b/plugins/channelrx/freqscanner/freqscanner.h @@ -146,6 +146,23 @@ public: } }; + class MsgContinueScan : public Message { + MESSAGE_CLASS_DECLARATION + + public: + + static MsgContinueScan* create() + { + return new MsgContinueScan(); + } + + private: + + MsgContinueScan() : + Message() + { + } + }; class MsgScanResult : public Message { MESSAGE_CLASS_DECLARATION @@ -422,6 +439,7 @@ private: void startScan(); void stopScan(); void initScan(); + void continueScan(); void processScanResults(const QDateTime& fftStartTime, const QList& results); void setDeviceCenterFrequency(qint64 frequency); void applyChannelSetting(const QString& channel); diff --git a/plugins/channelrx/freqscanner/freqscannergui.cpp b/plugins/channelrx/freqscanner/freqscannergui.cpp index 723947cbe..2d128d1ea 100644 --- a/plugins/channelrx/freqscanner/freqscannergui.cpp +++ b/plugins/channelrx/freqscanner/freqscannergui.cpp @@ -682,6 +682,12 @@ void FreqScannerGUI::on_startStop_toggled(bool checked) } } +void FreqScannerGUI::on_continueScan_clicked() +{ + FreqScanner::MsgContinueScan* message = FreqScanner::MsgContinueScan::create(); + m_freqScanner->getInputMessageQueue()->push(message); +} + void FreqScannerGUI::addRow(const FreqScannerSettings::FrequencySettings& frequencySettings) { int row = ui->table->rowCount(); @@ -1278,6 +1284,7 @@ void FreqScannerGUI::makeUIConnections() QObject::connect(ui->measurement, QOverload::of(&QComboBox::currentIndexChanged), this, &FreqScannerGUI::on_measurement_currentIndexChanged); QObject::connect(ui->mode, QOverload::of(&QComboBox::currentIndexChanged), this, &FreqScannerGUI::on_mode_currentIndexChanged); QObject::connect(ui->startStop, &ButtonSwitch::toggled, this, &FreqScannerGUI::on_startStop_toggled); + QObject::connect(ui->continueScan, &QPushButton::clicked, this, &FreqScannerGUI::on_continueScan_clicked); QObject::connect(ui->table, &QTableWidget::cellChanged, this, &FreqScannerGUI::on_table_cellChanged); QObject::connect(ui->addSingle, &QToolButton::clicked, this, &FreqScannerGUI::on_addSingle_clicked); QObject::connect(ui->addRange, &QToolButton::clicked, this, &FreqScannerGUI::on_addRange_clicked); diff --git a/plugins/channelrx/freqscanner/freqscannergui.h b/plugins/channelrx/freqscanner/freqscannergui.h index 4962b7e14..b92f98807 100644 --- a/plugins/channelrx/freqscanner/freqscannergui.h +++ b/plugins/channelrx/freqscanner/freqscannergui.h @@ -145,6 +145,7 @@ private slots: void columnSelectMenu(QPoint pos); void columnSelectMenuChecked(bool checked = false); void on_startStop_toggled(bool checked = false); + void on_continueScan_clicked(); void on_addSingle_clicked(); void on_addRange_clicked(); void on_remove_clicked(); diff --git a/plugins/channelrx/freqscanner/freqscannergui.ui b/plugins/channelrx/freqscanner/freqscannergui.ui index 94f9bad24..b8e1a8c98 100644 --- a/plugins/channelrx/freqscanner/freqscannergui.ui +++ b/plugins/channelrx/freqscanner/freqscannergui.ui @@ -698,6 +698,26 @@ + + + + + 32 + 16777215 + + + + Force scanner to continue on next frequency + + + + + + + :/arrow_left.png:/arrow_left.png + + +