mirror of https://github.com/f4exb/sdrangel.git
RTL-SDR: refactoring: device open close moved in the constructor and destructor respectively of the input object
This commit is contained in:
parent
934e73f7a7
commit
bb5fd95f33
|
@ -60,6 +60,8 @@ RTLSDRGui::RTLSDRGui(DeviceSourceAPI *deviceAPI, QWidget* parent) :
|
||||||
m_deviceAPI->addSink(m_fileSink);
|
m_deviceAPI->addSink(m_fileSink);
|
||||||
|
|
||||||
connect(m_deviceAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
connect(m_deviceAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
|
||||||
|
|
||||||
|
queryDeviceReport(); // will reply with MsgReportRTLSDR to report gain list
|
||||||
}
|
}
|
||||||
|
|
||||||
RTLSDRGui::~RTLSDRGui()
|
RTLSDRGui::~RTLSDRGui()
|
||||||
|
@ -67,6 +69,7 @@ RTLSDRGui::~RTLSDRGui()
|
||||||
m_deviceAPI->removeSink(m_fileSink);
|
m_deviceAPI->removeSink(m_fileSink);
|
||||||
delete m_fileSink;
|
delete m_fileSink;
|
||||||
delete ui;
|
delete ui;
|
||||||
|
delete m_sampleSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RTLSDRGui::destroy()
|
void RTLSDRGui::destroy()
|
||||||
|
@ -124,6 +127,7 @@ bool RTLSDRGui::deserialize(const QByteArray& data)
|
||||||
{
|
{
|
||||||
if(m_settings.deserialize(data))
|
if(m_settings.deserialize(data))
|
||||||
{
|
{
|
||||||
|
displayGains();
|
||||||
displaySettings();
|
displaySettings();
|
||||||
sendSettings();
|
sendSettings();
|
||||||
return true;
|
return true;
|
||||||
|
@ -141,7 +145,7 @@ bool RTLSDRGui::handleMessage(const Message& message)
|
||||||
{
|
{
|
||||||
qDebug() << "RTLSDRGui::handleMessage: MsgReportRTLSDR";
|
qDebug() << "RTLSDRGui::handleMessage: MsgReportRTLSDR";
|
||||||
m_gains = ((RTLSDRInput::MsgReportRTLSDR&) message).getGains();
|
m_gains = ((RTLSDRInput::MsgReportRTLSDR&) message).getGains();
|
||||||
displaySettings();
|
displayGains();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -194,17 +198,8 @@ void RTLSDRGui::updateSampleRateAndFrequency()
|
||||||
ui->deviceRateText->setText(tr("%1k").arg(QString::number(m_sampleRate / 1000.0f, 'g', 5)));
|
ui->deviceRateText->setText(tr("%1k").arg(QString::number(m_sampleRate / 1000.0f, 'g', 5)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void RTLSDRGui::displaySettings()
|
void RTLSDRGui::displayGains()
|
||||||
{
|
{
|
||||||
ui->centerFrequency->setValue(m_settings.m_centerFrequency / 1000);
|
|
||||||
ui->sampleRate->setValue(m_settings.m_devSampleRate);
|
|
||||||
ui->dcOffset->setChecked(m_settings.m_dcBlock);
|
|
||||||
ui->iqImbalance->setChecked(m_settings.m_iqImbalance);
|
|
||||||
ui->ppm->setValue(m_settings.m_loPpmCorrection);
|
|
||||||
ui->ppmText->setText(tr("%1").arg(m_settings.m_loPpmCorrection));
|
|
||||||
ui->decim->setCurrentIndex(m_settings.m_log2Decim);
|
|
||||||
ui->fcPos->setCurrentIndex((int) m_settings.m_fcPos);
|
|
||||||
|
|
||||||
if (m_gains.size() > 0)
|
if (m_gains.size() > 0)
|
||||||
{
|
{
|
||||||
int dist = abs(m_settings.m_gain - m_gains[0]);
|
int dist = abs(m_settings.m_gain - m_gains[0]);
|
||||||
|
@ -232,6 +227,18 @@ void RTLSDRGui::displaySettings()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RTLSDRGui::displaySettings()
|
||||||
|
{
|
||||||
|
ui->centerFrequency->setValue(m_settings.m_centerFrequency / 1000);
|
||||||
|
ui->sampleRate->setValue(m_settings.m_devSampleRate);
|
||||||
|
ui->dcOffset->setChecked(m_settings.m_dcBlock);
|
||||||
|
ui->iqImbalance->setChecked(m_settings.m_iqImbalance);
|
||||||
|
ui->ppm->setValue(m_settings.m_loPpmCorrection);
|
||||||
|
ui->ppmText->setText(tr("%1").arg(m_settings.m_loPpmCorrection));
|
||||||
|
ui->decim->setCurrentIndex(m_settings.m_log2Decim);
|
||||||
|
ui->fcPos->setCurrentIndex((int) m_settings.m_fcPos);
|
||||||
|
}
|
||||||
|
|
||||||
void RTLSDRGui::sendSettings()
|
void RTLSDRGui::sendSettings()
|
||||||
{
|
{
|
||||||
if(!m_updateTimer.isActive())
|
if(!m_updateTimer.isActive())
|
||||||
|
@ -334,6 +341,12 @@ void RTLSDRGui::on_record_toggled(bool checked)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RTLSDRGui::queryDeviceReport()
|
||||||
|
{
|
||||||
|
RTLSDRInput::MsgQueryRTLSDR* message = RTLSDRInput::MsgQueryRTLSDR::create();
|
||||||
|
m_sampleSource->getInputMessageQueue()->push(message);
|
||||||
|
}
|
||||||
|
|
||||||
void RTLSDRGui::updateHardware()
|
void RTLSDRGui::updateHardware()
|
||||||
{
|
{
|
||||||
RTLSDRInput::MsgConfigureRTLSDR* message = RTLSDRInput::MsgConfigureRTLSDR::create(m_settings);
|
RTLSDRInput::MsgConfigureRTLSDR* message = RTLSDRInput::MsgConfigureRTLSDR::create(m_settings);
|
||||||
|
|
|
@ -61,6 +61,8 @@ private:
|
||||||
quint64 m_deviceCenterFrequency; //!< Center frequency in device
|
quint64 m_deviceCenterFrequency; //!< Center frequency in device
|
||||||
int m_lastEngineState;
|
int m_lastEngineState;
|
||||||
|
|
||||||
|
void queryDeviceReport();
|
||||||
|
void displayGains();
|
||||||
void displaySettings();
|
void displaySettings();
|
||||||
void sendSettings();
|
void sendSettings();
|
||||||
void updateSampleRateAndFrequency();
|
void updateSampleRateAndFrequency();
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
|
|
||||||
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgConfigureRTLSDR, Message)
|
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgConfigureRTLSDR, Message)
|
||||||
|
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgQueryRTLSDR, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgReportRTLSDR, Message)
|
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgReportRTLSDR, Message)
|
||||||
|
|
||||||
RTLSDRInput::RTLSDRInput(DeviceSourceAPI *deviceAPI) :
|
RTLSDRInput::RTLSDRInput(DeviceSourceAPI *deviceAPI) :
|
||||||
|
@ -35,22 +36,24 @@ RTLSDRInput::RTLSDRInput(DeviceSourceAPI *deviceAPI) :
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_dev(0),
|
m_dev(0),
|
||||||
m_rtlSDRThread(0),
|
m_rtlSDRThread(0),
|
||||||
m_deviceDescription()
|
m_deviceDescription(),
|
||||||
|
m_running(false)
|
||||||
{
|
{
|
||||||
|
openDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
RTLSDRInput::~RTLSDRInput()
|
RTLSDRInput::~RTLSDRInput()
|
||||||
{
|
{
|
||||||
stop();
|
//stop();
|
||||||
|
if (m_running) stop();
|
||||||
|
closeDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RTLSDRInput::start(int device)
|
bool RTLSDRInput::openDevice()
|
||||||
{
|
{
|
||||||
QMutexLocker mutexLocker(&m_mutex);
|
|
||||||
|
|
||||||
if (m_dev != 0)
|
if (m_dev != 0)
|
||||||
{
|
{
|
||||||
stop();
|
closeDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
char vendor[256];
|
char vendor[256];
|
||||||
|
@ -61,13 +64,21 @@ bool RTLSDRInput::start(int device)
|
||||||
|
|
||||||
if (!m_sampleFifo.setSize(96000 * 4))
|
if (!m_sampleFifo.setSize(96000 * 4))
|
||||||
{
|
{
|
||||||
qCritical("RTLSDRInput::start: Could not allocate SampleFifo");
|
qCritical("RTLSDRInput::openDevice: Could not allocate SampleFifo");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int device;
|
||||||
|
|
||||||
|
if ((device = rtlsdr_get_index_by_serial(qPrintable(m_deviceAPI->getSampleSourceSerial()))) < 0)
|
||||||
|
{
|
||||||
|
qCritical("RTLSDRInput::openDevice: could not get RTLSDR serial number");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((res = rtlsdr_open(&m_dev, device)) < 0)
|
if ((res = rtlsdr_open(&m_dev, device)) < 0)
|
||||||
{
|
{
|
||||||
qCritical("RTLSDRInput::start: could not open RTLSDR #%d: %s", device, strerror(errno));
|
qCritical("RTLSDRInput::openDevice: could not open RTLSDR #%d: %s", device, strerror(errno));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,31 +88,31 @@ bool RTLSDRInput::start(int device)
|
||||||
|
|
||||||
if ((res = rtlsdr_get_usb_strings(m_dev, vendor, product, serial)) < 0)
|
if ((res = rtlsdr_get_usb_strings(m_dev, vendor, product, serial)) < 0)
|
||||||
{
|
{
|
||||||
qCritical("RTLSDRInput::start: error accessing USB device");
|
qCritical("RTLSDRInput::openDevice: error accessing USB device");
|
||||||
stop();
|
stop();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
qWarning("RTLSDRInput::start: open: %s %s, SN: %s", vendor, product, serial);
|
qWarning("RTLSDRInput::openDevice: open: %s %s, SN: %s", vendor, product, serial);
|
||||||
m_deviceDescription = QString("%1 (SN %2)").arg(product).arg(serial);
|
m_deviceDescription = QString("%1 (SN %2)").arg(product).arg(serial);
|
||||||
|
|
||||||
if ((res = rtlsdr_set_sample_rate(m_dev, 1152000)) < 0)
|
if ((res = rtlsdr_set_sample_rate(m_dev, 1152000)) < 0)
|
||||||
{
|
{
|
||||||
qCritical("RTLSDRInput::start: could not set sample rate: 1024k S/s");
|
qCritical("RTLSDRInput::openDevice: could not set sample rate: 1024k S/s");
|
||||||
stop();
|
stop();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((res = rtlsdr_set_tuner_gain_mode(m_dev, 1)) < 0)
|
if ((res = rtlsdr_set_tuner_gain_mode(m_dev, 1)) < 0)
|
||||||
{
|
{
|
||||||
qCritical("RTLSDRInput::start: error setting tuner gain mode");
|
qCritical("RTLSDRInput::openDevice: error setting tuner gain mode");
|
||||||
stop();
|
stop();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((res = rtlsdr_set_agc_mode(m_dev, 0)) < 0)
|
if ((res = rtlsdr_set_agc_mode(m_dev, 0)) < 0)
|
||||||
{
|
{
|
||||||
qCritical("RTLSDRInput::start: error setting agc mode");
|
qCritical("RTLSDRInput::openDevice: error setting agc mode");
|
||||||
stop();
|
stop();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -110,7 +121,7 @@ bool RTLSDRInput::start(int device)
|
||||||
|
|
||||||
if (numberOfGains < 0)
|
if (numberOfGains < 0)
|
||||||
{
|
{
|
||||||
qCritical("RTLSDRInput::start: error getting number of gain values supported");
|
qCritical("RTLSDRInput::openDevice: error getting number of gain values supported");
|
||||||
stop();
|
stop();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -119,24 +130,35 @@ bool RTLSDRInput::start(int device)
|
||||||
|
|
||||||
if (rtlsdr_get_tuner_gains(m_dev, &m_gains[0]) < 0)
|
if (rtlsdr_get_tuner_gains(m_dev, &m_gains[0]) < 0)
|
||||||
{
|
{
|
||||||
qCritical("RTLSDRInput::start: error getting gain values");
|
qCritical("RTLSDRInput::openDevice: error getting gain values");
|
||||||
stop();
|
stop();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
qDebug() << "RTLSDRInput::start: " << m_gains.size() << "gains";
|
qDebug() << "RTLSDRInput::openDevice: " << m_gains.size() << "gains";
|
||||||
MsgReportRTLSDR *message = MsgReportRTLSDR::create(m_gains);
|
|
||||||
getOutputMessageQueueToGUI()->push(message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((res = rtlsdr_reset_buffer(m_dev)) < 0)
|
if ((res = rtlsdr_reset_buffer(m_dev)) < 0)
|
||||||
{
|
{
|
||||||
qCritical("RTLSDRInput::start: could not reset USB EP buffers: %s", strerror(errno));
|
qCritical("RTLSDRInput::openDevice: could not reset USB EP buffers: %s", strerror(errno));
|
||||||
stop();
|
stop();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool RTLSDRInput::start(int device) // TODO: remove device parameter
|
||||||
|
{
|
||||||
|
QMutexLocker mutexLocker(&m_mutex);
|
||||||
|
|
||||||
|
if (!m_dev) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_running) stop();
|
||||||
|
|
||||||
if ((m_rtlSDRThread = new RTLSDRThread(m_dev, &m_sampleFifo)) == NULL)
|
if ((m_rtlSDRThread = new RTLSDRThread(m_dev, &m_sampleFifo)) == NULL)
|
||||||
{
|
{
|
||||||
qFatal("RTLSDRInput::start: out of memory");
|
qFatal("RTLSDRInput::start: out of memory");
|
||||||
|
@ -144,15 +166,31 @@ bool RTLSDRInput::start(int device)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_rtlSDRThread->setSamplerate(m_settings.m_devSampleRate);
|
||||||
|
m_rtlSDRThread->setLog2Decimation(m_settings.m_log2Decim);
|
||||||
|
m_rtlSDRThread->setFcPos((int) m_settings.m_fcPos);
|
||||||
|
|
||||||
m_rtlSDRThread->startWork();
|
m_rtlSDRThread->startWork();
|
||||||
|
|
||||||
mutexLocker.unlock();
|
mutexLocker.unlock();
|
||||||
|
|
||||||
applySettings(m_settings, true);
|
applySettings(m_settings, true);
|
||||||
|
m_running = true;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RTLSDRInput::closeDevice()
|
||||||
|
{
|
||||||
|
if (m_dev != 0)
|
||||||
|
{
|
||||||
|
rtlsdr_close(m_dev);
|
||||||
|
m_dev = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_deviceDescription.clear();
|
||||||
|
}
|
||||||
|
|
||||||
void RTLSDRInput::stop()
|
void RTLSDRInput::stop()
|
||||||
{
|
{
|
||||||
QMutexLocker mutexLocker(&m_mutex);
|
QMutexLocker mutexLocker(&m_mutex);
|
||||||
|
@ -164,13 +202,7 @@ void RTLSDRInput::stop()
|
||||||
m_rtlSDRThread = 0;
|
m_rtlSDRThread = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_dev != 0)
|
m_running = false;
|
||||||
{
|
|
||||||
rtlsdr_close(m_dev);
|
|
||||||
m_dev = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_deviceDescription.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const QString& RTLSDRInput::getDeviceDescription() const
|
const QString& RTLSDRInput::getDeviceDescription() const
|
||||||
|
@ -205,6 +237,16 @@ bool RTLSDRInput::handleMessage(const Message& message)
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
else if (MsgQueryRTLSDR::match(message))
|
||||||
|
{
|
||||||
|
MsgQueryRTLSDR& conf = (MsgQueryRTLSDR&) message;
|
||||||
|
qDebug() << "RTLSDRInput::handleMessage: MsgQueryRTLSDR";
|
||||||
|
|
||||||
|
MsgReportRTLSDR *message = MsgReportRTLSDR::create(m_gains);
|
||||||
|
getOutputMessageQueueToGUI()->push(message);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
@ -268,7 +310,7 @@ bool RTLSDRInput::applySettings(const RTLSDRSettings& settings, bool force)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_rtlSDRThread->setSamplerate(settings.m_devSampleRate);
|
if (m_rtlSDRThread) m_rtlSDRThread->setSamplerate(settings.m_devSampleRate);
|
||||||
qDebug("RTLSDRInput::applySettings: sample rate set to %d", m_settings.m_devSampleRate);
|
qDebug("RTLSDRInput::applySettings: sample rate set to %d", m_settings.m_devSampleRate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -279,7 +321,7 @@ bool RTLSDRInput::applySettings(const RTLSDRSettings& settings, bool force)
|
||||||
m_settings.m_log2Decim = settings.m_log2Decim;
|
m_settings.m_log2Decim = settings.m_log2Decim;
|
||||||
forwardChange = true;
|
forwardChange = true;
|
||||||
|
|
||||||
if(m_dev != 0)
|
if (m_rtlSDRThread != 0)
|
||||||
{
|
{
|
||||||
m_rtlSDRThread->setLog2Decimation(settings.m_log2Decim);
|
m_rtlSDRThread->setLog2Decimation(settings.m_log2Decim);
|
||||||
}
|
}
|
||||||
|
@ -314,7 +356,7 @@ bool RTLSDRInput::applySettings(const RTLSDRSettings& settings, bool force)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_dev != 0)
|
if (m_dev != 0)
|
||||||
{
|
{
|
||||||
if (rtlsdr_set_center_freq( m_dev, deviceCenterFrequency ) != 0)
|
if (rtlsdr_set_center_freq( m_dev, deviceCenterFrequency ) != 0)
|
||||||
{
|
{
|
||||||
|
@ -335,7 +377,7 @@ bool RTLSDRInput::applySettings(const RTLSDRSettings& settings, bool force)
|
||||||
{
|
{
|
||||||
m_settings.m_fcPos = settings.m_fcPos;
|
m_settings.m_fcPos = settings.m_fcPos;
|
||||||
|
|
||||||
if(m_dev != 0)
|
if (m_rtlSDRThread != 0)
|
||||||
{
|
{
|
||||||
m_rtlSDRThread->setFcPos((int) m_settings.m_fcPos);
|
m_rtlSDRThread->setFcPos((int) m_settings.m_fcPos);
|
||||||
qDebug() << "RTLSDRInput: set fc pos (enum) to " << (int) m_settings.m_fcPos;
|
qDebug() << "RTLSDRInput: set fc pos (enum) to " << (int) m_settings.m_fcPos;
|
||||||
|
|
|
@ -49,6 +49,21 @@ public:
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class MsgQueryRTLSDR : public Message {
|
||||||
|
MESSAGE_CLASS_DECLARATION
|
||||||
|
|
||||||
|
public:
|
||||||
|
static MsgQueryRTLSDR* create()
|
||||||
|
{
|
||||||
|
return new MsgQueryRTLSDR();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
MsgQueryRTLSDR() :
|
||||||
|
Message()
|
||||||
|
{ }
|
||||||
|
};
|
||||||
|
|
||||||
class MsgReportRTLSDR : public Message {
|
class MsgReportRTLSDR : public Message {
|
||||||
MESSAGE_CLASS_DECLARATION
|
MESSAGE_CLASS_DECLARATION
|
||||||
|
|
||||||
|
@ -81,6 +96,7 @@ public:
|
||||||
|
|
||||||
virtual bool handleMessage(const Message& message);
|
virtual bool handleMessage(const Message& message);
|
||||||
|
|
||||||
|
const std::vector<int>& getGains() const { return m_gains; }
|
||||||
void set_ds_mode(int on);
|
void set_ds_mode(int on);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -91,7 +107,10 @@ private:
|
||||||
RTLSDRThread* m_rtlSDRThread;
|
RTLSDRThread* m_rtlSDRThread;
|
||||||
QString m_deviceDescription;
|
QString m_deviceDescription;
|
||||||
std::vector<int> m_gains;
|
std::vector<int> m_gains;
|
||||||
|
bool m_running;
|
||||||
|
|
||||||
|
bool openDevice();
|
||||||
|
void closeDevice();
|
||||||
bool applySettings(const RTLSDRSettings& settings, bool force);
|
bool applySettings(const RTLSDRSettings& settings, bool force);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include "rtlsdrthread.h"
|
#include "rtlsdrthread.h"
|
||||||
|
|
||||||
#include "../../../sdrbase/dsp/samplesinkfifo.h"
|
#include "dsp/samplesinkfifo.h"
|
||||||
|
|
||||||
#define FCD_BLOCKSIZE 16384
|
#define FCD_BLOCKSIZE 16384
|
||||||
|
|
||||||
|
@ -30,7 +30,8 @@ RTLSDRThread::RTLSDRThread(rtlsdr_dev_t* dev, SampleSinkFifo* sampleFifo, QObjec
|
||||||
m_convertBuffer(FCD_BLOCKSIZE),
|
m_convertBuffer(FCD_BLOCKSIZE),
|
||||||
m_sampleFifo(sampleFifo),
|
m_sampleFifo(sampleFifo),
|
||||||
m_samplerate(288000),
|
m_samplerate(288000),
|
||||||
m_log2Decim(4)
|
m_log2Decim(4),
|
||||||
|
m_fcPos(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue