diff --git a/debian/changelog b/debian/changelog index a0e65da66..a9cc4675b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,9 @@ sdrangel (3.7.2-1) unstable; urgency=medium * PlutoSDR: Remove from device enumeration if device is not accessible + * RTLSDR: Fixed gains retrieval in the GUI - -- Edouard Griffiths, F4EXB Sun, 01 Oct 2017 21:14:18 +0200 + -- Edouard Griffiths, F4EXB Sat, 23 Sep 2017 05:14:18 +0200 sdrangel (3.7.1-1) unstable; urgency=medium diff --git a/plugins/samplesource/rtlsdr/rtlsdrgui.cpp b/plugins/samplesource/rtlsdr/rtlsdrgui.cpp index fd06f4887..6c2b84309 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrgui.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrgui.cpp @@ -52,8 +52,6 @@ RTLSDRGui::RTLSDRGui(DeviceSourceAPI *deviceAPI, QWidget* parent) : displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); - - queryDeviceReport(); // will reply with MsgReportRTLSDR to report gain list } RTLSDRGui::~RTLSDRGui() @@ -132,7 +130,6 @@ bool RTLSDRGui::handleMessage(const Message& message) { if (RTLSDRInput::MsgReportRTLSDR::match(message)) { - qDebug() << "RTLSDRGui::handleMessage: MsgReportRTLSDR"; m_gains = ((RTLSDRInput::MsgReportRTLSDR&) message).getGains(); displayGains(); return true; @@ -319,12 +316,6 @@ void RTLSDRGui::on_record_toggled(bool checked) m_sampleSource->getInputMessageQueue()->push(message); } -void RTLSDRGui::queryDeviceReport() -{ - RTLSDRInput::MsgQueryRTLSDR* message = RTLSDRInput::MsgQueryRTLSDR::create(); - m_sampleSource->getInputMessageQueue()->push(message); -} - void RTLSDRGui::updateHardware() { RTLSDRInput::MsgConfigureRTLSDR* message = RTLSDRInput::MsgConfigureRTLSDR::create(m_settings); diff --git a/plugins/samplesource/rtlsdr/rtlsdrgui.h b/plugins/samplesource/rtlsdr/rtlsdrgui.h index 5575a31df..5b8b002ee 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrgui.h +++ b/plugins/samplesource/rtlsdr/rtlsdrgui.h @@ -65,7 +65,6 @@ private: int m_lastEngineState; MessageQueue m_inputMessageQueue; - void queryDeviceReport(); void displayGains(); void displaySettings(); void sendSettings(); diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp index e1feecf62..147b06904 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp @@ -29,7 +29,6 @@ #include "dsp/filerecord.h" MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgConfigureRTLSDR, Message) -MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgQueryRTLSDR, Message) MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgReportRTLSDR, Message) MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgFileRecord, Message) @@ -250,19 +249,6 @@ bool RTLSDRInput::handleMessage(const Message& message) return true; } - else if (MsgQueryRTLSDR::match(message)) - { - //MsgQueryRTLSDR& conf = (MsgQueryRTLSDR&) message; - qDebug() << "RTLSDRInput::handleMessage: MsgQueryRTLSDR"; - - MsgReportRTLSDR *message = MsgReportRTLSDR::create(m_gains); - - if (getMessageQueueToGUI()) { - getMessageQueueToGUI()->push(message); - } - - return true; - } else if (MsgFileRecord::match(message)) { MsgFileRecord& conf = (MsgFileRecord&) message; @@ -436,6 +422,17 @@ bool RTLSDRInput::applySettings(const RTLSDRSettings& settings, bool force) return true; } +void RTLSDRInput::setMessageQueueToGUI(MessageQueue *queue) +{ + qDebug("RTLSDRInput::setMessageQueueToGUI: %p", queue); + DeviceSampleSource::setMessageQueueToGUI(queue); + + if (queue) { + MsgReportRTLSDR *message = MsgReportRTLSDR::create(m_gains); + queue->push(message); + } +} + void RTLSDRInput::set_ds_mode(int on) { rtlsdr_set_direct_sampling(m_dev, on); diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.h b/plugins/samplesource/rtlsdr/rtlsdrinput.h index 4f140d3ce..d3e807ae8 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.h +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.h @@ -50,21 +50,6 @@ public: { } }; - class MsgQueryRTLSDR : public Message { - MESSAGE_CLASS_DECLARATION - - public: - static MsgQueryRTLSDR* create() - { - return new MsgQueryRTLSDR(); - } - - protected: - MsgQueryRTLSDR() : - Message() - { } - }; - class MsgReportRTLSDR : public Message { MESSAGE_CLASS_DECLARATION @@ -116,6 +101,7 @@ public: virtual quint64 getCenterFrequency() const; virtual bool handleMessage(const Message& message); + virtual void setMessageQueueToGUI(MessageQueue *queue); const std::vector& getGains() const { return m_gains; } void set_ds_mode(int on); diff --git a/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp b/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp index ad1851ac3..b168512fd 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp @@ -11,7 +11,7 @@ const PluginDescriptor RTLSDRPlugin::m_pluginDescriptor = { QString("RTL-SDR Input"), - QString("3.5.2"), + QString("3.7.2"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.h b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.h index e74f9fb1f..a966e69f7 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.h +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.h @@ -318,7 +318,7 @@ public: virtual bool handleMessage(const Message& message); - void setMessageQueueToGUI(MessageQueue *queue); + virtual void setMessageQueueToGUI(MessageQueue *queue); private: DeviceSourceAPI *m_deviceAPI; diff --git a/sdrbase/dsp/devicesamplesource.h b/sdrbase/dsp/devicesamplesource.h index 1b5a8d9cc..a604c13c2 100644 --- a/sdrbase/dsp/devicesamplesource.h +++ b/sdrbase/dsp/devicesamplesource.h @@ -42,7 +42,7 @@ public: virtual bool handleMessage(const Message& message) = 0; MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; } - void setMessageQueueToGUI(MessageQueue *queue) { m_guiMessageQueue = queue; } + virtual void setMessageQueueToGUI(MessageQueue *queue) { m_guiMessageQueue = queue; } MessageQueue *getMessageQueueToGUI() { return m_guiMessageQueue; } SampleSinkFifo* getSampleFifo() { return &m_sampleFifo; }