From c9216f2093c6547ecc7058af2b701e8ed7c43d43 Mon Sep 17 00:00:00 2001 From: f4exb Date: Mon, 14 Nov 2016 02:24:44 +0100 Subject: [PATCH] SDRPlay support: source plugin interim state (3) MIR stream init fails --- plugins/samplesource/sdrplay/sdrplaygui.cpp | 31 +++++++++++++++++++ plugins/samplesource/sdrplay/sdrplaygui.h | 2 ++ plugins/samplesource/sdrplay/sdrplayinput.cpp | 17 ++++++++-- .../samplesource/sdrplay/sdrplaythread.cpp | 2 ++ 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/plugins/samplesource/sdrplay/sdrplaygui.cpp b/plugins/samplesource/sdrplay/sdrplaygui.cpp index f5b796468..3ca3bcd51 100644 --- a/plugins/samplesource/sdrplay/sdrplaygui.cpp +++ b/plugins/samplesource/sdrplay/sdrplaygui.cpp @@ -701,6 +701,37 @@ void SDRPlayGui::on_gr_valueChanged(int value) sendSettings(); } +void SDRPlayGui::on_startStop_toggled(bool checked) +{ + if (checked) + { + if (m_deviceAPI->initAcquisition()) + { + m_deviceAPI->startAcquisition(); + DSPEngine::instance()->startAudio(); + } + } + else + { + m_deviceAPI->stopAcquisition(); + DSPEngine::instance()->stopAudio(); + } +} + +void SDRPlayGui::on_record_toggled(bool checked) +{ + if (checked) + { + ui->record->setStyleSheet("QToolButton { background-color : red; }"); + m_fileSink->startRecording(); + } + else + { + ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); + m_fileSink->stopRecording(); + } +} + // ==================================================================== unsigned int SDRPlaySampleRates::m_rates[m_nb_rates] = { diff --git a/plugins/samplesource/sdrplay/sdrplaygui.h b/plugins/samplesource/sdrplay/sdrplaygui.h index 5bad63dc2..7a7a443b4 100644 --- a/plugins/samplesource/sdrplay/sdrplaygui.h +++ b/plugins/samplesource/sdrplay/sdrplaygui.h @@ -89,6 +89,8 @@ private slots: void on_decim_currentIndexChanged(int index); void on_fcPos_currentIndexChanged(int index); void on_gr_valueChanged(int value); + void on_startStop_toggled(bool checked); + void on_record_toggled(bool checked); }; diff --git a/plugins/samplesource/sdrplay/sdrplayinput.cpp b/plugins/samplesource/sdrplay/sdrplayinput.cpp index 10cc8773a..c5e626267 100644 --- a/plugins/samplesource/sdrplay/sdrplayinput.cpp +++ b/plugins/samplesource/sdrplay/sdrplayinput.cpp @@ -73,8 +73,19 @@ bool SDRPlayInput::start(int device) double frequencyMHz = m_settings.m_centerFrequency / 1e6; int infoOverallGr; - mir_sdr_DCoffsetIQimbalanceControl(1, 0); - mir_sdr_AgcControl(mir_sdr_AGC_DISABLE, agcSetPoint, 0, 0, 0, 0, 1); + r = mir_sdr_DCoffsetIQimbalanceControl(1, 0); + if (r != mir_sdr_Success) + { + qCritical("SDRPlayInput::start: mir_sdr_DCoffsetIQimbalanceControl failed with code %d", (int) r); + } + + r = mir_sdr_AgcControl(mir_sdr_AGC_DISABLE, agcSetPoint, 0, 0, 0, 0, 1); + if (r != mir_sdr_Success) + { + qCritical("SDRPlayInput::start: mir_sdr_AgcControl failed with code %d", (int) r); + } + + qDebug("SDRPlayInput::start: sampleRateMHz: %lf frequencyMHz: %lf", sampleRateMHz, frequencyMHz); r = mir_sdr_StreamInit( &agcSetPoint, @@ -92,7 +103,7 @@ bool SDRPlayInput::start(int device) if (r != mir_sdr_Success) { - qCritical("SDRPlayInput::start: Mir stream init failed with code %d", (int) r); + qCritical("SDRPlayInput::start: mir_sdr_StreamInit failed with code %d", (int) r); } else { diff --git a/plugins/samplesource/sdrplay/sdrplaythread.cpp b/plugins/samplesource/sdrplay/sdrplaythread.cpp index a5300e6fd..2bba5072b 100644 --- a/plugins/samplesource/sdrplay/sdrplaythread.cpp +++ b/plugins/samplesource/sdrplay/sdrplaythread.cpp @@ -74,11 +74,13 @@ void SDRPlayThread::streamCallback( unsigned int reset, void *cbContext) { + qDebug("SDRPlayThread::streamCallback"); m_this->callback(xi, xq, numSamples); } void SDRPlayThread::callback(short *xi, short *xq, unsigned int numSamples) { + qDebug("SDRPlayThread::callback"); if (m_convertBuffer.size() < numSamples) { m_convertBuffer.resize(numSamples);