diff --git a/plugins/samplesource/v4l/v4lgui.cpp b/plugins/samplesource/v4l/v4lgui.cpp
index d91b1e558..802764536 100644
--- a/plugins/samplesource/v4l/v4lgui.cpp
+++ b/plugins/samplesource/v4l/v4lgui.cpp
@@ -95,8 +95,6 @@ bool V4LGui::handleMessage(Message* message)
void V4LGui::displaySettings()
{
ui->centerFrequency->setValue(m_generalSettings.m_centerFrequency / 1000);
- ui->samplerate->setValue(m_settings.m_samplerate);
-
if(m_gains.size() > 0) {
int dist = abs(m_settings.m_gain - m_gains[0]);
int pos = 0;
@@ -139,15 +137,6 @@ void V4LGui::on_gain_valueChanged(int value)
sendSettings();
}
-void V4LGui::on_samplerate_valueChanged(int value)
-{
- int Rates[] = { 2500, 1536, 3072, 288, 1000, 0};
- int newrate = Rates[value];
- ui->samplerateText->setText(tr("%1kHz").arg(newrate));
- m_settings.m_samplerate = 1000 * newrate;
- sendSettings();
-}
-
void V4LGui::updateHardware()
{
V4LInput::MsgConfigureV4L* message = V4LInput::MsgConfigureV4L::create(m_generalSettings, m_settings);
diff --git a/plugins/samplesource/v4l/v4lgui.h b/plugins/samplesource/v4l/v4lgui.h
index 2e84be2d4..448c97dee 100644
--- a/plugins/samplesource/v4l/v4lgui.h
+++ b/plugins/samplesource/v4l/v4lgui.h
@@ -45,8 +45,6 @@ private:
private slots:
void on_centerFrequency_changed(quint64 value);
void on_gain_valueChanged(int value);
- void on_samplerate_valueChanged(int value);
-
void updateHardware();
};
diff --git a/plugins/samplesource/v4l/v4lgui.ui b/plugins/samplesource/v4l/v4lgui.ui
index 17b3f5c5e..9254a4a50 100644
--- a/plugins/samplesource/v4l/v4lgui.ui
+++ b/plugins/samplesource/v4l/v4lgui.ui
@@ -100,58 +100,6 @@
- -
-
-
- 3
-
-
-
-
-
- Device Samplerate
-
-
- 4
-
-
- 1
-
-
- Qt::Horizontal
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Samplerate
-
-
-
- -
-
-
-
- 40
- 0
-
-
-
- 1:1
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
-
-
-
diff --git a/plugins/samplesource/v4l/v4linput.cpp b/plugins/samplesource/v4l/v4linput.cpp
index 30c2965fb..21c1da948 100644
--- a/plugins/samplesource/v4l/v4linput.cpp
+++ b/plugins/samplesource/v4l/v4linput.cpp
@@ -39,7 +39,7 @@ QByteArray V4LInput::Settings::serialize() const
{
SimpleSerializer s(1);
s.writeS32(1, m_gain);
- s.writeS32(2, m_samplerate);
+ s.writeS32(2, SAMPLERATE);
return s.final();
}
@@ -54,7 +54,7 @@ bool V4LInput::Settings::deserialize(const QByteArray& data)
if(d.getVersion() == 1) {
d.readS32(1, &m_gain, 0);
- d.readS32(2, &m_samplerate, 0);
+ //d.readS32(2, &m_samplerate, 0);
return true;
} else {
resetToDefaults();
@@ -65,7 +65,6 @@ bool V4LInput::Settings::deserialize(const QByteArray& data)
V4LInput::V4LInput(MessageQueue* msgQueueToGUI) :
SampleSource(msgQueueToGUI),
m_settings(),
- m_dev(0),
m_V4LThread(NULL),
m_deviceDescription()
{
@@ -90,19 +89,8 @@ bool V4LInput::startInput(int device)
{
QMutexLocker mutexLocker(&m_mutex);
- if(m_dev > 0)
- stopInput();
-
- char vendor[256];
- char product[256];
- char serial[256];
- int res;
- int numberOfGains;
-
- vendor[0] = '\0';
- product[0] = '\0';
- serial[0] = '\0';
-
+ if(m_V4LThread)
+ return false;
if(!m_sampleFifo.setSize(4096*16)) {
qCritical("Could not allocate SampleFifo");
@@ -111,27 +99,24 @@ bool V4LInput::startInput(int device)
if((m_V4LThread = new V4LThread(&m_sampleFifo)) == NULL) {
qFatal("out of memory");
- goto failed;
+ return false;
}
- mutexLocker.unlock();
- //applySettings(m_generalSettings, m_settings, true);
+ m_deviceDescription = QString("RTL-SDR /dev/swradio0");
qDebug("V4LInput: start");
MsgReportV4L::create(m_gains)->submit(m_guiMessageQueue);
return true;
-
-failed:
- return false;
}
void V4LInput::stopInput()
{
QMutexLocker mutexLocker(&m_mutex);
- if(m_V4LThread != NULL) {
+ if(m_V4LThread) {
m_V4LThread->stopWork();
+ // wait for thread to quit ?
delete m_V4LThread;
m_V4LThread = NULL;
}
@@ -145,7 +130,7 @@ const QString& V4LInput::getDeviceDescription() const
int V4LInput::getSampleRate() const
{
- int result = m_settings.m_samplerate / 4;
+ int result = SAMPLERATE / 4;
return result;
}
@@ -173,13 +158,13 @@ bool V4LInput::applySettings(const GeneralSettings& generalSettings, const Setti
if((m_generalSettings.m_centerFrequency != generalSettings.m_centerFrequency) || force) {
m_generalSettings.m_centerFrequency = generalSettings.m_centerFrequency;
- if(m_dev > 0)
+ if(m_V4LThread)
m_V4LThread->set_center_freq( (double)(generalSettings.m_centerFrequency
- + (settings.m_samplerate / 4) ));
+ + (SAMPLERATE / 4) ));
}
if((m_settings.m_gain != settings.m_gain) || force) {
m_settings.m_gain = settings.m_gain;
- if(m_dev > 0)
+ if(m_V4LThread)
m_V4LThread->set_tuner_gain((double)m_settings.m_gain);
}
return true;
diff --git a/plugins/samplesource/v4l/v4linput.h b/plugins/samplesource/v4l/v4linput.h
index a491b5dec..c79c1d678 100644
--- a/plugins/samplesource/v4l/v4linput.h
+++ b/plugins/samplesource/v4l/v4linput.h
@@ -32,7 +32,6 @@ class V4LInput : public SampleSource {
public:
struct Settings {
qint32 m_gain;
- qint32 m_samplerate;
Settings();
void resetToDefaults();
@@ -97,7 +96,6 @@ public:
private:
QMutex m_mutex;
Settings m_settings;
- int m_dev;
V4LThread* m_V4LThread;
QString m_deviceDescription;
std::vector m_gains;
diff --git a/plugins/samplesource/v4l/v4lthread.cpp b/plugins/samplesource/v4l/v4lthread.cpp
index 6823ca38c..287d6ed00 100644
--- a/plugins/samplesource/v4l/v4lthread.cpp
+++ b/plugins/samplesource/v4l/v4lthread.cpp
@@ -23,29 +23,29 @@
V4LThread::V4LThread(SampleFifo* sampleFifo, QObject* parent) :
QThread(parent),
m_running(false),
- m_dev(1),
m_convertBuffer(BLOCKSIZE),
m_sampleFifo(sampleFifo)
{
}
V4LThread::~V4LThread()
+{
+}
+
+void V4LThread::stopWork()
{
m_running = false;
}
void V4LThread::run()
{
+ m_running = true;
if (! Init() )
return;
- m_running = true;
-
while(m_running) {
work(BLOCKSIZE);
}
-
- m_running = false;
CloseSource();
}
diff --git a/plugins/samplesource/v4l/v4lthread.h b/plugins/samplesource/v4l/v4lthread.h
index b2bf9ca9f..f51a455ba 100644
--- a/plugins/samplesource/v4l/v4lthread.h
+++ b/plugins/samplesource/v4l/v4lthread.h
@@ -36,7 +36,6 @@ public:
bool Init();
void stopWork();
- void setSamplerate(int samplerate);
void OpenSource(const char *filename);
void CloseSource();
void set_sample_rate(double samp_rate);
@@ -57,10 +56,8 @@ private:
QWaitCondition m_startWaiter;
bool m_running;
- int m_dev;
SampleVector m_convertBuffer;
SampleFifo* m_sampleFifo;
- int m_samplerate;
void run();