diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f5d6b0dc..5426b7343 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -100,7 +100,7 @@ set(sdrbase_SOURCES sdrbase/dsp/ctcssdetector.cpp sdrbase/dsp/dspcommands.cpp sdrbase/dsp/dspengine.cpp - sdrbase/dsp/dspdeviceengine.cpp + sdrbase/dsp/dspdevicesourceengine.cpp sdrbase/dsp/fftengine.cpp sdrbase/dsp/fftfilt.cxx sdrbase/dsp/fftwindow.cpp @@ -183,7 +183,7 @@ set(sdrbase_HEADERS sdrbase/dsp/decimators.h sdrbase/dsp/dspcommands.h sdrbase/dsp/dspengine.h - sdrbase/dsp/dspdeviceengine.h + sdrbase/dsp/dspdevicesourceengine.h sdrbase/dsp/dsptypes.h sdrbase/dsp/fftengine.h sdrbase/dsp/fftfilt.h diff --git a/fcdhid/fcdprohidcmd.h b/fcdhid/fcdprohidcmd.h index bc502d131..4c1ccff30 100644 --- a/fcdhid/fcdprohidcmd.h +++ b/fcdhid/fcdprohidcmd.h @@ -1,49 +1,49 @@ -#ifndef _FCDPRO_HID_CMD_H_ -#define _FCDPRO_HID_CMD_H_ - -#define FCDPRO_HID_CMD_GET_IF_RSSI 104 // Returns 1 byte unsigned IF RSSI, -35dBm ~=0, -10dBm ~=70. -#define FCDPRO_HID_CMD_GET_PLL_LOCK 105 // Returns 1 bit, true if locked - -#define FCDPRO_HID_CMD_SET_DC_CORR 106 // Send with 2 byte unsigned I DC correction followed by 2 byte unsigned Q DC correction. 32768 is the default centre value. -#define FCDPRO_HID_CMD_GET_DC_CORR 107 // Returns 2 byte unsigned I DC correction followed by 2 byte unsigned Q DC correction. 32768 is the default centre value. -#define FCDPRO_HID_CMD_SET_IQ_CORR 108 // Send with 2 byte signed phase correction followed by 2 byte unsigned gain correction. 0 is the default centre value for phase correction, 32768 is the default centre value for gain. -#define FCDPRO_HID_CMD_GET_IQ_CORR 109 // Returns 2 byte signed phase correction followed by 2 byte unsigned gain correction. 0 is the default centre value for phase correction, 32768 is the default centre value for gain. - -#define FCDPRO_HID_CMD_SET_LNA_GAIN 110 // Send a 1 byte value, see enums for reference -#define FCDPRO_HID_CMD_SET_LNA_ENHANCE 111 -#define FCDPRO_HID_CMD_SET_BAND 112 -#define FCDPRO_HID_CMD_SET_RF_FILTER 113 -#define FCDPRO_HID_CMD_SET_MIXER_GAIN 114 -#define FCDPRO_HID_CMD_SET_BIAS_CURRENT 115 -#define FCDPRO_HID_CMD_SET_MIXER_FILTER 116 -#define FCDPRO_HID_CMD_SET_IF_GAIN1 117 -#define FCDPRO_HID_CMD_SET_IF_GAIN_MODE 118 -#define FCDPRO_HID_CMD_SET_IF_RC_FILTER 119 -#define FCDPRO_HID_CMD_SET_IF_GAIN2 120 -#define FCDPRO_HID_CMD_SET_IF_GAIN3 121 -#define FCDPRO_HID_CMD_SET_IF_FILTER 122 -#define FCDPRO_HID_CMD_SET_IF_GAIN4 123 -#define FCDPRO_HID_CMD_SET_IF_GAIN5 124 -#define FCDPRO_HID_CMD_SET_IF_GAIN6 125 - -#define FCDPRO_HID_CMD_GET_LNA_GAIN 150 // Retrieve a 1 byte value, see enums for reference -#define FCDPRO_HID_CMD_GET_LNA_ENHANCE 151 -#define FCDPRO_HID_CMD_GET_BAND 152 -#define FCDPRO_HID_CMD_GET_RF_FILTER 153 -#define FCDPRO_HID_CMD_GET_MIXER_GAIN 154 -#define FCDPRO_HID_CMD_GET_BIAS_CURRENT 155 -#define FCDPRO_HID_CMD_GET_MIXER_FILTER 156 -#define FCDPRO_HID_CMD_GET_IF_GAIN1 157 -#define FCDPRO_HID_CMD_GET_IF_GAIN_MODE 158 -#define FCDPRO_HID_CMD_GET_IF_RC_FILTER 159 -#define FCDPRO_HID_CMD_GET_IF_GAIN2 160 -#define FCDPRO_HID_CMD_GET_IF_GAIN3 161 -#define FCDPRO_HID_CMD_GET_IF_FILTER 162 -#define FCDPRO_HID_CMD_GET_IF_GAIN4 163 -#define FCDPRO_HID_CMD_GET_IF_GAIN5 164 -#define FCDPRO_HID_CMD_GET_IF_GAIN6 165 - -#define FCDPRO_HID_CMD_I2C_SEND_BYTE 200 -#define FCDPRO_HID_CMD_I2C_RECEIVE_BYTE 201 - -#endif // _FCDPRO_HID_CMD_H_ +#ifndef _FCDPRO_HID_CMD_H_ +#define _FCDPRO_HID_CMD_H_ + +#define FCDPRO_HID_CMD_GET_IF_RSSI 104 // Returns 1 byte unsigned IF RSSI, -35dBm ~=0, -10dBm ~=70. +#define FCDPRO_HID_CMD_GET_PLL_LOCK 105 // Returns 1 bit, true if locked + +#define FCDPRO_HID_CMD_SET_DC_CORR 106 // Send with 2 byte unsigned I DC correction followed by 2 byte unsigned Q DC correction. 32768 is the default centre value. +#define FCDPRO_HID_CMD_GET_DC_CORR 107 // Returns 2 byte unsigned I DC correction followed by 2 byte unsigned Q DC correction. 32768 is the default centre value. +#define FCDPRO_HID_CMD_SET_IQ_CORR 108 // Send with 2 byte signed phase correction followed by 2 byte unsigned gain correction. 0 is the default centre value for phase correction, 32768 is the default centre value for gain. +#define FCDPRO_HID_CMD_GET_IQ_CORR 109 // Returns 2 byte signed phase correction followed by 2 byte unsigned gain correction. 0 is the default centre value for phase correction, 32768 is the default centre value for gain. + +#define FCDPRO_HID_CMD_SET_LNA_GAIN 110 // Send a 1 byte value, see enums for reference +#define FCDPRO_HID_CMD_SET_LNA_ENHANCE 111 +#define FCDPRO_HID_CMD_SET_BAND 112 +#define FCDPRO_HID_CMD_SET_RF_FILTER 113 +#define FCDPRO_HID_CMD_SET_MIXER_GAIN 114 +#define FCDPRO_HID_CMD_SET_BIAS_CURRENT 115 +#define FCDPRO_HID_CMD_SET_MIXER_FILTER 116 +#define FCDPRO_HID_CMD_SET_IF_GAIN1 117 +#define FCDPRO_HID_CMD_SET_IF_GAIN_MODE 118 +#define FCDPRO_HID_CMD_SET_IF_RC_FILTER 119 +#define FCDPRO_HID_CMD_SET_IF_GAIN2 120 +#define FCDPRO_HID_CMD_SET_IF_GAIN3 121 +#define FCDPRO_HID_CMD_SET_IF_FILTER 122 +#define FCDPRO_HID_CMD_SET_IF_GAIN4 123 +#define FCDPRO_HID_CMD_SET_IF_GAIN5 124 +#define FCDPRO_HID_CMD_SET_IF_GAIN6 125 + +#define FCDPRO_HID_CMD_GET_LNA_GAIN 150 // Retrieve a 1 byte value, see enums for reference +#define FCDPRO_HID_CMD_GET_LNA_ENHANCE 151 +#define FCDPRO_HID_CMD_GET_BAND 152 +#define FCDPRO_HID_CMD_GET_RF_FILTER 153 +#define FCDPRO_HID_CMD_GET_MIXER_GAIN 154 +#define FCDPRO_HID_CMD_GET_BIAS_CURRENT 155 +#define FCDPRO_HID_CMD_GET_MIXER_FILTER 156 +#define FCDPRO_HID_CMD_GET_IF_GAIN1 157 +#define FCDPRO_HID_CMD_GET_IF_GAIN_MODE 158 +#define FCDPRO_HID_CMD_GET_IF_RC_FILTER 159 +#define FCDPRO_HID_CMD_GET_IF_GAIN2 160 +#define FCDPRO_HID_CMD_GET_IF_GAIN3 161 +#define FCDPRO_HID_CMD_GET_IF_FILTER 162 +#define FCDPRO_HID_CMD_GET_IF_GAIN4 163 +#define FCDPRO_HID_CMD_GET_IF_GAIN5 164 +#define FCDPRO_HID_CMD_GET_IF_GAIN6 165 + +#define FCDPRO_HID_CMD_I2C_SEND_BYTE 200 +#define FCDPRO_HID_CMD_I2C_RECEIVE_BYTE 201 + +#endif // _FCDPRO_HID_CMD_H_ diff --git a/fcdhid/fcdproplushidcmd.h b/fcdhid/fcdproplushidcmd.h index 76a8c4b8d..1f2f4963e 100644 --- a/fcdhid/fcdproplushidcmd.h +++ b/fcdhid/fcdproplushidcmd.h @@ -1,20 +1,20 @@ -#ifndef _FCD_PRO_PLUS_HID_CMD_H_ -#define _FCD_PRO_PLUS_HID_CMD_H_ - -#define FCDPROPLUS_HID_CMD_SET_LNA_GAIN 110 // Send one byte, 1 on, 0 off -#define FCDPROPLUS_HID_CMD_SET_RF_FILTER 113 // Send one byte enum, see TUNERRFFILTERENUM -#define FCDPROPLUS_HID_CMD_SET_MIXER_GAIN 114 // Send one byte, 1 on, 0 off -#define FCDPROPLUS_HID_CMD_SET_IF_GAIN 117 // Send one byte value, valid value 0 to 59 (dB) -#define FCDPROPLUS_HID_CMD_SET_IF_FILTER 122 // Send one byte enum, see TUNERIFFILTERENUM -#define FCDPROPLUS_HID_CMD_SET_BIAS_TEE 126 // Send one byte, 1 on, 0 off - -#define FCDPROPLUS_HID_CMD_GET_LNA_GAIN 150 // Returns one byte, 1 on, 0 off -#define FCDPROPLUS_HID_CMD_GET_RF_FILTER 153 // Returns one byte enum, see TUNERRFFILTERENUM -#define FCDPROPLUS_HID_CMD_GET_MIXER_GAIN 154 // Returns one byte, 1 on, 0 off -#define FCDPROPLUS_HID_CMD_GET_IF_GAIN 157 // Returns one byte value, valid value 0 to 59 (dB) -#define FCDPROPLUS_HID_CMD_GET_IF_FILTER 162 // Returns one byte enum, see TUNERIFFILTERENUM -#define FCDPROPLUS_HID_CMD_GET_BIAS_TEE 166 // Returns one byte, 1 on, 0 off - -#define FCD_RESET 255 // Reset to bootloader - -#endif // _FCD_PRO_PLUS_HID_CMD_H_ +#ifndef _FCD_PRO_PLUS_HID_CMD_H_ +#define _FCD_PRO_PLUS_HID_CMD_H_ + +#define FCDPROPLUS_HID_CMD_SET_LNA_GAIN 110 // Send one byte, 1 on, 0 off +#define FCDPROPLUS_HID_CMD_SET_RF_FILTER 113 // Send one byte enum, see TUNERRFFILTERENUM +#define FCDPROPLUS_HID_CMD_SET_MIXER_GAIN 114 // Send one byte, 1 on, 0 off +#define FCDPROPLUS_HID_CMD_SET_IF_GAIN 117 // Send one byte value, valid value 0 to 59 (dB) +#define FCDPROPLUS_HID_CMD_SET_IF_FILTER 122 // Send one byte enum, see TUNERIFFILTERENUM +#define FCDPROPLUS_HID_CMD_SET_BIAS_TEE 126 // Send one byte, 1 on, 0 off + +#define FCDPROPLUS_HID_CMD_GET_LNA_GAIN 150 // Returns one byte, 1 on, 0 off +#define FCDPROPLUS_HID_CMD_GET_RF_FILTER 153 // Returns one byte enum, see TUNERRFFILTERENUM +#define FCDPROPLUS_HID_CMD_GET_MIXER_GAIN 154 // Returns one byte, 1 on, 0 off +#define FCDPROPLUS_HID_CMD_GET_IF_GAIN 157 // Returns one byte value, valid value 0 to 59 (dB) +#define FCDPROPLUS_HID_CMD_GET_IF_FILTER 162 // Returns one byte enum, see TUNERIFFILTERENUM +#define FCDPROPLUS_HID_CMD_GET_BIAS_TEE 166 // Returns one byte, 1 on, 0 off + +#define FCD_RESET 255 // Reset to bootloader + +#endif // _FCD_PRO_PLUS_HID_CMD_H_ diff --git a/plugins/samplesource/airspy/airspygui.cpp b/plugins/samplesource/airspy/airspygui.cpp index abadbac4c..c112df36a 100644 --- a/plugins/samplesource/airspy/airspygui.cpp +++ b/plugins/samplesource/airspy/airspygui.cpp @@ -36,7 +36,7 @@ AirspyGui::AirspyGui(DeviceAPI *deviceAPI, QWidget* parent) : m_deviceAPI(deviceAPI), m_settings(), m_sampleSource(0), - m_lastEngineState((DSPDeviceEngine::State)-1) + m_lastEngineState((DSPDeviceSourceEngine::State)-1) { ui->setupUi(this); ui->centerFrequency->setColorMapper(ColorMapper(ColorMapper::ReverseGold)); @@ -391,16 +391,16 @@ void AirspyGui::updateStatus() { switch(state) { - case DSPDeviceEngine::StNotStarted: + case DSPDeviceSourceEngine::StNotStarted: ui->startStop->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); break; - case DSPDeviceEngine::StIdle: + case DSPDeviceSourceEngine::StIdle: ui->startStop->setStyleSheet("QToolButton { background-color : blue; }"); break; - case DSPDeviceEngine::StRunning: + case DSPDeviceSourceEngine::StRunning: ui->startStop->setStyleSheet("QToolButton { background-color : green; }"); break; - case DSPDeviceEngine::StError: + case DSPDeviceSourceEngine::StError: ui->startStop->setStyleSheet("QToolButton { background-color : red; }"); QMessageBox::information(this, tr("Message"), m_deviceAPI->errorMessage()); break; diff --git a/plugins/samplesource/bladerf/bladerfgui.cpp b/plugins/samplesource/bladerf/bladerfgui.cpp index 8c049f93d..e6f02c0d5 100644 --- a/plugins/samplesource/bladerf/bladerfgui.cpp +++ b/plugins/samplesource/bladerf/bladerfgui.cpp @@ -35,7 +35,7 @@ BladerfGui::BladerfGui(DeviceAPI *deviceAPI, QWidget* parent) : m_settings(), m_sampleSource(NULL), m_sampleRate(0), - m_lastEngineState((DSPDeviceEngine::State)-1) + m_lastEngineState((DSPDeviceSourceEngine::State)-1) { ui->setupUi(this); ui->centerFrequency->setColorMapper(ColorMapper(ColorMapper::ReverseGold)); @@ -397,16 +397,16 @@ void BladerfGui::updateStatus() { switch(state) { - case DSPDeviceEngine::StNotStarted: + case DSPDeviceSourceEngine::StNotStarted: ui->startStop->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); break; - case DSPDeviceEngine::StIdle: + case DSPDeviceSourceEngine::StIdle: ui->startStop->setStyleSheet("QToolButton { background-color : blue; }"); break; - case DSPDeviceEngine::StRunning: + case DSPDeviceSourceEngine::StRunning: ui->startStop->setStyleSheet("QToolButton { background-color : green; }"); break; - case DSPDeviceEngine::StError: + case DSPDeviceSourceEngine::StError: ui->startStop->setStyleSheet("QToolButton { background-color : red; }"); QMessageBox::information(this, tr("Message"), m_deviceAPI->errorMessage()); break; diff --git a/plugins/samplesource/fcdpro/fcdprogui.cpp b/plugins/samplesource/fcdpro/fcdprogui.cpp index c3f076a1a..6b8b6aa82 100644 --- a/plugins/samplesource/fcdpro/fcdprogui.cpp +++ b/plugins/samplesource/fcdpro/fcdprogui.cpp @@ -33,7 +33,7 @@ FCDProGui::FCDProGui(DeviceAPI *deviceAPI, QWidget* parent) : m_deviceAPI(deviceAPI), m_settings(), m_sampleSource(NULL), - m_lastEngineState((DSPDeviceEngine::State)-1) + m_lastEngineState((DSPDeviceSourceEngine::State)-1) { ui->setupUi(this); ui->centerFrequency->setColorMapper(ColorMapper(ColorMapper::ReverseGold)); @@ -460,16 +460,16 @@ void FCDProGui::updateStatus() { switch(state) { - case DSPDeviceEngine::StNotStarted: + case DSPDeviceSourceEngine::StNotStarted: ui->startStop->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); break; - case DSPDeviceEngine::StIdle: + case DSPDeviceSourceEngine::StIdle: ui->startStop->setStyleSheet("QToolButton { background-color : blue; }"); break; - case DSPDeviceEngine::StRunning: + case DSPDeviceSourceEngine::StRunning: ui->startStop->setStyleSheet("QToolButton { background-color : green; }"); break; - case DSPDeviceEngine::StError: + case DSPDeviceSourceEngine::StError: ui->startStop->setStyleSheet("QToolButton { background-color : red; }"); QMessageBox::information(this, tr("Message"), m_deviceAPI->errorMessage()); break; diff --git a/plugins/samplesource/fcdproplus/fcdproplusgui.cpp b/plugins/samplesource/fcdproplus/fcdproplusgui.cpp index 3eb23ca65..9ab05fc06 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusgui.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusgui.cpp @@ -34,7 +34,7 @@ FCDProPlusGui::FCDProPlusGui(DeviceAPI *deviceAPI, QWidget* parent) : m_deviceAPI(deviceAPI), m_settings(), m_sampleSource(NULL), - m_lastEngineState((DSPDeviceEngine::State)-1) + m_lastEngineState((DSPDeviceSourceEngine::State)-1) { ui->setupUi(this); @@ -220,16 +220,16 @@ void FCDProPlusGui::updateStatus() { switch(state) { - case DSPDeviceEngine::StNotStarted: + case DSPDeviceSourceEngine::StNotStarted: ui->startStop->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); break; - case DSPDeviceEngine::StIdle: + case DSPDeviceSourceEngine::StIdle: ui->startStop->setStyleSheet("QToolButton { background-color : blue; }"); break; - case DSPDeviceEngine::StRunning: + case DSPDeviceSourceEngine::StRunning: ui->startStop->setStyleSheet("QToolButton { background-color : green; }"); break; - case DSPDeviceEngine::StError: + case DSPDeviceSourceEngine::StError: ui->startStop->setStyleSheet("QToolButton { background-color : red; }"); QMessageBox::information(this, tr("Message"), m_deviceAPI->errorMessage()); break; diff --git a/plugins/samplesource/filesource/filesourcegui.cpp b/plugins/samplesource/filesource/filesourcegui.cpp index 8825e2bd4..34a18fc0b 100644 --- a/plugins/samplesource/filesource/filesourcegui.cpp +++ b/plugins/samplesource/filesource/filesourcegui.cpp @@ -49,7 +49,7 @@ FileSourceGui::FileSourceGui(DeviceAPI *deviceAPI, QWidget* parent) : m_samplesCount(0), m_tickCount(0), m_enableNavTime(false), - m_lastEngineState((DSPDeviceEngine::State)-1) + m_lastEngineState((DSPDeviceSourceEngine::State)-1) { ui->setupUi(this); ui->centerFrequency->setColorMapper(ColorMapper(ColorMapper::ReverseGold)); @@ -239,16 +239,16 @@ void FileSourceGui::updateStatus() { switch(state) { - case DSPDeviceEngine::StNotStarted: + case DSPDeviceSourceEngine::StNotStarted: ui->startStop->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); break; - case DSPDeviceEngine::StIdle: + case DSPDeviceSourceEngine::StIdle: ui->startStop->setStyleSheet("QToolButton { background-color : blue; }"); break; - case DSPDeviceEngine::StRunning: + case DSPDeviceSourceEngine::StRunning: ui->startStop->setStyleSheet("QToolButton { background-color : green; }"); break; - case DSPDeviceEngine::StError: + case DSPDeviceSourceEngine::StError: ui->startStop->setStyleSheet("QToolButton { background-color : red; }"); QMessageBox::information(this, tr("Message"), m_deviceAPI->errorMessage()); break; diff --git a/plugins/samplesource/hackrf/hackrfgui.cpp b/plugins/samplesource/hackrf/hackrfgui.cpp index 6de82dd94..385f29850 100644 --- a/plugins/samplesource/hackrf/hackrfgui.cpp +++ b/plugins/samplesource/hackrf/hackrfgui.cpp @@ -36,7 +36,7 @@ HackRFGui::HackRFGui(DeviceAPI *deviceAPI, QWidget* parent) : m_deviceAPI(deviceAPI), m_settings(), m_sampleSource(NULL), - m_lastEngineState((DSPDeviceEngine::State)-1) + m_lastEngineState((DSPDeviceSourceEngine::State)-1) { ui->setupUi(this); ui->centerFrequency->setColorMapper(ColorMapper(ColorMapper::ReverseGold)); @@ -374,16 +374,16 @@ void HackRFGui::updateStatus() { switch(state) { - case DSPDeviceEngine::StNotStarted: + case DSPDeviceSourceEngine::StNotStarted: ui->startStop->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); break; - case DSPDeviceEngine::StIdle: + case DSPDeviceSourceEngine::StIdle: ui->startStop->setStyleSheet("QToolButton { background-color : blue; }"); break; - case DSPDeviceEngine::StRunning: + case DSPDeviceSourceEngine::StRunning: ui->startStop->setStyleSheet("QToolButton { background-color : green; }"); break; - case DSPDeviceEngine::StError: + case DSPDeviceSourceEngine::StError: ui->startStop->setStyleSheet("QToolButton { background-color : red; }"); QMessageBox::information(this, tr("Message"), m_deviceAPI->errorMessage()); break; diff --git a/plugins/samplesource/rtlsdr/rtlsdrgui.cpp b/plugins/samplesource/rtlsdr/rtlsdrgui.cpp index ea3fe6045..7a8bbd56e 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrgui.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrgui.cpp @@ -34,7 +34,7 @@ RTLSDRGui::RTLSDRGui(DeviceAPI *deviceAPI, QWidget* parent) : m_deviceAPI(deviceAPI), m_settings(), m_sampleSource(0), - m_lastEngineState((DSPDeviceEngine::State)-1) + m_lastEngineState((DSPDeviceSourceEngine::State)-1) { ui->setupUi(this); ui->centerFrequency->setColorMapper(ColorMapper(ColorMapper::ReverseGold)); @@ -357,16 +357,16 @@ void RTLSDRGui::updateStatus() { switch(state) { - case DSPDeviceEngine::StNotStarted: + case DSPDeviceSourceEngine::StNotStarted: ui->startStop->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); break; - case DSPDeviceEngine::StIdle: + case DSPDeviceSourceEngine::StIdle: ui->startStop->setStyleSheet("QToolButton { background-color : blue; }"); break; - case DSPDeviceEngine::StRunning: + case DSPDeviceSourceEngine::StRunning: ui->startStop->setStyleSheet("QToolButton { background-color : green; }"); break; - case DSPDeviceEngine::StError: + case DSPDeviceSourceEngine::StError: ui->startStop->setStyleSheet("QToolButton { background-color : red; }"); QMessageBox::information(this, tr("Message"), m_deviceAPI->errorMessage()); break; diff --git a/plugins/samplesource/sdrdaemon/sdrdaemongui.cpp b/plugins/samplesource/sdrdaemon/sdrdaemongui.cpp index 2b9f72cca..a614214a2 100644 --- a/plugins/samplesource/sdrdaemon/sdrdaemongui.cpp +++ b/plugins/samplesource/sdrdaemon/sdrdaemongui.cpp @@ -47,7 +47,7 @@ SDRdaemonGui::SDRdaemonGui(DeviceAPI *deviceAPI, QWidget* parent) : m_deviceAPI(deviceAPI), m_sampleSource(NULL), m_acquisition(false), - m_lastEngineState((DSPDeviceEngine::State)-1), + m_lastEngineState((DSPDeviceSourceEngine::State)-1), m_sampleRate(0), m_sampleRateStream(0), m_centerFrequency(0), @@ -705,16 +705,16 @@ void SDRdaemonGui::updateStatus() { switch(state) { - case DSPDeviceEngine::StNotStarted: + case DSPDeviceSourceEngine::StNotStarted: ui->startStop->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); break; - case DSPDeviceEngine::StIdle: + case DSPDeviceSourceEngine::StIdle: ui->startStop->setStyleSheet("QToolButton { background-color : blue; }"); break; - case DSPDeviceEngine::StRunning: + case DSPDeviceSourceEngine::StRunning: ui->startStop->setStyleSheet("QToolButton { background-color : green; }"); break; - case DSPDeviceEngine::StError: + case DSPDeviceSourceEngine::StError: ui->startStop->setStyleSheet("QToolButton { background-color : red; }"); QMessageBox::information(this, tr("Message"), m_deviceAPI->errorMessage()); break; diff --git a/plugins/samplesource/sdrdaemonfec/sdrdaemonfecgui.cpp b/plugins/samplesource/sdrdaemonfec/sdrdaemonfecgui.cpp index af8199a74..072af202c 100644 --- a/plugins/samplesource/sdrdaemonfec/sdrdaemonfecgui.cpp +++ b/plugins/samplesource/sdrdaemonfec/sdrdaemonfecgui.cpp @@ -47,7 +47,7 @@ SDRdaemonFECGui::SDRdaemonFECGui(DeviceAPI *deviceAPI, QWidget* parent) : m_deviceAPI(deviceAPI), m_sampleSource(NULL), m_acquisition(false), - m_lastEngineState((DSPDeviceEngine::State)-1), + m_lastEngineState((DSPDeviceSourceEngine::State)-1), m_sampleRate(0), m_centerFrequency(0), m_framesDecodingStatus(0), @@ -659,16 +659,16 @@ void SDRdaemonFECGui::updateStatus() { switch(state) { - case DSPDeviceEngine::StNotStarted: + case DSPDeviceSourceEngine::StNotStarted: ui->startStop->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); break; - case DSPDeviceEngine::StIdle: + case DSPDeviceSourceEngine::StIdle: ui->startStop->setStyleSheet("QToolButton { background-color : blue; }"); break; - case DSPDeviceEngine::StRunning: + case DSPDeviceSourceEngine::StRunning: ui->startStop->setStyleSheet("QToolButton { background-color : green; }"); break; - case DSPDeviceEngine::StError: + case DSPDeviceSourceEngine::StError: ui->startStop->setStyleSheet("QToolButton { background-color : red; }"); QMessageBox::information(this, tr("Message"), m_deviceAPI->errorMessage()); break; diff --git a/sdrbase/audio/audiodeviceinfo.h b/sdrbase/audio/audiodeviceinfo.h index c2a018651..2a6b45e28 100644 --- a/sdrbase/audio/audiodeviceinfo.h +++ b/sdrbase/audio/audiodeviceinfo.h @@ -1,49 +1,49 @@ -/////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // -// written by Christian Daniel // -// // -// This program is free software; you can redistribute it and/or modify // -// it under the terms of the GNU General Public License as published by // -// the Free Software Foundation as version 3 of the License, or // -// // -// This program is distributed in the hope that it will be useful, // -// but WITHOUT ANY WARRANTY; without even the implied warranty of // -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // -// GNU General Public License V3 for more details. // -// // -// You should have received a copy of the GNU General Public License // -// along with this program. If not, see . // -/////////////////////////////////////////////////////////////////////////////////// - -#ifndef INCLUDE_AUDIODEVICEINFO_H -#define INCLUDE_AUDIODEVICEINFO_H - -#include -#include "util/export.h" - -class SDRANGEL_API AudioDeviceInfo { -public: - struct Device { - QString name; - QString api; - int id; - - Device(const QString& _name, const QString& _api, int _id) : - name(_name), - api(_api), - id(_id) - { } - }; - typedef QList Devices; - - AudioDeviceInfo(); - - int match(const QString& api, const QString device) const; - - const Devices& getDevices() const { return m_devices; } - -private: - Devices m_devices; -}; - -#endif // INCLUDE_AUDIODEVICEINFO_H +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_AUDIODEVICEINFO_H +#define INCLUDE_AUDIODEVICEINFO_H + +#include +#include "util/export.h" + +class SDRANGEL_API AudioDeviceInfo { +public: + struct Device { + QString name; + QString api; + int id; + + Device(const QString& _name, const QString& _api, int _id) : + name(_name), + api(_api), + id(_id) + { } + }; + typedef QList Devices; + + AudioDeviceInfo(); + + int match(const QString& api, const QString device) const; + + const Devices& getDevices() const { return m_devices; } + +private: + Devices m_devices; +}; + +#endif // INCLUDE_AUDIODEVICEINFO_H diff --git a/sdrbase/device/deviceapi.cpp b/sdrbase/device/deviceapi.cpp index ca9004689..e745bed33 100644 --- a/sdrbase/device/deviceapi.cpp +++ b/sdrbase/device/deviceapi.cpp @@ -25,7 +25,7 @@ DeviceAPI::DeviceAPI(MainWindow *mainWindow, int deviceTabIndex, - DSPDeviceEngine *deviceEngine, + DSPDeviceSourceEngine *deviceEngine, GLSpectrum *glSpectrum, ChannelWindow *channelWindow) : m_mainWindow(mainWindow), @@ -82,7 +82,7 @@ void DeviceAPI::stopAcquisition() m_deviceEngine->stopAcquistion(); } -DSPDeviceEngine::State DeviceAPI::state() const +DSPDeviceSourceEngine::State DeviceAPI::state() const { return m_deviceEngine->state(); } diff --git a/sdrbase/device/deviceapi.h b/sdrbase/device/deviceapi.h index c155d1d7f..24b6e6831 100644 --- a/sdrbase/device/deviceapi.h +++ b/sdrbase/device/deviceapi.h @@ -20,12 +20,12 @@ #include #include +#include "../dsp/dspdevicesourceengine.h" #include "util/export.h" -#include "dsp/dspdeviceengine.h" class MainWindow; -class DSPDeviceEngine; +class DSPDeviceSourceEngine; class GLSpectrum; class ChannelWindow; class BasebandSampleSink; @@ -51,7 +51,7 @@ public: bool initAcquisition(); //!< Initialize device engine acquisition sequence bool startAcquisition(); //!< Start device engine acquisition sequence void stopAcquisition(); //!< Stop device engine acquisition sequence - DSPDeviceEngine::State state() const; //!< device engine state + DSPDeviceSourceEngine::State state() const; //!< device engine state QString errorMessage(); //!< Return the current device engine error message uint getDeviceUID() const; //!< Return the current device engine unique ID MessageQueue *getDeviceInputMessageQueue(); @@ -105,7 +105,7 @@ protected: DeviceAPI(MainWindow *mainWindow, int deviceTabIndex, - DSPDeviceEngine *deviceEngine, + DSPDeviceSourceEngine *deviceEngine, GLSpectrum *glSpectrum, ChannelWindow *channelWindow); ~DeviceAPI(); @@ -114,7 +114,7 @@ protected: MainWindow *m_mainWindow; int m_deviceTabIndex; - DSPDeviceEngine *m_deviceEngine; + DSPDeviceSourceEngine *m_deviceEngine; GLSpectrum *m_spectrum; ChannelWindow *m_channelWindow; diff --git a/sdrbase/dsp/dspdeviceengine.cpp b/sdrbase/dsp/dspdevicesourceengine.cpp similarity index 90% rename from sdrbase/dsp/dspdeviceengine.cpp rename to sdrbase/dsp/dspdevicesourceengine.cpp index 371ba0ff2..564d9b0fb 100644 --- a/sdrbase/dsp/dspdeviceengine.cpp +++ b/sdrbase/dsp/dspdevicesourceengine.cpp @@ -15,17 +15,18 @@ // along with this program. If not, see . // /////////////////////////////////////////////////////////////////////////////////// +#include "dspdevicesourceengine.h" + #include #include #include #include #include -#include "dsp/dspdeviceengine.h" #include "dsp/samplefifo.h" #include "dsp/dspcommands.h" #include "threadedbasebandsamplesink.h" -DSPDeviceEngine::DSPDeviceEngine(uint uid, QObject* parent) : +DSPDeviceSourceEngine::DSPDeviceSourceEngine(uint uid, QObject* parent) : m_uid(uid), QThread(parent), m_state(StNotStarted), @@ -48,12 +49,12 @@ DSPDeviceEngine::DSPDeviceEngine(uint uid, QObject* parent) : moveToThread(this); } -DSPDeviceEngine::~DSPDeviceEngine() +DSPDeviceSourceEngine::~DSPDeviceSourceEngine() { wait(); } -void DSPDeviceEngine::run() +void DSPDeviceSourceEngine::run() { qDebug() << "DSPDeviceEngine::run"; @@ -63,20 +64,20 @@ void DSPDeviceEngine::run() exec(); } -void DSPDeviceEngine::start() +void DSPDeviceSourceEngine::start() { qDebug() << "DSPDeviceEngine::start"; QThread::start(); } -void DSPDeviceEngine::stop() +void DSPDeviceSourceEngine::stop() { qDebug() << "DSPDeviceEngine::stop"; DSPExit cmd; m_syncMessenger.sendWait(cmd); } -bool DSPDeviceEngine::initAcquisition() +bool DSPDeviceSourceEngine::initAcquisition() { qDebug() << "DSPDeviceEngine::initAcquisition"; DSPAcquisitionInit cmd; @@ -84,7 +85,7 @@ bool DSPDeviceEngine::initAcquisition() return m_syncMessenger.sendWait(cmd) == StReady; } -bool DSPDeviceEngine::startAcquisition() +bool DSPDeviceSourceEngine::startAcquisition() { qDebug() << "DSPDeviceEngine::startAcquisition"; DSPAcquisitionStart cmd; @@ -92,7 +93,7 @@ bool DSPDeviceEngine::startAcquisition() return m_syncMessenger.sendWait(cmd) == StRunning; } -void DSPDeviceEngine::stopAcquistion() +void DSPDeviceSourceEngine::stopAcquistion() { qDebug() << "DSPDeviceEngine::stopAcquistion"; DSPAcquisitionStop cmd; @@ -105,55 +106,55 @@ void DSPDeviceEngine::stopAcquistion() } } -void DSPDeviceEngine::setSource(DeviceSampleSource* source) +void DSPDeviceSourceEngine::setSource(DeviceSampleSource* source) { qDebug() << "DSPDeviceEngine::setSource"; DSPSetSource cmd(source); m_syncMessenger.sendWait(cmd); } -void DSPDeviceEngine::setSourceSequence(int sequence) +void DSPDeviceSourceEngine::setSourceSequence(int sequence) { qDebug("DSPDeviceEngine::setSourceSequence: seq: %d", sequence); m_sampleSourceSequence = sequence; } -void DSPDeviceEngine::addSink(BasebandSampleSink* sink) +void DSPDeviceSourceEngine::addSink(BasebandSampleSink* sink) { qDebug() << "DSPDeviceEngine::addSink: " << sink->objectName().toStdString().c_str(); DSPAddSink cmd(sink); m_syncMessenger.sendWait(cmd); } -void DSPDeviceEngine::removeSink(BasebandSampleSink* sink) +void DSPDeviceSourceEngine::removeSink(BasebandSampleSink* sink) { qDebug() << "DSPDeviceEngine::removeSink: " << sink->objectName().toStdString().c_str(); DSPRemoveSink cmd(sink); m_syncMessenger.sendWait(cmd); } -void DSPDeviceEngine::addThreadedSink(ThreadedBasebandSampleSink* sink) +void DSPDeviceSourceEngine::addThreadedSink(ThreadedBasebandSampleSink* sink) { qDebug() << "DSPDeviceEngine::addThreadedSink: " << sink->objectName().toStdString().c_str(); DSPAddThreadedSampleSink cmd(sink); m_syncMessenger.sendWait(cmd); } -void DSPDeviceEngine::removeThreadedSink(ThreadedBasebandSampleSink* sink) +void DSPDeviceSourceEngine::removeThreadedSink(ThreadedBasebandSampleSink* sink) { qDebug() << "DSPDeviceEngine::removeThreadedSink: " << sink->objectName().toStdString().c_str(); DSPRemoveThreadedSampleSink cmd(sink); m_syncMessenger.sendWait(cmd); } -void DSPDeviceEngine::configureCorrections(bool dcOffsetCorrection, bool iqImbalanceCorrection) +void DSPDeviceSourceEngine::configureCorrections(bool dcOffsetCorrection, bool iqImbalanceCorrection) { qDebug() << "DSPDeviceEngine::configureCorrections"; DSPConfigureCorrection* cmd = new DSPConfigureCorrection(dcOffsetCorrection, iqImbalanceCorrection); m_inputMessageQueue.push(cmd); } -QString DSPDeviceEngine::errorMessage() +QString DSPDeviceSourceEngine::errorMessage() { qDebug() << "DSPDeviceEngine::errorMessage"; DSPGetErrorMessage cmd; @@ -161,7 +162,7 @@ QString DSPDeviceEngine::errorMessage() return cmd.getErrorMessage(); } -QString DSPDeviceEngine::sourceDeviceDescription() +QString DSPDeviceSourceEngine::sourceDeviceDescription() { qDebug() << "DSPDeviceEngine::sourceDeviceDescription"; DSPGetSourceDeviceDescription cmd; @@ -169,7 +170,7 @@ QString DSPDeviceEngine::sourceDeviceDescription() return cmd.getDeviceDescription(); } -void DSPDeviceEngine::dcOffset(SampleVector::iterator begin, SampleVector::iterator end) +void DSPDeviceSourceEngine::dcOffset(SampleVector::iterator begin, SampleVector::iterator end) { double count; int io = 0; @@ -190,7 +191,7 @@ void DSPDeviceEngine::dcOffset(SampleVector::iterator begin, SampleVector::itera m_qOffset = (15.0 * m_qOffset + (double)qo / count) / 16.0; } -void DSPDeviceEngine::imbalance(SampleVector::iterator begin, SampleVector::iterator end) +void DSPDeviceSourceEngine::imbalance(SampleVector::iterator begin, SampleVector::iterator end) { int iMin = 0; int iMax = 0; @@ -239,7 +240,7 @@ void DSPDeviceEngine::imbalance(SampleVector::iterator begin, SampleVector::iter } } -void DSPDeviceEngine::work() +void DSPDeviceSourceEngine::work() { SampleFifo* sampleFifo = m_sampleSource->getSampleFifo(); std::size_t samplesDone = 0; @@ -318,7 +319,7 @@ void DSPDeviceEngine::work() // ^ | // +-----------------------+ -DSPDeviceEngine::State DSPDeviceEngine::gotoIdle() +DSPDeviceSourceEngine::State DSPDeviceSourceEngine::gotoIdle() { qDebug() << "DSPDeviceEngine::gotoIdle"; @@ -354,7 +355,7 @@ DSPDeviceEngine::State DSPDeviceEngine::gotoIdle() return StIdle; } -DSPDeviceEngine::State DSPDeviceEngine::gotoInit() +DSPDeviceSourceEngine::State DSPDeviceSourceEngine::gotoInit() { qDebug() << "DSPDeviceEngine::gotoInit"; @@ -415,7 +416,7 @@ DSPDeviceEngine::State DSPDeviceEngine::gotoInit() return StReady; } -DSPDeviceEngine::State DSPDeviceEngine::gotoRunning() +DSPDeviceSourceEngine::State DSPDeviceSourceEngine::gotoRunning() { qDebug() << "DSPDeviceEngine::gotoRunning"; @@ -465,7 +466,7 @@ DSPDeviceEngine::State DSPDeviceEngine::gotoRunning() return StRunning; } -DSPDeviceEngine::State DSPDeviceEngine::gotoError(const QString& errorMessage) +DSPDeviceSourceEngine::State DSPDeviceSourceEngine::gotoError(const QString& errorMessage) { qDebug() << "DSPDeviceEngine::gotoError"; @@ -475,7 +476,7 @@ DSPDeviceEngine::State DSPDeviceEngine::gotoError(const QString& errorMessage) return StError; } -void DSPDeviceEngine::handleSetSource(DeviceSampleSource* source) +void DSPDeviceSourceEngine::handleSetSource(DeviceSampleSource* source) { gotoIdle(); @@ -497,7 +498,7 @@ void DSPDeviceEngine::handleSetSource(DeviceSampleSource* source) } } -void DSPDeviceEngine::handleData() +void DSPDeviceSourceEngine::handleData() { if(m_state == StRunning) { @@ -505,7 +506,7 @@ void DSPDeviceEngine::handleData() } } -void DSPDeviceEngine::handleSynchronousMessages() +void DSPDeviceSourceEngine::handleSynchronousMessages() { Message *message = m_syncMessenger.getMessage(); qDebug() << "DSPDeviceEngine::handleSynchronousMessages: " << message->getIdentifier(); @@ -576,7 +577,7 @@ void DSPDeviceEngine::handleSynchronousMessages() m_syncMessenger.done(m_state); } -void DSPDeviceEngine::handleInputMessages() +void DSPDeviceSourceEngine::handleInputMessages() { qDebug() << "DSPDeviceEngine::handleInputMessages"; diff --git a/sdrbase/dsp/dspdeviceengine.h b/sdrbase/dsp/dspdevicesourceengine.h similarity index 97% rename from sdrbase/dsp/dspdeviceengine.h rename to sdrbase/dsp/dspdevicesourceengine.h index c46b039fd..36bdc4186 100644 --- a/sdrbase/dsp/dspdeviceengine.h +++ b/sdrbase/dsp/dspdevicesourceengine.h @@ -33,7 +33,7 @@ class DeviceSampleSource; class BasebandSampleSink; class ThreadedBasebandSampleSink; -class SDRANGEL_API DSPDeviceEngine : public QThread { +class SDRANGEL_API DSPDeviceSourceEngine : public QThread { Q_OBJECT public: @@ -45,8 +45,8 @@ public: StError //!< engine is in error }; - DSPDeviceEngine(uint uid, QObject* parent = NULL); - ~DSPDeviceEngine(); + DSPDeviceSourceEngine(uint uid, QObject* parent = NULL); + ~DSPDeviceSourceEngine(); uint getUID() const { return m_uid; } diff --git a/sdrbase/dsp/dspengine.cpp b/sdrbase/dsp/dspengine.cpp index aee4cb648..c968441c8 100644 --- a/sdrbase/dsp/dspengine.cpp +++ b/sdrbase/dsp/dspengine.cpp @@ -28,7 +28,7 @@ DSPEngine::DSPEngine() : DSPEngine::~DSPEngine() { - std::vector::iterator it = m_deviceEngines.begin(); + std::vector::iterator it = m_deviceEngines.begin(); while (it != m_deviceEngines.end()) { @@ -43,9 +43,9 @@ DSPEngine *DSPEngine::instance() return dspEngine; } -DSPDeviceEngine *DSPEngine::addDeviceEngine() +DSPDeviceSourceEngine *DSPEngine::addDeviceEngine() { - m_deviceEngines.push_back(new DSPDeviceEngine(m_deviceEnginesUIDSequence)); + m_deviceEngines.push_back(new DSPDeviceSourceEngine(m_deviceEnginesUIDSequence)); m_deviceEnginesUIDSequence++; return m_deviceEngines.back(); } @@ -54,7 +54,7 @@ void DSPEngine::removeLastDeviceEngine() { if (m_deviceEngines.size() > 0) { - DSPDeviceEngine *lastDeviceEngine = m_deviceEngines.back(); + DSPDeviceSourceEngine *lastDeviceEngine = m_deviceEngines.back(); delete lastDeviceEngine; m_deviceEngines.pop_back(); m_deviceEnginesUIDSequence--; @@ -63,7 +63,7 @@ void DSPEngine::removeLastDeviceEngine() void DSPEngine::stopAllAcquisitions() { - std::vector::iterator it = m_deviceEngines.begin(); + std::vector::iterator it = m_deviceEngines.begin(); while (it != m_deviceEngines.end()) { @@ -75,7 +75,7 @@ void DSPEngine::stopAllAcquisitions() void DSPEngine::stopAllDeviceEngines() { - std::vector::iterator it = m_deviceEngines.begin(); + std::vector::iterator it = m_deviceEngines.begin(); while (it != m_deviceEngines.end()) { @@ -118,9 +118,9 @@ void DSPEngine::removeAudioSink(AudioFifo* audioFifo) m_audioOutput.removeFifo(audioFifo); } -DSPDeviceEngine *DSPEngine::getDeviceEngineByUID(uint uid) +DSPDeviceSourceEngine *DSPEngine::getDeviceEngineByUID(uint uid) { - std::vector::iterator it = m_deviceEngines.begin(); + std::vector::iterator it = m_deviceEngines.begin(); while (it != m_deviceEngines.end()) { diff --git a/sdrbase/dsp/dspengine.h b/sdrbase/dsp/dspengine.h index 90593fab5..247c354b5 100644 --- a/sdrbase/dsp/dspengine.h +++ b/sdrbase/dsp/dspengine.h @@ -1,97 +1,97 @@ -/////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2015 F4EXB // -// written by Edouard Griffiths // -// // -// This program is free software; you can redistribute it and/or modify // -// it under the terms of the GNU General Public License as published by // -// the Free Software Foundation as version 3 of the License, or // -// // -// This program is distributed in the hope that it will be useful, // -// but WITHOUT ANY WARRANTY; without even the implied warranty of // -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // -// GNU General Public License V3 for more details. // -// // -// You should have received a copy of the GNU General Public License // -// along with this program. If not, see . // -/////////////////////////////////////////////////////////////////////////////////// - -#ifndef INCLUDE_DSPENGINE_H -#define INCLUDE_DSPENGINE_H - -#include -#include -#include "dsp/dspdeviceengine.h" -#include "audio/audiooutput.h" -#include "util/export.h" -#ifdef DSD_USE_SERIALDV -#include "dsp/dvserialengine.h" -#endif - -class DSPDeviceEngine; -class ThreadedBasebandSampleSink; - -class SDRANGEL_API DSPEngine : public QObject { - Q_OBJECT -public: - DSPEngine(); - ~DSPEngine(); - - static DSPEngine *instance(); - - uint getAudioSampleRate() const { return m_audioSampleRate; } - - DSPDeviceEngine *addDeviceEngine(); - void removeLastDeviceEngine(); - void stopAllAcquisitions(); - void stopAllDeviceEngines(); - - void startAudio(); - void stopAudio(); - void startAudioImmediate(); - void stopAudioImmediate(); - - DSPDeviceEngine *getDeviceEngineByIndex(uint deviceIndex) { return m_deviceEngines[deviceIndex]; } - DSPDeviceEngine *getDeviceEngineByUID(uint uid); - - void addAudioSink(AudioFifo* audioFifo); //!< Add the audio sink - void removeAudioSink(AudioFifo* audioFifo); //!< Remove the audio sink - - // Serial DV methods: - - bool hasDVSerialSupport() - { -#ifdef DSD_USE_SERIALDV - return m_dvSerialSupport; -#else - return false; -#endif - } - - void setDVSerialSupport(bool support); - - void getDVSerialNames(std::vector& deviceNames) - { -#ifdef DSD_USE_SERIALDV - m_dvSerialEngine.getDevicesNames(deviceNames); -#endif - } - - void pushMbeFrame(const unsigned char *mbeFrame, int mbeRateIndex, int mbeVolumeIndex, unsigned char channels, AudioFifo *audioFifo) - { -#ifdef DSD_USE_SERIALDV - m_dvSerialEngine.pushMbeFrame(mbeFrame, mbeRateIndex, mbeVolumeIndex, channels, audioFifo); -#endif - } - -private: - std::vector m_deviceEngines; - uint m_deviceEnginesUIDSequence; - AudioOutput m_audioOutput; - uint m_audioSampleRate; - bool m_dvSerialSupport; -#ifdef DSD_USE_SERIALDV - DVSerialEngine m_dvSerialEngine; -#endif -}; - -#endif // INCLUDE_DSPENGINE_H +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2015 F4EXB // +// written by Edouard Griffiths // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_DSPENGINE_H +#define INCLUDE_DSPENGINE_H + +#include +#include +#include "audio/audiooutput.h" +#include "dspdevicesourceengine.h" +#include "util/export.h" +#ifdef DSD_USE_SERIALDV +#include "dsp/dvserialengine.h" +#endif + +class DSPDeviceSourceEngine; +class ThreadedBasebandSampleSink; + +class SDRANGEL_API DSPEngine : public QObject { + Q_OBJECT +public: + DSPEngine(); + ~DSPEngine(); + + static DSPEngine *instance(); + + uint getAudioSampleRate() const { return m_audioSampleRate; } + + DSPDeviceSourceEngine *addDeviceEngine(); + void removeLastDeviceEngine(); + void stopAllAcquisitions(); + void stopAllDeviceEngines(); + + void startAudio(); + void stopAudio(); + void startAudioImmediate(); + void stopAudioImmediate(); + + DSPDeviceSourceEngine *getDeviceEngineByIndex(uint deviceIndex) { return m_deviceEngines[deviceIndex]; } + DSPDeviceSourceEngine *getDeviceEngineByUID(uint uid); + + void addAudioSink(AudioFifo* audioFifo); //!< Add the audio sink + void removeAudioSink(AudioFifo* audioFifo); //!< Remove the audio sink + + // Serial DV methods: + + bool hasDVSerialSupport() + { +#ifdef DSD_USE_SERIALDV + return m_dvSerialSupport; +#else + return false; +#endif + } + + void setDVSerialSupport(bool support); + + void getDVSerialNames(std::vector& deviceNames) + { +#ifdef DSD_USE_SERIALDV + m_dvSerialEngine.getDevicesNames(deviceNames); +#endif + } + + void pushMbeFrame(const unsigned char *mbeFrame, int mbeRateIndex, int mbeVolumeIndex, unsigned char channels, AudioFifo *audioFifo) + { +#ifdef DSD_USE_SERIALDV + m_dvSerialEngine.pushMbeFrame(mbeFrame, mbeRateIndex, mbeVolumeIndex, channels, audioFifo); +#endif + } + +private: + std::vector m_deviceEngines; + uint m_deviceEnginesUIDSequence; + AudioOutput m_audioOutput; + uint m_audioSampleRate; + bool m_dvSerialSupport; +#ifdef DSD_USE_SERIALDV + DVSerialEngine m_dvSerialEngine; +#endif +}; + +#endif // INCLUDE_DSPENGINE_H diff --git a/sdrbase/gui/mypositiondialog.cpp b/sdrbase/gui/mypositiondialog.cpp index ede97ebe1..6b84f1fff 100644 --- a/sdrbase/gui/mypositiondialog.cpp +++ b/sdrbase/gui/mypositiondialog.cpp @@ -1,45 +1,45 @@ -/////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 F4EXB // -// written by Edouard Griffiths // -// // -// OpenGL interface modernization. // -// See: http://doc.qt.io/qt-5/qopenglshaderprogram.html // -// // -// This program is free software; you can redistribute it and/or modify // -// it under the terms of the GNU General Public License as published by // -// the Free Software Foundation as version 3 of the License, or // -// // -// This program is distributed in the hope that it will be useful, // -// but WITHOUT ANY WARRANTY; without even the implied warranty of // -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // -// GNU General Public License V3 for more details. // -// // -// You should have received a copy of the GNU General Public License // -// along with this program. If not, see . // -/////////////////////////////////////////////////////////////////////////////////// - -#include "gui/mypositiondialog.h" -#include "ui_myposdialog.h" - - -MyPositionDialog::MyPositionDialog(MainSettings& mainSettings, QWidget* parent) : - m_mainSettings(mainSettings), - QDialog(parent), - ui(new Ui::MyPositionDialog) -{ - ui->setupUi(this); - ui->latitudeSpinBox->setValue(m_mainSettings.getLatitude()); - ui->longitudeSpinBox->setValue(m_mainSettings.getLongitude()); -} - -MyPositionDialog::~MyPositionDialog() -{ - delete ui; -} - -void MyPositionDialog::accept() -{ - m_mainSettings.setLatitude(ui->latitudeSpinBox->value()); - m_mainSettings.setLongitude(ui->longitudeSpinBox->value()); - QDialog::accept(); -} +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2016 F4EXB // +// written by Edouard Griffiths // +// // +// OpenGL interface modernization. // +// See: http://doc.qt.io/qt-5/qopenglshaderprogram.html // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#include "gui/mypositiondialog.h" +#include "ui_myposdialog.h" + + +MyPositionDialog::MyPositionDialog(MainSettings& mainSettings, QWidget* parent) : + m_mainSettings(mainSettings), + QDialog(parent), + ui(new Ui::MyPositionDialog) +{ + ui->setupUi(this); + ui->latitudeSpinBox->setValue(m_mainSettings.getLatitude()); + ui->longitudeSpinBox->setValue(m_mainSettings.getLongitude()); +} + +MyPositionDialog::~MyPositionDialog() +{ + delete ui; +} + +void MyPositionDialog::accept() +{ + m_mainSettings.setLatitude(ui->latitudeSpinBox->value()); + m_mainSettings.setLongitude(ui->longitudeSpinBox->value()); + QDialog::accept(); +} diff --git a/sdrbase/gui/mypositiondialog.h b/sdrbase/gui/mypositiondialog.h index 185e4d3e8..89bf087ac 100644 --- a/sdrbase/gui/mypositiondialog.h +++ b/sdrbase/gui/mypositiondialog.h @@ -1,46 +1,46 @@ -/////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2016 F4EXB // -// written by Edouard Griffiths // -// // -// OpenGL interface modernization. // -// See: http://doc.qt.io/qt-5/qopenglshaderprogram.html // -// // -// This program is free software; you can redistribute it and/or modify // -// it under the terms of the GNU General Public License as published by // -// the Free Software Foundation as version 3 of the License, or // -// // -// This program is distributed in the hope that it will be useful, // -// but WITHOUT ANY WARRANTY; without even the implied warranty of // -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // -// GNU General Public License V3 for more details. // -// // -// You should have received a copy of the GNU General Public License // -// along with this program. If not, see . // -/////////////////////////////////////////////////////////////////////////////////// - -#ifndef SDRBASE_GUI_MYPOSITIONDIALOG_H_ -#define SDRBASE_GUI_MYPOSITIONDIALOG_H_ - -#include -#include "settings/mainsettings.h" - -namespace Ui { - class MyPositionDialog; -} - -class MyPositionDialog : public QDialog { - Q_OBJECT - -public: - explicit MyPositionDialog(MainSettings& mainSettings, QWidget* parent = 0); - ~MyPositionDialog(); - -private: - Ui::MyPositionDialog* ui; - MainSettings& m_mainSettings; - -private slots: - void accept(); -}; - -#endif /* SDRBASE_GUI_MYPOSITIONDIALOG_H_ */ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2016 F4EXB // +// written by Edouard Griffiths // +// // +// OpenGL interface modernization. // +// See: http://doc.qt.io/qt-5/qopenglshaderprogram.html // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef SDRBASE_GUI_MYPOSITIONDIALOG_H_ +#define SDRBASE_GUI_MYPOSITIONDIALOG_H_ + +#include +#include "settings/mainsettings.h" + +namespace Ui { + class MyPositionDialog; +} + +class MyPositionDialog : public QDialog { + Q_OBJECT + +public: + explicit MyPositionDialog(MainSettings& mainSettings, QWidget* parent = 0); + ~MyPositionDialog(); + +private: + Ui::MyPositionDialog* ui; + MainSettings& m_mainSettings; + +private slots: + void accept(); +}; + +#endif /* SDRBASE_GUI_MYPOSITIONDIALOG_H_ */ diff --git a/sdrbase/gui/scaleengine.h b/sdrbase/gui/scaleengine.h index c9353f76a..7b43afa5a 100644 --- a/sdrbase/gui/scaleengine.h +++ b/sdrbase/gui/scaleengine.h @@ -1,90 +1,90 @@ -/////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // -// written by Christian Daniel // -// // -// This program is free software; you can redistribute it and/or modify // -// it under the terms of the GNU General Public License as published by // -// the Free Software Foundation as version 3 of the License, or // -// // -// This program is distributed in the hope that it will be useful, // -// but WITHOUT ANY WARRANTY; without even the implied warranty of // -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // -// GNU General Public License V3 for more details. // -// // -// You should have received a copy of the GNU General Public License // -// along with this program. If not, see . // -/////////////////////////////////////////////////////////////////////////////////// - -#ifndef INCLUDE_SCALEENGINE_H -#define INCLUDE_SCALEENGINE_H - -#include -#include -#include -#include "physicalunit.h" -#include "util/export.h" - -class SDRANGEL_API ScaleEngine { -public: - struct Tick { - float pos; - bool major; - float textPos; - float textSize; - QString text; - }; - typedef QList TickList; - -private: - // base configuration - Qt::Orientation m_orientation; - QFont m_font; - float m_charSize; - - // graph configuration - float m_size; - Unit::Physical m_physicalUnit; - float m_rangeMin; - float m_rangeMax; - - // calculated values - bool m_recalc; - double m_scale; - QString m_unitStr; - TickList m_tickList; - double m_majorTickValueDistance; - double m_firstMajorTickValue; - int m_numMinorTicks; - int m_decimalPlaces; - - QString formatTick(double value, int decimalPlaces, bool fancyTime = true); - void calcCharSize(); - void calcScaleFactor(); - double calcMajorTickUnits(double distance, int* retDecimalPlaces); - int calcTickTextSize(); - void forceTwoTicks(); - void reCalc(); - - double majorTickValue(int tick); - double minorTickValue(int tick); - -public: - ScaleEngine(); - - void setOrientation(Qt::Orientation orientation); - void setFont(const QFont& font); - void setSize(float size); - float getSize() { return m_size; } - void setRange(Unit::Physical physicalUnit, float rangeMin, float rangeMax); - - float getPosFromValue(double value); - float getValueFromPos(double pos); - const TickList& getTickList(); - - QString getRangeMinStr(); - QString getRangeMaxStr(); - - float getScaleWidth(); -}; - -#endif // INCLUDE_SCALEENGINE_H +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2012 maintech GmbH, Otto-Hahn-Str. 15, 97204 Hoechberg, Germany // +// written by Christian Daniel // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDE_SCALEENGINE_H +#define INCLUDE_SCALEENGINE_H + +#include +#include +#include +#include "physicalunit.h" +#include "util/export.h" + +class SDRANGEL_API ScaleEngine { +public: + struct Tick { + float pos; + bool major; + float textPos; + float textSize; + QString text; + }; + typedef QList TickList; + +private: + // base configuration + Qt::Orientation m_orientation; + QFont m_font; + float m_charSize; + + // graph configuration + float m_size; + Unit::Physical m_physicalUnit; + float m_rangeMin; + float m_rangeMax; + + // calculated values + bool m_recalc; + double m_scale; + QString m_unitStr; + TickList m_tickList; + double m_majorTickValueDistance; + double m_firstMajorTickValue; + int m_numMinorTicks; + int m_decimalPlaces; + + QString formatTick(double value, int decimalPlaces, bool fancyTime = true); + void calcCharSize(); + void calcScaleFactor(); + double calcMajorTickUnits(double distance, int* retDecimalPlaces); + int calcTickTextSize(); + void forceTwoTicks(); + void reCalc(); + + double majorTickValue(int tick); + double minorTickValue(int tick); + +public: + ScaleEngine(); + + void setOrientation(Qt::Orientation orientation); + void setFont(const QFont& font); + void setSize(float size); + float getSize() { return m_size; } + void setRange(Unit::Physical physicalUnit, float rangeMin, float rangeMax); + + float getPosFromValue(double value); + float getValueFromPos(double pos); + const TickList& getTickList(); + + QString getRangeMinStr(); + QString getRangeMaxStr(); + + float getScaleWidth(); +}; + +#endif // INCLUDE_SCALEENGINE_H diff --git a/sdrbase/mainwindow.cpp b/sdrbase/mainwindow.cpp index b6076be0d..ebc1cdcbe 100644 --- a/sdrbase/mainwindow.cpp +++ b/sdrbase/mainwindow.cpp @@ -60,7 +60,7 @@ MainWindow::MainWindow(QWidget* parent) : m_masterTabIndex(0), m_settings(), m_dspEngine(DSPEngine::instance()), - m_lastEngineState((DSPDeviceEngine::State)-1), + m_lastEngineState((DSPDeviceSourceEngine::State)-1), m_inputGUI(0), m_sampleRate(0), m_centerFrequency(0), @@ -172,7 +172,7 @@ MainWindow::~MainWindow() void MainWindow::addDevice() { - DSPDeviceEngine *dspDeviceEngine = m_dspEngine->addDeviceEngine(); + DSPDeviceSourceEngine *dspDeviceEngine = m_dspEngine->addDeviceEngine(); dspDeviceEngine->start(); uint dspDeviceEngineUID = dspDeviceEngine->getUID(); @@ -208,7 +208,7 @@ void MainWindow::addDevice() void MainWindow::removeLastDevice() { - DSPDeviceEngine *lastDeviceEngine = m_deviceUIs.back()->m_deviceEngine; + DSPDeviceSourceEngine *lastDeviceEngine = m_deviceUIs.back()->m_deviceEngine; lastDeviceEngine->stopAcquistion(); lastDeviceEngine->removeSink(m_deviceUIs.back()->m_spectrumVis); diff --git a/sdrbase/mainwindow.h b/sdrbase/mainwindow.h index 9a8461c67..1b0f478fd 100644 --- a/sdrbase/mainwindow.h +++ b/sdrbase/mainwindow.h @@ -33,7 +33,7 @@ class SamplingDeviceControl; class AudioDeviceInfo; class DSPEngine; -class DSPDeviceEngine; +class DSPDeviceSourceEngine; class Indicator; class SpectrumVis; class GLSpectrum; @@ -63,7 +63,7 @@ public: GLSpectrumGUI *m_spectrumGUI; ChannelWindow *m_channelWindow; SamplingDeviceControl *m_samplingDeviceControl; - DSPDeviceEngine *m_deviceEngine; + DSPDeviceSourceEngine *m_deviceEngine; DeviceAPI *m_deviceAPI; QByteArray m_mainWindowState; diff --git a/sdrbase/plugin/pluginmanager.cpp b/sdrbase/plugin/pluginmanager.cpp index fc4e68126..a5fcaa4db 100644 --- a/sdrbase/plugin/pluginmanager.cpp +++ b/sdrbase/plugin/pluginmanager.cpp @@ -9,10 +9,10 @@ #include "settings/preset.h" #include "mainwindow.h" #include "gui/glspectrum.h" -#include "dsp/dspdeviceengine.h" #include "util/message.h" #include +#include "../dsp/dspdevicesourceengine.h" const QString PluginManager::m_sdrDaemonDeviceTypeID = "sdrangel.samplesource.sdrdaemon"; const QString PluginManager::m_sdrDaemonFECDeviceTypeID = "sdrangel.samplesource.sdrdaemonfec"; diff --git a/sdrbase/plugin/pluginmanager.h b/sdrbase/plugin/pluginmanager.h index 0dc03afc0..db6d98cc7 100644 --- a/sdrbase/plugin/pluginmanager.h +++ b/sdrbase/plugin/pluginmanager.h @@ -13,7 +13,7 @@ class Preset; class MainWindow; class Message; class MessageQueue; -class DSPDeviceEngine; +class DSPDeviceSourceEngine; class DeviceAPI; class SDRANGEL_API PluginManager : public QObject { diff --git a/sdrbase/sdrbase.pro b/sdrbase/sdrbase.pro index 2aa2681ac..6364d450f 100644 --- a/sdrbase/sdrbase.pro +++ b/sdrbase/sdrbase.pro @@ -38,7 +38,7 @@ SOURCES += mainwindow.cpp\ dsp/ctcssdetector.cpp\ dsp/dspcommands.cpp\ dsp/dspengine.cpp\ - dsp/dspdeviceengine.cpp\ + dsp/dspdevicesourceengine.cpp\ dsp/dvserialengine.cpp\ dsp/dvserialworker.cpp\ dsp/fftengine.cpp\ @@ -112,7 +112,7 @@ HEADERS += mainwindow.h\ dsp/decimators.h\ dsp/dspcommands.h\ dsp/dspengine.h\ - dsp/dspdeviceengine.h\ + dsp/dspdevicesourceengine.h\ dsp/dvserialengine.h\ dsp/dvserialworker.h\ dsp/dsptypes.h\ diff --git a/sdrbase/util/export.h b/sdrbase/util/export.h index 49e2b68e7..7c246d648 100644 --- a/sdrbase/util/export.h +++ b/sdrbase/util/export.h @@ -1,45 +1,45 @@ -/////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2015 Edouard Griffiths, F4EXB. // -// // -// This program is free software; you can redistribute it and/or modify // -// it under the terms of the GNU General Public License as published by // -// the Free Software Foundation as version 3 of the License, or // -// // -// This program is distributed in the hope that it will be useful, // -// but WITHOUT ANY WARRANTY; without even the implied warranty of // -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // -// GNU General Public License V3 for more details. // -// // -// You should have received a copy of the GNU General Public License // -// along with this program. If not, see . // -/////////////////////////////////////////////////////////////////////////////////// - -#ifndef __SDRANGEL_EXPORT_H -#define __SDRANGEL_EXPORT_H - -#if defined __GNUC__ -# if __GNUC__ >= 4 -# define __SDR_EXPORT __attribute__((visibility("default"))) -# define __SDR_IMPORT __attribute__((visibility("default"))) -# else -# define __SDR_EXPORT -# define __SDR_IMPORT -# endif -#elif _MSC_VER -# define __SDR_EXPORT __declspec(dllexport) -# define __SDR_IMPORT __declspec(dllimport) -#else -# define __SDR_EXPORT -# define __SDR_IMPORT -#endif - -#ifndef sdrangel_STATIC -# ifdef sdrangel_EXPORTS -# define SDRANGEL_API __SDR_EXPORT -# else -# define SDRANGEL_API __SDR_IMPORT -# endif -#else -#define SDRANGEL_API -#endif -#endif /* __SDRANGEL_EXPORT_H */ +/////////////////////////////////////////////////////////////////////////////////// +// Copyright (C) 2015 Edouard Griffiths, F4EXB. // +// // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation as version 3 of the License, or // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License V3 for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program. If not, see . // +/////////////////////////////////////////////////////////////////////////////////// + +#ifndef __SDRANGEL_EXPORT_H +#define __SDRANGEL_EXPORT_H + +#if defined __GNUC__ +# if __GNUC__ >= 4 +# define __SDR_EXPORT __attribute__((visibility("default"))) +# define __SDR_IMPORT __attribute__((visibility("default"))) +# else +# define __SDR_EXPORT +# define __SDR_IMPORT +# endif +#elif _MSC_VER +# define __SDR_EXPORT __declspec(dllexport) +# define __SDR_IMPORT __declspec(dllimport) +#else +# define __SDR_EXPORT +# define __SDR_IMPORT +#endif + +#ifndef sdrangel_STATIC +# ifdef sdrangel_EXPORTS +# define SDRANGEL_API __SDR_EXPORT +# else +# define SDRANGEL_API __SDR_IMPORT +# endif +#else +#define SDRANGEL_API +#endif +#endif /* __SDRANGEL_EXPORT_H */