1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-07-01 00:15:22 -04:00

Fixed setting of source of same kind with different sequence number

This commit is contained in:
f4exb 2015-10-03 23:59:02 +02:00
parent f9913c7875
commit 1ac49ce8ce
5 changed files with 17 additions and 10 deletions

View File

@ -33,8 +33,8 @@ ENDIF()
############################################################################## ##############################################################################
#include(${QT_USE_FILE}) #include(${QT_USE_FILE})
#set( QT_DEFINITIONS "${QT_DEFINITIONS} -DQT_NO_DEBUG_OUTPUT" ) set( QT_DEFINITIONS "${QT_DEFINITIONS} -DQT_NO_DEBUG_OUTPUT" )
set( QT_DEFINITIONS "${QT_DEFINITIONS}" ) #set( QT_DEFINITIONS "${QT_DEFINITIONS}" )
add_definitions(${QT_DEFINITIONS}) add_definitions(${QT_DEFINITIONS})
if(MSVC) if(MSVC)

View File

@ -65,7 +65,8 @@ public:
bool startAcquisition(); //!< Start acquisition sequence bool startAcquisition(); //!< Start acquisition sequence
void stopAcquistion(); //!< Stop acquisition sequence void stopAcquistion(); //!< Stop acquisition sequence
void setSource(SampleSource* source); //!< Set the unique sample source void setSource(SampleSource* source); //!< Set the sample source type
void setSourceSequence(int sequence); //!< Set the sample source sequence in type
void addSink(SampleSink* sink); //!< Add a sample sink void addSink(SampleSink* sink); //!< Add a sample sink
void removeSink(SampleSink* sink); //!< Remove a sample sink void removeSink(SampleSink* sink); //!< Remove a sample sink
@ -94,6 +95,7 @@ private:
QString m_deviceDescription; QString m_deviceDescription;
SampleSource* m_sampleSource; SampleSource* m_sampleSource;
int m_sampleSourceSequence;
typedef std::list<SampleSink*> SampleSinks; typedef std::list<SampleSink*> SampleSinks;
SampleSinks m_sampleSinks; //!< sample sinks within main thread (usually spectrum, file output) SampleSinks m_sampleSinks; //!< sample sinks within main thread (usually spectrum, file output)

View File

@ -23,7 +23,6 @@
#include "rtlsdrgui.h" #include "rtlsdrgui.h"
#include "dsp/dspcommands.h" #include "dsp/dspcommands.h"
#include "dsp/dspengine.h" #include "dsp/dspengine.h"
#include "util/prettyprint.h"
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgConfigureRTLSDR, Message) MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgConfigureRTLSDR, Message)
MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgReportRTLSDR, Message) MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgReportRTLSDR, Message)
@ -48,8 +47,6 @@ bool RTLSDRInput::init(const Message& message)
bool RTLSDRInput::start(int device) bool RTLSDRInput::start(int device)
{ {
qDebug("%sRTLSDRInput::start: device: %d%s", qPrintable(EscapeColors::red), device, qPrintable(EscapeColors::terminator));
QMutexLocker mutexLocker(&m_mutex); QMutexLocker mutexLocker(&m_mutex);
if (m_dev != 0) if (m_dev != 0)

View File

@ -29,6 +29,7 @@ DSPEngine::DSPEngine(QObject* parent) :
QThread(parent), QThread(parent),
m_state(StNotStarted), m_state(StNotStarted),
m_sampleSource(0), m_sampleSource(0),
m_sampleSourceSequence(0),
m_sampleSinks(), m_sampleSinks(),
m_sampleRate(0), m_sampleRate(0),
m_centerFrequency(0), m_centerFrequency(0),
@ -120,6 +121,12 @@ void DSPEngine::setSource(SampleSource* source)
m_syncMessenger.sendWait(cmd); m_syncMessenger.sendWait(cmd);
} }
void DSPEngine::setSourceSequence(int sequence)
{
qDebug("DSPEngine::setSourceSequence: seq: %d", sequence);
m_sampleSourceSequence = sequence;
}
void DSPEngine::addSink(SampleSink* sink) void DSPEngine::addSink(SampleSink* sink)
{ {
qDebug() << "DSPEngine::addSink: " << sink->objectName().toStdString().c_str(); qDebug() << "DSPEngine::addSink: " << sink->objectName().toStdString().c_str();
@ -460,7 +467,7 @@ DSPEngine::State DSPEngine::gotoRunning()
// Start everything // Start everything
if(!m_sampleSource->start(0)) if(!m_sampleSource->start(m_sampleSourceSequence))
{ {
return gotoError("Could not start sample source"); return gotoError("Could not start sample source");
} }
@ -508,12 +515,12 @@ void DSPEngine::handleSetSource(SampleSource* source)
if(m_sampleSource != 0) if(m_sampleSource != 0)
{ {
qDebug() << "DSPEngine::handleSetSource: set " << source->getDeviceDescription().toStdString().c_str(); qDebug("DSPEngine::handleSetSource: set %s", qPrintable(source->getDeviceDescription()));
connect(m_sampleSource->getSampleFifo(), SIGNAL(dataReady()), this, SLOT(handleData()), Qt::QueuedConnection); connect(m_sampleSource->getSampleFifo(), SIGNAL(dataReady()), this, SLOT(handleData()), Qt::QueuedConnection);
} }
else else
{ {
qDebug() << "DSPEngine::handleSetSource: set none"; qDebug("DSPEngine::handleSetSource: set none");
} }
} }

View File

@ -308,12 +308,13 @@ int PluginManager::selectSampleSourceByIndex(int index)
m_sampleSourceSerial = m_sampleSourceDevices[index].m_sourceSerial; m_sampleSourceSerial = m_sampleSourceDevices[index].m_sourceSerial;
m_sampleSourceSequence = m_sampleSourceDevices[index].m_sourceSequence; m_sampleSourceSequence = m_sampleSourceDevices[index].m_sourceSequence;
qDebug() << "PluginManager::selectSampleSource by index: m_sampleSource at index " << index qDebug() << "PluginManager::selectSampleSourceByIndex: m_sampleSource at index " << index
<< " id: " << m_sampleSourceId.toStdString().c_str() << " id: " << m_sampleSourceId.toStdString().c_str()
<< " ser: " << m_sampleSourceSerial.toStdString().c_str() << " ser: " << m_sampleSourceSerial.toStdString().c_str()
<< " seq: " << m_sampleSourceSequence; << " seq: " << m_sampleSourceSequence;
m_sampleSourcePluginGUI = m_sampleSourceDevices[index].m_plugin->createSampleSourcePluginGUI(m_sampleSourceId); m_sampleSourcePluginGUI = m_sampleSourceDevices[index].m_plugin->createSampleSourcePluginGUI(m_sampleSourceId);
m_dspEngine->setSourceSequence(m_sampleSourceSequence);
return index; return index;
} }