mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-21 23:55:13 -05:00
Single DeviceAPI interface (1)
This commit is contained in:
parent
69313daeae
commit
89e53cf179
@ -28,7 +28,7 @@ The existing receiving flow is represented with green boxes. The future Tx flow
|
||||
- The `DownChannelizer`class downsamples further down (or not) the baseband I/Q samples depending on the requirements of the Rx plugin. It cascades the downsampling from the center, left or right half of the baseband in order to fit the Rx plugin bandwidth. It contains the NCO to adjust to the Rx plugin center frequency.
|
||||
- The special `FileSource` plugin reads a file that was recorded using the `FileRecord` class directly into the baseband as there is no downsampling from the sample rate at which the file was recorded.
|
||||
- The baseband I/Q samples can be recorded to a file using the `FileRecord` class
|
||||
|
||||
|
||||
<h3>Device sample source plugins</h3>
|
||||
|
||||
At present the following plugins are available:
|
||||
@ -90,7 +90,7 @@ The `plugins` subdirectory contains the associated plugins used to manage device
|
||||
- `xxxplugin.h/cpp` : Plugin interface
|
||||
- `xxxsettings.h/cpp` : Configuration manager
|
||||
- `xxxthread.h/cpp` : Reading samples
|
||||
- `xxx.pro` : Qt .pro file for Windows/Android build
|
||||
- `xxx.pro` : Qt .pro file for Windows/Android build
|
||||
- `channelrx`: Channel handlers:
|
||||
- `demodxxx` : Demodulator internal handler (e.g xxx = demodam)
|
||||
- `xxxdemod.h/cpp` : Demodulator core
|
||||
@ -116,7 +116,7 @@ The `plugins` subdirectory contains the associated plugins used to manage device
|
||||
- `xxxsinkplugin.h/cpp` : Plugin interface
|
||||
- `xxxsinksettings.h/cpp` : Configuration manager
|
||||
- `xxxsinkthread.h/cpp` : Writing samples
|
||||
- `xxxsink.pro` : Qt .pro file for Windows/Android build
|
||||
- `xxxsink.pro` : Qt .pro file for Windows/Android build
|
||||
- `channeltx`: Channel handlers:
|
||||
- `modxxx` : Modulator internal handler (e.g xxx = modam)
|
||||
- `xxxmod.h/cpp` : Modulator core
|
||||
@ -133,7 +133,7 @@ The `plugins` subdirectory contains the associated plugins used to manage device
|
||||
- `xxxsourcegui.h/cpp` : Interface GUI
|
||||
- `xxxsourceplugin/h/cpp` : Interface plugin manager
|
||||
- `xxxsource.pro` : Qt .pro file for Windows/Android build
|
||||
|
||||
|
||||
<h2>Device interface and GUI lifecycle</h2>
|
||||
|
||||
<h3>Overview</h3>
|
||||
@ -149,7 +149,7 @@ The lifecycle of the GUI is controlled from the "Sampling Device Control" device
|
||||
- Stop streaming
|
||||
- Delete the current GUI this will in turn delete the device interface and always close the physical device unless the physical device has a SISO or MIMO architecture (more on that later)
|
||||
- Remove the current device API from the relevant buddies lists. Buddies list are effective only for physical devices with SISO or MIMO architecture (more on that later)
|
||||
- Create the new device API
|
||||
- Create the new device API
|
||||
- Add the new device API to the relevant devices APIs buddies list
|
||||
- Creates the new GUI and hence new device interface. This will always open the physical device unless the physical device has a SISO or MIMO architecture
|
||||
|
||||
@ -167,7 +167,7 @@ Here is the relevant part of the code (source side) in the `MainWindow::on_sampl
|
||||
PluginInstanceUI *pluginUI = sampleSourceDevice->m_plugin->createSampleSourcePluginInstanceUI(sampleSourceDevice->m_deviceId, &gui, deviceUI->m_deviceSourceAPI);
|
||||
deviceUI->m_deviceSourceAPI->setSampleSourcePluginInstanceUI(pluginUI);
|
||||
deviceUI->m_deviceSourceAPI->setInputGUI(gui, sampleSourceDevice->m_displayName);
|
||||
|
||||
|
||||
<h3>SISO and MIMO devices support</h3>
|
||||
|
||||
Some SDR hardware have Rx/Tx capabilities in a SISO or MIMO configuration. That is a physical device can handle more than one I/Q sample flow in either direction. Such devices supported by SDRangel are the following:
|
||||
@ -175,12 +175,12 @@ Some SDR hardware have Rx/Tx capabilities in a SISO or MIMO configuration. That
|
||||
- SISO full duplex: BladeRF
|
||||
- SISO half duplex: HackRF
|
||||
- MIMO: LimeSDR
|
||||
|
||||
|
||||
Note that the following would also work for multiple sample channels Rx or Tx only devices but none exists or is supported at this moment.
|
||||
|
||||
|
||||
In SDRangel there is a complete receiver or transmitter per I/Q sample flow. These transmitters and receivers are visually represented by the Rn and Tn tabs in the main window. They are created and disposed in the way explained in the previous paragraph using the source or sink selection confirmation button. In fact it acts as if each receiver or transmitter was controlled independently. In single input or single output (none at the moment) devices this is a true independence but with SISO or MIMO devices this cannot be the case and although each receiver or transmitter looks like it was handled independently there are things in common that have to be taken into account. For example in all cases the device handle should be unique and opening and closing the device has to be done only once per physical device usage cycle.
|
||||
|
||||
This is where the "buddies list" come into play. Receivers exhibit a generic interface in the form of the DeviceSourceAPI class and transmitter have the DeviceSinkAPI with the same role. Through these APIs some information and control can flow between receivers and transmitters. The point is that all receivers and/or transmitters pertaining to the same physical device must "know" each other in order to be able to exchange information or control each other. For this purpose the DeviceSourceAPI or DeviceSinkAPI maintain a list of DeviceSourceAPI siblings and a list of DeviceSinkAPI siblings called "buddies". Thus any multi flow Rx/Tx configuration can be handled.
|
||||
This is where the "buddies list" come into play. Devices exhibit a generic interface in the form of the DeviceAPI class. Through this API some information and control can flow between receivers and transmitters. The point is that all receivers and/or transmitters pertaining to the same physical device must "know" each other in order to be able to exchange information or control each other. For this purpose the DeviceAPI maintain a list of DeviceAPI siblings called "buddies". Thus any multi flow Rx/Tx configuration can be handled.
|
||||
|
||||
The exact behaviour of these coupled receivers and/or transmitters is dependent on the hardware therefore a generic pointer attached to the API can be used to convey any kind of class or structure tailored for the exact hardware use case. Through this structure the state of the receiver or transmitter can be exposed therefore there is one structure per receiver and transmitter in the device interface. This structure may contain pointers to common areas (dynamically allocated) related to the physical device. One such "area" is the device handle which is present in all cases.
|
||||
|
||||
@ -193,24 +193,24 @@ The degree of entanglement between the different coupled flows in a single hardw
|
||||
- independent Rx and Tx center frequencies
|
||||
- independent Gain, bandwidth, ...
|
||||
- only the device handle and indication of the presence of the XB200 accessory board is common
|
||||
|
||||
|
||||
- HackRF: this is a half duplex device. Rx and Tx might appear as tightly coupled but since you can use only one or the other then in fact you can control them differently as this is done in sequence. In fact only the common device handle has to be taken care of
|
||||
|
||||
|
||||
- LimeSDR: dual Rx and dual Tx in MIMO configuration. This implies tightly coupling between receivers on one part and transmitter on the other. But in the case of the LimeSDR (LMS7002M chip) there is even a tight coupling between Rx and Tx parts since the ADC/DAC clock is in common which means both have the same base sample rate that can only be varied by the mean of the hardware decimators and interpolators. This means:
|
||||
- Rx share the same sample rate, hardware decimation factor and center frequency
|
||||
- Tx share the same sample rate, hardware interpolation factor and center frequency
|
||||
- Rx and Tx share the same base sample rate (decimation/interpolation apart)
|
||||
- Independent Rx and Tx center frequencies
|
||||
- Independent gains, bandwidths, etc... per Rx or Tx channel
|
||||
|
||||
|
||||
The openDevice and closeDevice methods of the device interface are designed specifically for each physical device type in order to manage the common resources appropriately at receiver or transmitter construction and destruction. For example opening and closing the device and the related device handle is always done this way:
|
||||
|
||||
- openDevice:
|
||||
- check if there is any "buddy" present in one of the lists
|
||||
- if there is a buddy then grab the device handle and use it for next operations
|
||||
- if there is no buddy open the device and store the handle in the common area so it will be visible for future buddies
|
||||
|
||||
|
||||
- closeDevice:
|
||||
- if there are no buddies then effectively close the device else just zero out the own copy of the device handle
|
||||
|
||||
|
||||
Exchange of dynamic information when necessary such as sample rate or center frequency is done by message passing between buddies.
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
/**
|
||||
* This structure refers to one physical device shared among parties (logical devices represented by
|
||||
* the DeviceSinkAPI or DeviceSourceAPI).
|
||||
* the DeviceAPI with single Rx or Tx stream type).
|
||||
* It allows storing information on the common resources in one place and is shared among participants.
|
||||
* There is only one copy that is constructed by the first participant and destroyed by the last.
|
||||
* A participant knows it is the first or last by checking the lists of buddies (Rx + Tx).
|
||||
|
@ -26,7 +26,7 @@ class DEVICES_API DevicePlutoSDRBox;
|
||||
|
||||
/**
|
||||
* This structure refers to one physical device shared among parties (logical devices represented by
|
||||
* the DeviceSinkAPI or DeviceSourceAPI).
|
||||
* the DeviceAPI with single Rx or Tx stream type).
|
||||
* It allows storing information on the common resources in one place and is shared among participants.
|
||||
* There is only one copy that is constructed by the first participant and destroyed by the last.
|
||||
* A participant knows it is the first or last by checking the lists of buddies (Rx + Tx).
|
||||
|
@ -28,7 +28,7 @@
|
||||
|
||||
/**
|
||||
* This structure refers to one physical device shared among parties (logical devices represented by
|
||||
* the DeviceSinkAPI or DeviceSourceAPI).
|
||||
* the DeviceAPI with single Rx or Tx stream type).
|
||||
* It allows storing information on the common resources in one place and is shared among participants.
|
||||
* There is only one copy that is constructed by the first participant and destroyed by the last.
|
||||
* A participant knows it is the first or last by checking the lists of buddies (Rx + Tx).
|
||||
|
@ -19,7 +19,7 @@
|
||||
#include <QDebug>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "audio/audiooutput.h"
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "dsp/downchannelizer.h"
|
||||
@ -32,7 +32,7 @@ MESSAGE_CLASS_DEFINITION(ChannelAnalyzer::MsgReportChannelSampleRateChanged, Mes
|
||||
const QString ChannelAnalyzer::m_channelIdURI = "sdrangel.channel.chanalyzer";
|
||||
const QString ChannelAnalyzer::m_channelId = "ChannelAnalyzer";
|
||||
|
||||
ChannelAnalyzer::ChannelAnalyzer(DeviceSourceAPI *deviceAPI) :
|
||||
ChannelAnalyzer::ChannelAnalyzer(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_sampleSink(0),
|
||||
@ -60,14 +60,14 @@ ChannelAnalyzer::ChannelAnalyzer(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
}
|
||||
|
||||
ChannelAnalyzer::~ChannelAnalyzer()
|
||||
{
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete SSBFilter;
|
||||
|
@ -37,7 +37,7 @@
|
||||
|
||||
#define ssbFftLen 1024
|
||||
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
@ -106,7 +106,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
ChannelAnalyzer(DeviceSourceAPI *deviceAPI);
|
||||
ChannelAnalyzer(DeviceAPI *deviceAPI);
|
||||
virtual ~ChannelAnalyzer();
|
||||
virtual void destroy() { delete this; }
|
||||
void setSampleSink(BasebandSampleSink* sampleSink) { m_sampleSink = sampleSink; }
|
||||
@ -148,7 +148,7 @@ public:
|
||||
static const QString m_channelId;
|
||||
|
||||
private:
|
||||
DeviceSourceAPI *m_deviceAPI;
|
||||
DeviceAPI *m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
ChannelAnalyzerSettings m_settings;
|
||||
|
@ -55,12 +55,12 @@ PluginInstanceGUI* ChannelAnalyzerPlugin::createRxChannelGUI(DeviceUISet *device
|
||||
return ChannelAnalyzerGUI::create(m_pluginAPI, deviceUISet, rxChannel);
|
||||
}
|
||||
|
||||
BasebandSampleSink* ChannelAnalyzerPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* ChannelAnalyzerPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new ChannelAnalyzer(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* ChannelAnalyzerPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* ChannelAnalyzerPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new ChannelAnalyzer(deviceAPI);
|
||||
}
|
||||
|
@ -37,8 +37,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -37,7 +37,7 @@
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "dsp/fftfilt.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "util/db.h"
|
||||
#include "util/stepfunctions.h"
|
||||
|
||||
@ -48,7 +48,7 @@ const QString AMDemod::m_channelIdURI = "sdrangel.channel.amdemod";
|
||||
const QString AMDemod::m_channelId = "AMDemod";
|
||||
const int AMDemod::m_udpBlockSize = 512;
|
||||
|
||||
AMDemod::AMDemod(DeviceSourceAPI *deviceAPI) :
|
||||
AMDemod::AMDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_inputSampleRate(48000),
|
||||
@ -83,8 +83,8 @@ AMDemod::AMDemod(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
|
||||
m_pllFilt.create(101, m_audioSampleRate, 200.0);
|
||||
m_pll.computeCoefficients(0.05, 0.707, 1000);
|
||||
@ -99,8 +99,8 @@ AMDemod::~AMDemod()
|
||||
disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
delete m_networkManager;
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete DSBFilter;
|
||||
|
@ -40,7 +40,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class DownChannelizer;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class fftfilt;
|
||||
@ -94,7 +94,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
AMDemod(DeviceSourceAPI *deviceAPI);
|
||||
AMDemod(DeviceAPI *deviceAPI);
|
||||
~AMDemod();
|
||||
virtual void destroy() { delete this; }
|
||||
|
||||
@ -167,7 +167,7 @@ private:
|
||||
RSRunning
|
||||
};
|
||||
|
||||
DeviceSourceAPI *m_deviceAPI;
|
||||
DeviceAPI *m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
|
||||
|
@ -49,12 +49,12 @@ PluginInstanceGUI* AMDemodPlugin::createRxChannelGUI(DeviceUISet *deviceUISet, B
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSink* AMDemodPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* AMDemodPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new AMDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* AMDemodPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* AMDemodPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new AMDemod(deviceAPI);
|
||||
}
|
||||
|
@ -36,8 +36,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include "dsp/dspengine.h"
|
||||
#include "dsp/downchannelizer.h"
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
|
||||
#include "atvdemod.h"
|
||||
|
||||
@ -39,7 +39,7 @@ const QString ATVDemod::m_channelIdURI = "sdrangel.channel.demodatv";
|
||||
const QString ATVDemod::m_channelId = "ATVDemod";
|
||||
const int ATVDemod::m_ssbFftLen = 1024;
|
||||
|
||||
ATVDemod::ATVDemod(DeviceSourceAPI *deviceAPI) :
|
||||
ATVDemod::ATVDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_scopeSink(0),
|
||||
@ -90,16 +90,16 @@ ATVDemod::ATVDemod(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
|
||||
connect(m_channelizer, SIGNAL(inputSampleRateChanged()), this, SLOT(channelSampleRateChanged()));
|
||||
}
|
||||
|
||||
ATVDemod::~ATVDemod()
|
||||
{
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_DSBFilter;
|
||||
|
@ -40,7 +40,7 @@
|
||||
#include "util/message.h"
|
||||
#include "gui/tvscreen.h"
|
||||
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
@ -192,7 +192,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
ATVDemod(DeviceSourceAPI *deviceAPI);
|
||||
ATVDemod(DeviceAPI *deviceAPI);
|
||||
~ATVDemod();
|
||||
virtual void destroy() { delete this; }
|
||||
void setScopeSink(BasebandSampleSink* scopeSink) { m_scopeSink = scopeSink; }
|
||||
@ -405,7 +405,7 @@ private:
|
||||
bool m_start;
|
||||
};
|
||||
|
||||
DeviceSourceAPI* m_deviceAPI;
|
||||
DeviceAPI* m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
|
||||
|
@ -60,12 +60,12 @@ PluginInstanceGUI* ATVDemodPlugin::createRxChannelGUI(DeviceUISet *deviceUISet,
|
||||
return ATVDemodGUI::create(m_ptrPluginAPI, deviceUISet, rxChannel);
|
||||
}
|
||||
|
||||
BasebandSampleSink* ATVDemodPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* ATVDemodPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new ATVDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* ATVDemodPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* ATVDemodPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new ATVDemod(deviceAPI);
|
||||
}
|
||||
|
@ -38,8 +38,8 @@ public:
|
||||
void initPlugin(PluginAPI* ptrPluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_ptrPluginDescriptor;
|
||||
|
@ -37,7 +37,7 @@
|
||||
#include "dsp/downchannelizer.h"
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "util/db.h"
|
||||
|
||||
#include "rdsparser.h"
|
||||
@ -52,7 +52,7 @@ const QString BFMDemod::m_channelId = "BFMDemod";
|
||||
const Real BFMDemod::default_deemphasis = 50.0; // 50 us
|
||||
const int BFMDemod::m_udpBlockSize = 512;
|
||||
|
||||
BFMDemod::BFMDemod(DeviceSourceAPI *deviceAPI) :
|
||||
BFMDemod::BFMDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_inputSampleRate(384000),
|
||||
@ -103,8 +103,8 @@ BFMDemod::BFMDemod(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -117,8 +117,8 @@ BFMDemod::~BFMDemod()
|
||||
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_rfFilter;
|
||||
|
@ -44,7 +44,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
@ -121,7 +121,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
BFMDemod(DeviceSourceAPI *deviceAPI);
|
||||
BFMDemod(DeviceAPI *deviceAPI);
|
||||
virtual ~BFMDemod();
|
||||
virtual void destroy() { delete this; }
|
||||
void setSampleSink(BasebandSampleSink* sampleSink) { m_sampleSink = sampleSink; }
|
||||
@ -212,7 +212,7 @@ private:
|
||||
RSRunning
|
||||
};
|
||||
|
||||
DeviceSourceAPI *m_deviceAPI;
|
||||
DeviceAPI *m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
|
||||
|
@ -68,12 +68,12 @@ PluginInstanceGUI* BFMPlugin::createRxChannelGUI(DeviceUISet *deviceUISet, Baseb
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSink* BFMPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* BFMPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new BFMDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* BFMPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* BFMPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new BFMDemod(deviceAPI);
|
||||
}
|
||||
|
@ -36,8 +36,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -28,7 +28,7 @@
|
||||
|
||||
#include "dsp/downchannelizer.h"
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
|
||||
const QString DATVDemod::m_channelIdURI = "sdrangel.channel.demoddatv";
|
||||
const QString DATVDemod::m_channelId = "DATVDemod";
|
||||
@ -36,7 +36,7 @@ const QString DATVDemod::m_channelId = "DATVDemod";
|
||||
MESSAGE_CLASS_DEFINITION(DATVDemod::MsgConfigureDATVDemod, Message)
|
||||
MESSAGE_CLASS_DEFINITION(DATVDemod::MsgConfigureChannelizer, Message)
|
||||
|
||||
DATVDemod::DATVDemod(DeviceSourceAPI *deviceAPI) :
|
||||
DATVDemod::DATVDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_blnNeedConfigUpdate(false),
|
||||
m_deviceAPI(deviceAPI),
|
||||
@ -66,8 +66,8 @@ DATVDemod::DATVDemod(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
}
|
||||
|
||||
DATVDemod::~DATVDemod()
|
||||
@ -95,8 +95,8 @@ DATVDemod::~DATVDemod()
|
||||
|
||||
CleanUpDATVFramework(true);
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_objRFFilter;
|
||||
|
@ -20,7 +20,7 @@
|
||||
#ifndef INCLUDE_DATVDEMOD_H
|
||||
#define INCLUDE_DATVDEMOD_H
|
||||
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
@ -129,7 +129,7 @@ class DATVDemod : public BasebandSampleSink, public ChannelSinkAPI
|
||||
|
||||
public:
|
||||
|
||||
DATVDemod(DeviceSourceAPI *);
|
||||
DATVDemod(DeviceAPI *);
|
||||
~DATVDemod();
|
||||
|
||||
virtual void destroy() { delete this; }
|
||||
@ -332,7 +332,7 @@ private:
|
||||
//CONSTELLATION
|
||||
leansdr::datvconstellation<leansdr::f32> *r_scope_symbols;
|
||||
|
||||
DeviceSourceAPI* m_deviceAPI;
|
||||
DeviceAPI* m_deviceAPI;
|
||||
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
|
@ -134,7 +134,6 @@ void DATVDemodGUI::onMenuDoubleClicked()
|
||||
{
|
||||
}
|
||||
|
||||
//DATVDemodGUI::DATVDemodGUI(PluginAPI* objPluginAPI, DeviceSourceAPI *objDeviceAPI, QWidget* objParent) :
|
||||
DATVDemodGUI::DATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* objParent) :
|
||||
RollupWidget(objParent),
|
||||
ui(new Ui::DATVDemodGUI),
|
||||
|
@ -61,12 +61,12 @@ PluginInstanceGUI* DATVDemodPlugin::createRxChannelGUI(DeviceUISet *deviceUISet,
|
||||
return DATVDemodGUI::create(m_ptrPluginAPI, deviceUISet, rxChannel);
|
||||
}
|
||||
|
||||
BasebandSampleSink* DATVDemodPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* DATVDemodPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new DATVDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* DATVDemodPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* DATVDemodPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new DATVDemod(deviceAPI);
|
||||
}
|
||||
|
@ -39,8 +39,8 @@ public:
|
||||
void initPlugin(PluginAPI* ptrPluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
|
||||
private:
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "dsp/downchannelizer.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "util/db.h"
|
||||
|
||||
#include "dsddemod.h"
|
||||
@ -51,7 +51,7 @@ const QString DSDDemod::m_channelIdURI = "sdrangel.channel.dsddemod";
|
||||
const QString DSDDemod::m_channelId = "DSDDemod";
|
||||
const int DSDDemod::m_udpBlockSize = 512;
|
||||
|
||||
DSDDemod::DSDDemod(DeviceSourceAPI *deviceAPI) :
|
||||
DSDDemod::DSDDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_inputSampleRate(48000),
|
||||
@ -95,8 +95,8 @@ DSDDemod::DSDDemod(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -110,8 +110,8 @@ DSDDemod::~DSDDemod()
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo1);
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo2);
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
}
|
||||
|
@ -43,7 +43,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
@ -96,7 +96,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
DSDDemod(DeviceSourceAPI *deviceAPI);
|
||||
DSDDemod(DeviceAPI *deviceAPI);
|
||||
~DSDDemod();
|
||||
virtual void destroy() { delete this; }
|
||||
void setScopeXYSink(BasebandSampleSink* sampleSink) { m_scopeXY = sampleSink; }
|
||||
@ -205,7 +205,7 @@ private:
|
||||
RSRunning
|
||||
};
|
||||
|
||||
DeviceSourceAPI *m_deviceAPI;
|
||||
DeviceAPI *m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
|
||||
|
@ -68,12 +68,12 @@ PluginInstanceGUI* DSDDemodPlugin::createRxChannelGUI(DeviceUISet *deviceUISet,
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSink* DSDDemodPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* DSDDemodPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new DSDDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* DSDDemodPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* DSDDemodPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new DSDDemod(deviceAPI);
|
||||
}
|
||||
|
@ -37,8 +37,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -35,7 +35,7 @@
|
||||
#include "dsp/downchannelizer.h"
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "util/db.h"
|
||||
|
||||
#include "freedvdemod.h"
|
||||
@ -144,7 +144,7 @@ void FreeDVDemod::LevelRMS::accumulate(float level)
|
||||
}
|
||||
}
|
||||
|
||||
FreeDVDemod::FreeDVDemod(DeviceSourceAPI *deviceAPI) :
|
||||
FreeDVDemod::FreeDVDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_hiCutoff(6000),
|
||||
@ -197,8 +197,8 @@ FreeDVDemod::FreeDVDemod(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -210,8 +210,8 @@ FreeDVDemod::~FreeDVDemod()
|
||||
delete m_networkManager;
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete SSBFilter;
|
||||
|
@ -41,7 +41,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
@ -111,7 +111,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
FreeDVDemod(DeviceSourceAPI *deviceAPI);
|
||||
FreeDVDemod(DeviceAPI *deviceAPI);
|
||||
virtual ~FreeDVDemod();
|
||||
virtual void destroy() { delete this; }
|
||||
void setSampleSink(BasebandSampleSink* sampleSink) { m_sampleSink = sampleSink; }
|
||||
@ -342,7 +342,7 @@ private:
|
||||
{ }
|
||||
};
|
||||
|
||||
DeviceSourceAPI *m_deviceAPI;
|
||||
DeviceAPI *m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
FreeDVDemodSettings m_settings;
|
||||
|
@ -67,12 +67,12 @@ PluginInstanceGUI* FreeDVPlugin::createRxChannelGUI(DeviceUISet *deviceUISet, Ba
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSink* FreeDVPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* FreeDVPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new FreeDVDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* FreeDVPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* FreeDVPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new FreeDVDemod(deviceAPI);
|
||||
}
|
||||
|
@ -36,8 +36,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include "dsp/downchannelizer.h"
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
|
||||
#include "lorademod.h"
|
||||
#include "lorabits.h"
|
||||
@ -36,7 +36,7 @@ MESSAGE_CLASS_DEFINITION(LoRaDemod::MsgConfigureChannelizer, Message)
|
||||
const QString LoRaDemod::m_channelIdURI = "sdrangel.channel.lorademod";
|
||||
const QString LoRaDemod::m_channelId = "LoRaDemod";
|
||||
|
||||
LoRaDemod::LoRaDemod(DeviceSourceAPI* deviceAPI) :
|
||||
LoRaDemod::LoRaDemod(DeviceAPI* deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_sampleSink(0),
|
||||
@ -69,8 +69,8 @@ LoRaDemod::LoRaDemod(DeviceSourceAPI* deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
}
|
||||
|
||||
LoRaDemod::~LoRaDemod()
|
||||
@ -86,8 +86,8 @@ LoRaDemod::~LoRaDemod()
|
||||
if (finetune)
|
||||
delete [] finetune;
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
}
|
||||
|
@ -37,7 +37,7 @@
|
||||
#define LORA_SFFT_LEN (SPREADFACTOR / 2)
|
||||
#define LORA_SQUELCH (3)
|
||||
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
@ -89,7 +89,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
LoRaDemod(DeviceSourceAPI* deviceAPI);
|
||||
LoRaDemod(DeviceAPI* deviceAPI);
|
||||
virtual ~LoRaDemod();
|
||||
virtual void destroy() { delete this; }
|
||||
void setSpectrumSink(BasebandSampleSink* sampleSink) { m_sampleSink = sampleSink; }
|
||||
@ -118,7 +118,7 @@ private:
|
||||
void hamming6(char* inout, int size);
|
||||
void prng6(char* inout, int size);
|
||||
|
||||
DeviceSourceAPI *m_deviceAPI;
|
||||
DeviceAPI *m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
LoRaDemodSettings m_settings;
|
||||
|
@ -38,12 +38,12 @@ PluginInstanceGUI* LoRaPlugin::createRxChannelGUI(DeviceUISet *deviceUISet, Base
|
||||
return LoRaDemodGUI::create(m_pluginAPI, deviceUISet, rxChannel);
|
||||
}
|
||||
|
||||
BasebandSampleSink* LoRaPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* LoRaPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new LoRaDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* LoRaPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* LoRaPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new LoRaDemod(deviceAPI);
|
||||
}
|
||||
|
@ -19,8 +19,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -37,7 +37,7 @@
|
||||
#include "dsp/dspengine.h"
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
|
||||
#include "nfmdemod.h"
|
||||
|
||||
@ -52,7 +52,7 @@ static const double afSqTones[2] = {1000.0, 6000.0}; // {1200.0, 8000.0};
|
||||
static const double afSqTones_lowrate[2] = {1000.0, 3500.0};
|
||||
const int NFMDemod::m_udpBlockSize = 512;
|
||||
|
||||
NFMDemod::NFMDemod(DeviceSourceAPI *devieAPI) :
|
||||
NFMDemod::NFMDemod(DeviceAPI *devieAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(devieAPI),
|
||||
m_inputSampleRate(48000),
|
||||
@ -97,8 +97,8 @@ NFMDemod::NFMDemod(DeviceSourceAPI *devieAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -109,8 +109,8 @@ NFMDemod::~NFMDemod()
|
||||
disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
delete m_networkManager;
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
}
|
||||
|
@ -43,7 +43,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
@ -116,7 +116,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
NFMDemod(DeviceSourceAPI *deviceAPI);
|
||||
NFMDemod(DeviceAPI *deviceAPI);
|
||||
~NFMDemod();
|
||||
virtual void destroy() { delete this; }
|
||||
|
||||
@ -195,7 +195,7 @@ private:
|
||||
RSRunning
|
||||
};
|
||||
|
||||
DeviceSourceAPI* m_deviceAPI;
|
||||
DeviceAPI* m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
|
||||
|
@ -49,12 +49,12 @@ PluginInstanceGUI* NFMPlugin::createRxChannelGUI(DeviceUISet *deviceUISet, Baseb
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSink* NFMPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* NFMPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new NFMDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* NFMPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* NFMPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new NFMDemod(deviceAPI);
|
||||
}
|
||||
|
@ -19,8 +19,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -36,7 +36,7 @@
|
||||
#include "dsp/downchannelizer.h"
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "util/db.h"
|
||||
|
||||
#include "ssbdemod.h"
|
||||
@ -48,7 +48,7 @@ MESSAGE_CLASS_DEFINITION(SSBDemod::MsgConfigureChannelizer, Message)
|
||||
const QString SSBDemod::m_channelIdURI = "sdrangel.channel.ssbdemod";
|
||||
const QString SSBDemod::m_channelId = "SSBDemod";
|
||||
|
||||
SSBDemod::SSBDemod(DeviceSourceAPI *deviceAPI) :
|
||||
SSBDemod::SSBDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_audioBinaual(false),
|
||||
@ -101,8 +101,8 @@ SSBDemod::SSBDemod(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -114,8 +114,8 @@ SSBDemod::~SSBDemod()
|
||||
delete m_networkManager;
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete SSBFilter;
|
||||
|
@ -41,7 +41,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
@ -94,7 +94,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
SSBDemod(DeviceSourceAPI *deviceAPI);
|
||||
SSBDemod(DeviceAPI *deviceAPI);
|
||||
virtual ~SSBDemod();
|
||||
virtual void destroy() { delete this; }
|
||||
void setSampleSink(BasebandSampleSink* sampleSink) { m_sampleSink = sampleSink; }
|
||||
@ -269,7 +269,7 @@ private:
|
||||
{ }
|
||||
};
|
||||
|
||||
DeviceSourceAPI *m_deviceAPI;
|
||||
DeviceAPI *m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
SSBDemodSettings m_settings;
|
||||
|
@ -50,12 +50,12 @@ PluginInstanceGUI* SSBPlugin::createRxChannelGUI(DeviceUISet *deviceUISet, Baseb
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSink* SSBPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* SSBPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new SSBDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* SSBPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* SSBPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new SSBDemod(deviceAPI);
|
||||
}
|
||||
|
@ -19,8 +19,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -33,7 +33,7 @@
|
||||
|
||||
#include <dsp/downchannelizer.h>
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "audio/audiooutput.h"
|
||||
#include "dsp/dspengine.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
@ -48,7 +48,7 @@ const QString WFMDemod::m_channelIdURI = "sdrangel.channel.wfmdemod";
|
||||
const QString WFMDemod::m_channelId = "WFMDemod";
|
||||
const int WFMDemod::m_udpBlockSize = 512;
|
||||
|
||||
WFMDemod::WFMDemod(DeviceSourceAPI* deviceAPI) :
|
||||
WFMDemod::WFMDemod(DeviceAPI* deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_inputSampleRate(384000),
|
||||
@ -77,8 +77,8 @@ WFMDemod::WFMDemod(DeviceSourceAPI* deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -90,8 +90,8 @@ WFMDemod::~WFMDemod()
|
||||
delete m_networkManager;
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_rfFilter;
|
||||
|
@ -43,7 +43,7 @@ class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
|
||||
class WFMDemod : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
Q_OBJECT
|
||||
@ -94,7 +94,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
WFMDemod(DeviceSourceAPI *deviceAPI);
|
||||
WFMDemod(DeviceAPI *deviceAPI);
|
||||
virtual ~WFMDemod();
|
||||
virtual void destroy() { delete this; }
|
||||
|
||||
@ -173,7 +173,7 @@ private:
|
||||
RSRunning
|
||||
};
|
||||
|
||||
DeviceSourceAPI* m_deviceAPI;
|
||||
DeviceAPI* m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
|
||||
|
@ -50,12 +50,12 @@ PluginInstanceGUI* WFMPlugin::createRxChannelGUI(DeviceUISet *deviceUISet, Baseb
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSink* WFMPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* WFMPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new WFMDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* WFMPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* WFMPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new WFMDemod(deviceAPI);
|
||||
}
|
||||
|
@ -19,8 +19,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "dsp/fftfilt.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "util/db.h"
|
||||
#include "util/stepfunctions.h"
|
||||
|
||||
@ -50,7 +50,7 @@ const QString FreqTracker::m_channelIdURI = "sdrangel.channel.freqtracker";
|
||||
const QString FreqTracker::m_channelId = "FreqTracker";
|
||||
const int FreqTracker::m_udpBlockSize = 512;
|
||||
|
||||
FreqTracker::FreqTracker(DeviceSourceAPI *deviceAPI) :
|
||||
FreqTracker::FreqTracker(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_deviceSampleRate(48000),
|
||||
@ -86,8 +86,8 @@ FreqTracker::FreqTracker(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -102,8 +102,8 @@ FreqTracker::~FreqTracker()
|
||||
#endif
|
||||
disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
delete m_networkManager;
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_rrcFilter;
|
||||
|
@ -40,7 +40,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class DownChannelizer;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class QTimer;
|
||||
@ -117,7 +117,7 @@ public:
|
||||
int m_frequencyOffset;
|
||||
};
|
||||
|
||||
FreqTracker(DeviceSourceAPI *deviceAPI);
|
||||
FreqTracker(DeviceAPI *deviceAPI);
|
||||
~FreqTracker();
|
||||
virtual void destroy() { delete this; }
|
||||
|
||||
@ -191,7 +191,7 @@ private:
|
||||
RSRunning
|
||||
};
|
||||
|
||||
DeviceSourceAPI *m_deviceAPI;
|
||||
DeviceAPI *m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
FreqTrackerSettings m_settings;
|
||||
|
@ -66,12 +66,12 @@ PluginInstanceGUI* FreqTrackerPlugin::createRxChannelGUI(DeviceUISet *deviceUISe
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSink* FreqTrackerPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* FreqTrackerPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new FreqTracker(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* FreqTrackerPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* FreqTrackerPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new FreqTracker(deviceAPI);
|
||||
}
|
||||
|
@ -36,8 +36,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -30,10 +30,11 @@
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "dsp/downchannelizer.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "dsp/dspdevicesourceengine.h"
|
||||
#include "dsp/dspengine.h"
|
||||
#include "dsp/devicesamplesource.h"
|
||||
#include "dsp/hbfilterchainconverter.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
|
||||
#include "localsinkthread.h"
|
||||
|
||||
@ -44,7 +45,7 @@ MESSAGE_CLASS_DEFINITION(LocalSink::MsgConfigureChannelizer, Message)
|
||||
const QString LocalSink::m_channelIdURI = "sdrangel.channel.localsink";
|
||||
const QString LocalSink::m_channelId = "LocalSink";
|
||||
|
||||
LocalSink::LocalSink(DeviceSourceAPI *deviceAPI) :
|
||||
LocalSink::LocalSink(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_running(false),
|
||||
@ -61,8 +62,8 @@ LocalSink::LocalSink(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -72,8 +73,8 @@ LocalSink::~LocalSink()
|
||||
{
|
||||
disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
delete m_networkManager;
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
}
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "localsinksettings.h"
|
||||
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class DeviceSampleSource;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
@ -103,7 +103,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
LocalSink(DeviceSourceAPI *deviceAPI);
|
||||
LocalSink(DeviceAPI *deviceAPI);
|
||||
virtual ~LocalSink();
|
||||
virtual void destroy() { delete this; }
|
||||
|
||||
@ -145,7 +145,7 @@ signals:
|
||||
void samplesAvailable(const quint8* data, uint count);
|
||||
|
||||
private:
|
||||
DeviceSourceAPI *m_deviceAPI;
|
||||
DeviceAPI *m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
bool m_running;
|
||||
|
@ -67,12 +67,12 @@ PluginInstanceGUI* LocalSinkPlugin::createRxChannelGUI(DeviceUISet *deviceUISet,
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSink* LocalSinkPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* LocalSinkPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new LocalSink(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* LocalSinkPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* LocalSinkPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new LocalSink(deviceAPI);
|
||||
}
|
||||
|
@ -37,8 +37,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -39,7 +39,7 @@
|
||||
#include "dsp/downchannelizer.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "dsp/hbfilterchainconverter.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
|
||||
#include "remotesinkthread.h"
|
||||
|
||||
@ -50,7 +50,7 @@ MESSAGE_CLASS_DEFINITION(RemoteSink::MsgConfigureChannelizer, Message)
|
||||
const QString RemoteSink::m_channelIdURI = "sdrangel.channel.remotesink";
|
||||
const QString RemoteSink::m_channelId = "RemoteSink";
|
||||
|
||||
RemoteSink::RemoteSink(DeviceSourceAPI *deviceAPI) :
|
||||
RemoteSink::RemoteSink(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_running(false),
|
||||
@ -72,8 +72,8 @@ RemoteSink::RemoteSink(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -90,8 +90,8 @@ RemoteSink::~RemoteSink()
|
||||
}
|
||||
|
||||
m_dataBlockMutex.unlock();
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
}
|
||||
|
@ -35,7 +35,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
class RemoteSinkThread;
|
||||
@ -109,7 +109,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
RemoteSink(DeviceSourceAPI *deviceAPI);
|
||||
RemoteSink(DeviceAPI *deviceAPI);
|
||||
virtual ~RemoteSink();
|
||||
virtual void destroy() { delete this; }
|
||||
|
||||
@ -154,7 +154,7 @@ signals:
|
||||
void dataBlockAvailable(RemoteDataBlock *dataBlock);
|
||||
|
||||
private:
|
||||
DeviceSourceAPI *m_deviceAPI;
|
||||
DeviceAPI *m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
bool m_running;
|
||||
|
@ -67,12 +67,12 @@ PluginInstanceGUI* RemoteSinkPlugin::createRxChannelGUI(DeviceUISet *deviceUISet
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSink* RemoteSinkPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* RemoteSinkPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new RemoteSink(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* RemoteSinkPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* RemoteSinkPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new RemoteSink(deviceAPI);
|
||||
}
|
||||
|
@ -37,8 +37,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -32,7 +32,7 @@
|
||||
#include "dsp/downchannelizer.h"
|
||||
#include "dsp/threadedbasebandsamplesink.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
|
||||
#include "udpsink.h"
|
||||
|
||||
@ -45,7 +45,7 @@ MESSAGE_CLASS_DEFINITION(UDPSink::MsgUDPSinkSpectrum, Message)
|
||||
const QString UDPSink::m_channelIdURI = "sdrangel.channel.udpsink";
|
||||
const QString UDPSink::m_channelId = "UDPSink";
|
||||
|
||||
UDPSink::UDPSink(DeviceSourceAPI *deviceAPI) :
|
||||
UDPSink::UDPSink(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_inputSampleRate(48000),
|
||||
@ -112,8 +112,8 @@ UDPSink::UDPSink(DeviceSourceAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new DownChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSink(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSinkAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -129,8 +129,8 @@ UDPSink::~UDPSink()
|
||||
delete m_udpBufferMono16;
|
||||
delete[] m_udpAudioBuf;
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo);
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSink(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSinkAPI(this);
|
||||
m_deviceAPI->removeChannelSink(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete UDPFilter;
|
||||
|
@ -41,7 +41,7 @@
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class QUdpSocket;
|
||||
class DeviceSourceAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
@ -96,7 +96,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
UDPSink(DeviceSourceAPI *deviceAPI);
|
||||
UDPSink(DeviceAPI *deviceAPI);
|
||||
virtual ~UDPSink();
|
||||
virtual void destroy() { delete this; }
|
||||
void setSpectrum(BasebandSampleSink* spectrum) { m_spectrum = spectrum; }
|
||||
@ -179,7 +179,7 @@ protected:
|
||||
int32_t m_i;
|
||||
};
|
||||
|
||||
DeviceSourceAPI *m_deviceAPI;
|
||||
DeviceAPI *m_deviceAPI;
|
||||
ThreadedBasebandSampleSink* m_threadedChannelizer;
|
||||
DownChannelizer* m_channelizer;
|
||||
|
||||
|
@ -67,12 +67,12 @@ PluginInstanceGUI* UDPSinkPlugin::createRxChannelGUI(DeviceUISet *deviceUISet, B
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSink* UDPSinkPlugin::createRxChannelBS(DeviceSourceAPI *deviceAPI)
|
||||
BasebandSampleSink* UDPSinkPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new UDPSink(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* UDPSinkPlugin::createRxChannelCS(DeviceSourceAPI *deviceAPI)
|
||||
ChannelSinkAPI* UDPSinkPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new UDPSink(deviceAPI);
|
||||
}
|
||||
|
@ -37,8 +37,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceSourceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceSourceAPI *deviceAPI);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -35,7 +35,7 @@
|
||||
#include "dsp/dspengine.h"
|
||||
#include "dsp/threadedbasebandsamplesource.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "device/devicesinkapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "util/db.h"
|
||||
|
||||
MESSAGE_CLASS_DEFINITION(AMMod::MsgConfigureAMMod, Message)
|
||||
@ -50,7 +50,7 @@ const QString AMMod::m_channelIdURI = "sdrangel.channeltx.modam";
|
||||
const QString AMMod::m_channelId ="AMMod";
|
||||
const int AMMod::m_levelNbSamples = 480; // every 10ms
|
||||
|
||||
AMMod::AMMod(DeviceSinkAPI *deviceAPI) :
|
||||
AMMod::AMMod(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_basebandSampleRate(48000),
|
||||
@ -86,8 +86,8 @@ AMMod::AMMod(DeviceSinkAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new UpChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSource(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSourceAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -97,8 +97,8 @@ AMMod::~AMMod()
|
||||
{
|
||||
disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
delete m_networkManager;
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSourceAPI(this);
|
||||
m_deviceAPI->removeChannelSource(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo);
|
||||
|
@ -42,7 +42,7 @@ class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class ThreadedBasebandSampleSource;
|
||||
class UpChannelizer;
|
||||
class DeviceSinkAPI;
|
||||
class DeviceAPI;
|
||||
|
||||
class AMMod : public BasebandSampleSource, public ChannelSourceAPI {
|
||||
Q_OBJECT
|
||||
@ -201,7 +201,7 @@ public:
|
||||
|
||||
//=================================================================
|
||||
|
||||
AMMod(DeviceSinkAPI *deviceAPI);
|
||||
AMMod(DeviceAPI *deviceAPI);
|
||||
~AMMod();
|
||||
virtual void destroy() { delete this; }
|
||||
|
||||
@ -255,7 +255,7 @@ private:
|
||||
RSRunning
|
||||
};
|
||||
|
||||
DeviceSinkAPI* m_deviceAPI;
|
||||
DeviceAPI* m_deviceAPI;
|
||||
ThreadedBasebandSampleSource* m_threadedChannelizer;
|
||||
UpChannelizer* m_channelizer;
|
||||
|
||||
|
@ -66,12 +66,12 @@ PluginInstanceGUI* AMModPlugin::createTxChannelGUI(DeviceUISet *deviceUISet, Bas
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSource* AMModPlugin::createTxChannelBS(DeviceSinkAPI *deviceAPI)
|
||||
BasebandSampleSource* AMModPlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new AMMod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* AMModPlugin::createTxChannelCS(DeviceSinkAPI *deviceAPI)
|
||||
ChannelSourceAPI* AMModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new AMMod(deviceAPI);
|
||||
}
|
||||
|
@ -36,8 +36,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceSinkAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceSinkAPI *deviceAPI);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -31,7 +31,7 @@
|
||||
#include "dsp/upchannelizer.h"
|
||||
#include "dsp/threadedbasebandsamplesource.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "device/devicesinkapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "util/db.h"
|
||||
|
||||
#include "atvmod.h"
|
||||
@ -58,7 +58,7 @@ const int ATVMod::m_nbBars = 6;
|
||||
const int ATVMod::m_cameraFPSTestNbFrames = 100;
|
||||
const int ATVMod::m_ssbFftLen = 1024;
|
||||
|
||||
ATVMod::ATVMod(DeviceSinkAPI *deviceAPI) :
|
||||
ATVMod::ATVMod(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_outputSampleRate(1000000),
|
||||
@ -103,8 +103,8 @@ ATVMod::ATVMod(DeviceSinkAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new UpChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSource(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSourceAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -120,8 +120,8 @@ ATVMod::~ATVMod()
|
||||
}
|
||||
|
||||
releaseCameras();
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSourceAPI(this);
|
||||
m_deviceAPI->removeChannelSource(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_SSBFilter;
|
||||
|
@ -41,7 +41,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSinkAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSource;
|
||||
class UpChannelizer;
|
||||
|
||||
@ -354,7 +354,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
ATVMod(DeviceSinkAPI *deviceAPI);
|
||||
ATVMod(DeviceAPI *deviceAPI);
|
||||
~ATVMod();
|
||||
virtual void destroy() { delete this; }
|
||||
|
||||
@ -442,7 +442,7 @@ private:
|
||||
{}
|
||||
};
|
||||
|
||||
DeviceSinkAPI* m_deviceAPI;
|
||||
DeviceAPI* m_deviceAPI;
|
||||
ThreadedBasebandSampleSource* m_threadedChannelizer;
|
||||
UpChannelizer* m_channelizer;
|
||||
|
||||
|
@ -66,12 +66,12 @@ PluginInstanceGUI* ATVModPlugin::createTxChannelGUI(DeviceUISet *deviceUISet, Ba
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSource* ATVModPlugin::createTxChannelBS(DeviceSinkAPI *deviceAPI)
|
||||
BasebandSampleSource* ATVModPlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new ATVMod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* ATVModPlugin::createTxChannelCS(DeviceSinkAPI *deviceAPI)
|
||||
ChannelSourceAPI* ATVModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new ATVMod(deviceAPI);
|
||||
}
|
||||
|
@ -21,7 +21,7 @@
|
||||
#include <QObject>
|
||||
#include "plugin/plugininterface.h"
|
||||
|
||||
class DeviceSinkAPI;
|
||||
class DeviceAPI;
|
||||
class BasebandSampleSource;
|
||||
|
||||
class ATVModPlugin : public QObject, PluginInterface {
|
||||
@ -36,8 +36,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceSinkAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceSinkAPI *deviceAPI);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include "dsp/dspengine.h"
|
||||
#include "dsp/threadedbasebandsamplesource.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "device/devicesinkapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "util/db.h"
|
||||
|
||||
MESSAGE_CLASS_DEFINITION(FreeDVMod::MsgConfigureFreeDVMod, Message)
|
||||
@ -54,7 +54,7 @@ const QString FreeDVMod::m_channelId = "FreeDVMod";
|
||||
const int FreeDVMod::m_levelNbSamples = 80; // every 10ms
|
||||
const int FreeDVMod::m_ssbFftLen = 1024;
|
||||
|
||||
FreeDVMod::FreeDVMod(DeviceSinkAPI *deviceAPI) :
|
||||
FreeDVMod::FreeDVMod(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_basebandSampleRate(48000),
|
||||
@ -112,8 +112,8 @@ FreeDVMod::FreeDVMod(DeviceSinkAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new UpChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSource(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSourceAPI(this);
|
||||
|
||||
applySettings(m_settings, true);
|
||||
applyChannelSettings(m_basebandSampleRate, m_outputSampleRate, m_inputFrequencyOffset, true);
|
||||
@ -129,8 +129,8 @@ FreeDVMod::~FreeDVMod()
|
||||
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo);
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSourceAPI(this);
|
||||
m_deviceAPI->removeChannelSource(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
|
||||
|
@ -42,7 +42,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSinkAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSource;
|
||||
class UpChannelizer;
|
||||
|
||||
@ -207,7 +207,7 @@ public:
|
||||
|
||||
//=================================================================
|
||||
|
||||
FreeDVMod(DeviceSinkAPI *deviceAPI);
|
||||
FreeDVMod(DeviceAPI *deviceAPI);
|
||||
~FreeDVMod();
|
||||
virtual void destroy() { delete this; }
|
||||
|
||||
@ -267,7 +267,7 @@ private:
|
||||
RSRunning
|
||||
};
|
||||
|
||||
DeviceSinkAPI* m_deviceAPI;
|
||||
DeviceAPI* m_deviceAPI;
|
||||
ThreadedBasebandSampleSource* m_threadedChannelizer;
|
||||
UpChannelizer* m_channelizer;
|
||||
|
||||
|
@ -66,12 +66,12 @@ PluginInstanceGUI* FreeDVModPlugin::createTxChannelGUI(DeviceUISet *deviceUISet,
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSource* FreeDVModPlugin::createTxChannelBS(DeviceSinkAPI *deviceAPI)
|
||||
BasebandSampleSource* FreeDVModPlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new FreeDVMod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* FreeDVModPlugin::createTxChannelCS(DeviceSinkAPI *deviceAPI)
|
||||
ChannelSourceAPI* FreeDVModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new FreeDVMod(deviceAPI);
|
||||
}
|
||||
|
@ -36,8 +36,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceSinkAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceSinkAPI *deviceAPI);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include "dsp/upchannelizer.h"
|
||||
#include "dsp/dspengine.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "device/devicesinkapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "dsp/threadedbasebandsamplesource.h"
|
||||
#include "util/db.h"
|
||||
|
||||
@ -52,7 +52,7 @@ const QString NFMMod::m_channelIdURI = "sdrangel.channeltx.modnfm";
|
||||
const QString NFMMod::m_channelId = "NFMMod";
|
||||
const int NFMMod::m_levelNbSamples = 480; // every 10ms
|
||||
|
||||
NFMMod::NFMMod(DeviceSinkAPI *deviceAPI) :
|
||||
NFMMod::NFMMod(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_basebandSampleRate(48000),
|
||||
@ -92,8 +92,8 @@ NFMMod::NFMMod(DeviceSinkAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new UpChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSource(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSourceAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -104,8 +104,8 @@ NFMMod::~NFMMod()
|
||||
disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
delete m_networkManager;
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo);
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSourceAPI(this);
|
||||
m_deviceAPI->removeChannelSource(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
}
|
||||
|
@ -40,7 +40,7 @@
|
||||
|
||||
#include "nfmmodsettings.h"
|
||||
|
||||
class DeviceSinkAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSource;
|
||||
class UpChannelizer;
|
||||
class QNetworkAccessManager;
|
||||
@ -203,7 +203,7 @@ public:
|
||||
|
||||
//=================================================================
|
||||
|
||||
NFMMod(DeviceSinkAPI *deviceAPI);
|
||||
NFMMod(DeviceAPI *deviceAPI);
|
||||
~NFMMod();
|
||||
virtual void destroy() { delete this; }
|
||||
|
||||
@ -257,7 +257,7 @@ private:
|
||||
RSRunning
|
||||
};
|
||||
|
||||
DeviceSinkAPI* m_deviceAPI;
|
||||
DeviceAPI* m_deviceAPI;
|
||||
ThreadedBasebandSampleSource* m_threadedChannelizer;
|
||||
UpChannelizer* m_channelizer;
|
||||
|
||||
|
@ -66,12 +66,12 @@ PluginInstanceGUI* NFMModPlugin::createTxChannelGUI(DeviceUISet *deviceUISet, Ba
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSource* NFMModPlugin::createTxChannelBS(DeviceSinkAPI *deviceAPI)
|
||||
BasebandSampleSource* NFMModPlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new NFMMod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* NFMModPlugin::createTxChannelCS(DeviceSinkAPI *deviceAPI)
|
||||
ChannelSourceAPI* NFMModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new NFMMod(deviceAPI);
|
||||
}
|
||||
|
@ -36,8 +36,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *rxChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceSinkAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceSinkAPI *deviceAPI);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -36,7 +36,7 @@
|
||||
#include "dsp/dspengine.h"
|
||||
#include "dsp/threadedbasebandsamplesource.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "device/devicesinkapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "util/db.h"
|
||||
|
||||
MESSAGE_CLASS_DEFINITION(SSBMod::MsgConfigureSSBMod, Message)
|
||||
@ -52,7 +52,7 @@ const QString SSBMod::m_channelId = "SSBMod";
|
||||
const int SSBMod::m_levelNbSamples = 480; // every 10ms
|
||||
const int SSBMod::m_ssbFftLen = 1024;
|
||||
|
||||
SSBMod::SSBMod(DeviceSinkAPI *deviceAPI) :
|
||||
SSBMod::SSBMod(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_basebandSampleRate(48000),
|
||||
@ -117,8 +117,8 @@ SSBMod::SSBMod(DeviceSinkAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new UpChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSource(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSourceAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -131,8 +131,8 @@ SSBMod::~SSBMod()
|
||||
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo);
|
||||
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSourceAPI(this);
|
||||
m_deviceAPI->removeChannelSource(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
|
||||
|
@ -41,7 +41,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSinkAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSource;
|
||||
class UpChannelizer;
|
||||
|
||||
@ -202,7 +202,7 @@ public:
|
||||
|
||||
//=================================================================
|
||||
|
||||
SSBMod(DeviceSinkAPI *deviceAPI);
|
||||
SSBMod(DeviceAPI *deviceAPI);
|
||||
~SSBMod();
|
||||
virtual void destroy() { delete this; }
|
||||
|
||||
@ -259,7 +259,7 @@ private:
|
||||
RSRunning
|
||||
};
|
||||
|
||||
DeviceSinkAPI* m_deviceAPI;
|
||||
DeviceAPI* m_deviceAPI;
|
||||
ThreadedBasebandSampleSource* m_threadedChannelizer;
|
||||
UpChannelizer* m_channelizer;
|
||||
|
||||
|
@ -66,12 +66,12 @@ PluginInstanceGUI* SSBModPlugin::createTxChannelGUI(DeviceUISet *deviceUISet, Ba
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSource* SSBModPlugin::createTxChannelBS(DeviceSinkAPI *deviceAPI)
|
||||
BasebandSampleSource* SSBModPlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new SSBMod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* SSBModPlugin::createTxChannelCS(DeviceSinkAPI *deviceAPI)
|
||||
ChannelSourceAPI* SSBModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new SSBMod(deviceAPI);
|
||||
}
|
||||
|
@ -36,8 +36,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceSinkAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceSinkAPI *deviceAPI);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include "dsp/dspengine.h"
|
||||
#include "dsp/threadedbasebandsamplesource.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "device/devicesinkapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "util/db.h"
|
||||
|
||||
#include "wfmmod.h"
|
||||
@ -52,7 +52,7 @@ const QString WFMMod::m_channelId = "WFMMod";
|
||||
const int WFMMod::m_levelNbSamples = 480; // every 10ms
|
||||
const int WFMMod::m_rfFilterFFTLength = 1024;
|
||||
|
||||
WFMMod::WFMMod(DeviceSinkAPI *deviceAPI) :
|
||||
WFMMod::WFMMod(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_basebandSampleRate(384000),
|
||||
@ -97,8 +97,8 @@ WFMMod::WFMMod(DeviceSinkAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new UpChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSource(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSourceAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -109,8 +109,8 @@ WFMMod::~WFMMod()
|
||||
disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
delete m_networkManager;
|
||||
DSPEngine::instance()->getAudioDeviceManager()->removeAudioSource(&m_audioFifo);
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSourceAPI(this);
|
||||
m_deviceAPI->removeChannelSource(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_rfFilter;
|
||||
|
@ -41,7 +41,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSinkAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSource;
|
||||
class UpChannelizer;
|
||||
|
||||
@ -202,7 +202,7 @@ public:
|
||||
|
||||
//=================================================================
|
||||
|
||||
WFMMod(DeviceSinkAPI *deviceAPI);
|
||||
WFMMod(DeviceAPI *deviceAPI);
|
||||
~WFMMod();
|
||||
virtual void destroy() { delete this; }
|
||||
|
||||
@ -256,7 +256,7 @@ private:
|
||||
RSRunning
|
||||
};
|
||||
|
||||
DeviceSinkAPI* m_deviceAPI;
|
||||
DeviceAPI* m_deviceAPI;
|
||||
ThreadedBasebandSampleSource* m_threadedChannelizer;
|
||||
UpChannelizer* m_channelizer;
|
||||
|
||||
|
@ -66,12 +66,12 @@ PluginInstanceGUI* WFMModPlugin::createTxChannelGUI(DeviceUISet *deviceUISet, Ba
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSource* WFMModPlugin::createTxChannelBS(DeviceSinkAPI *deviceAPI)
|
||||
BasebandSampleSource* WFMModPlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new WFMMod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* WFMModPlugin::createTxChannelCS(DeviceSinkAPI *deviceAPI)
|
||||
ChannelSourceAPI* WFMModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new WFMMod(deviceAPI);
|
||||
}
|
||||
|
@ -21,7 +21,7 @@
|
||||
#include <QObject>
|
||||
#include "plugin/plugininterface.h"
|
||||
|
||||
class DeviceSinkAPI;
|
||||
class DeviceAPI;
|
||||
|
||||
class WFMModPlugin : public QObject, PluginInterface {
|
||||
Q_OBJECT
|
||||
@ -35,8 +35,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceSinkAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceSinkAPI *deviceAPI);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -32,7 +32,7 @@
|
||||
#include "SWGRemoteSourceReport.h"
|
||||
|
||||
#include "dsp/devicesamplesink.h"
|
||||
#include "device/devicesinkapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "dsp/upchannelizer.h"
|
||||
#include "dsp/threadedbasebandsamplesource.h"
|
||||
|
||||
@ -46,7 +46,7 @@ MESSAGE_CLASS_DEFINITION(RemoteSource::MsgReportStreamData, Message)
|
||||
const QString RemoteSource::m_channelIdURI = "sdrangel.channeltx.remotesource";
|
||||
const QString RemoteSource::m_channelId ="RemoteSource";
|
||||
|
||||
RemoteSource::RemoteSource(DeviceSinkAPI *deviceAPI) :
|
||||
RemoteSource::RemoteSource(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_sourceThread(0),
|
||||
@ -62,8 +62,8 @@ RemoteSource::RemoteSource(DeviceSinkAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new UpChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSource(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSourceAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -73,8 +73,8 @@ RemoteSource::~RemoteSource()
|
||||
{
|
||||
disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
delete m_networkManager;
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSourceAPI(this);
|
||||
m_deviceAPI->removeChannelSource(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
}
|
||||
|
@ -34,7 +34,7 @@
|
||||
|
||||
class ThreadedBasebandSampleSource;
|
||||
class UpChannelizer;
|
||||
class DeviceSinkAPI;
|
||||
class DeviceAPI;
|
||||
class RemoteSourceThread;
|
||||
class RemoteDataBlock;
|
||||
class QNetworkAccessManager;
|
||||
@ -180,7 +180,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
RemoteSource(DeviceSinkAPI *deviceAPI);
|
||||
RemoteSource(DeviceAPI *deviceAPI);
|
||||
~RemoteSource();
|
||||
|
||||
virtual void destroy() { delete this; }
|
||||
@ -218,7 +218,7 @@ public:
|
||||
static const QString m_channelId;
|
||||
|
||||
private:
|
||||
DeviceSinkAPI* m_deviceAPI;
|
||||
DeviceAPI* m_deviceAPI;
|
||||
ThreadedBasebandSampleSource* m_threadedChannelizer;
|
||||
UpChannelizer* m_channelizer;
|
||||
RemoteDataQueue m_dataQueue;
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
#include "remotesourcegui.h"
|
||||
|
||||
#include "device/devicesinkapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "device/deviceuiset.h"
|
||||
#include "gui/basicchannelsettingsdialog.h"
|
||||
#include "mainwindow.h"
|
||||
@ -178,7 +178,7 @@ RemoteSourceGUI::RemoteSourceGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet,
|
||||
m_remoteSrc = (RemoteSource*) channelTx;
|
||||
m_remoteSrc->setMessageQueueToGUI(getInputMessageQueue());
|
||||
|
||||
connect(&(m_deviceUISet->m_deviceSinkAPI->getMasterTimer()), SIGNAL(timeout()), this, SLOT(tick()));
|
||||
connect(&(m_deviceUISet->m_deviceAPI->getMasterTimer()), SIGNAL(timeout()), this, SLOT(tick()));
|
||||
|
||||
m_channelMarker.blockSignals(true);
|
||||
m_channelMarker.setColor(m_settings.m_rgbColor);
|
||||
|
@ -66,12 +66,12 @@ PluginInstanceGUI* RemoteSourcePlugin::createTxChannelGUI(DeviceUISet *deviceUIS
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSource* RemoteSourcePlugin::createTxChannelBS(DeviceSinkAPI *deviceAPI)
|
||||
BasebandSampleSource* RemoteSourcePlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new RemoteSource(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* RemoteSourcePlugin::createTxChannelCS(DeviceSinkAPI *deviceAPI)
|
||||
ChannelSourceAPI* RemoteSourcePlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new RemoteSource(deviceAPI);
|
||||
}
|
||||
|
@ -36,8 +36,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceSinkAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceSinkAPI *deviceAPI);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include "SWGChannelReport.h"
|
||||
#include "SWGUDPSourceReport.h"
|
||||
|
||||
#include "device/devicesinkapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "dsp/upchannelizer.h"
|
||||
#include "dsp/threadedbasebandsamplesource.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
@ -41,7 +41,7 @@ MESSAGE_CLASS_DEFINITION(UDPSource::MsgResetReadIndex, Message)
|
||||
const QString UDPSource::m_channelIdURI = "sdrangel.channeltx.udpsource";
|
||||
const QString UDPSource::m_channelId = "UDPSource";
|
||||
|
||||
UDPSource::UDPSource(DeviceSinkAPI *deviceAPI) :
|
||||
UDPSource::UDPSource(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_basebandSampleRate(48000),
|
||||
@ -80,8 +80,8 @@ UDPSource::UDPSource(DeviceSinkAPI *deviceAPI) :
|
||||
|
||||
m_channelizer = new UpChannelizer(this);
|
||||
m_threadedChannelizer = new ThreadedBasebandSampleSource(m_channelizer, this);
|
||||
m_deviceAPI->addThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelAPI(this);
|
||||
m_deviceAPI->addChannelSource(m_threadedChannelizer);
|
||||
m_deviceAPI->addChannelSourceAPI(this);
|
||||
|
||||
m_networkManager = new QNetworkAccessManager();
|
||||
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
@ -91,8 +91,8 @@ UDPSource::~UDPSource()
|
||||
{
|
||||
disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
|
||||
delete m_networkManager;
|
||||
m_deviceAPI->removeChannelAPI(this);
|
||||
m_deviceAPI->removeThreadedSource(m_threadedChannelizer);
|
||||
m_deviceAPI->removeChannelSourceAPI(this);
|
||||
m_deviceAPI->removeChannelSource(m_threadedChannelizer);
|
||||
delete m_threadedChannelizer;
|
||||
delete m_channelizer;
|
||||
delete m_SSBFilter;
|
||||
|
@ -35,7 +35,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSinkAPI;
|
||||
class DeviceAPI;
|
||||
class ThreadedBasebandSampleSource;
|
||||
class UpChannelizer;
|
||||
|
||||
@ -90,7 +90,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
UDPSource(DeviceSinkAPI *deviceAPI);
|
||||
UDPSource(DeviceAPI *deviceAPI);
|
||||
virtual ~UDPSource();
|
||||
virtual void destroy() { delete this; }
|
||||
|
||||
@ -183,7 +183,7 @@ private:
|
||||
{ }
|
||||
};
|
||||
|
||||
DeviceSinkAPI* m_deviceAPI;
|
||||
DeviceAPI* m_deviceAPI;
|
||||
ThreadedBasebandSampleSource* m_threadedChannelizer;
|
||||
UpChannelizer* m_channelizer;
|
||||
|
||||
|
@ -68,12 +68,12 @@ PluginInstanceGUI* UDPSourcePlugin::createTxChannelGUI(DeviceUISet *deviceUISet,
|
||||
}
|
||||
#endif
|
||||
|
||||
BasebandSampleSource* UDPSourcePlugin::createTxChannelBS(DeviceSinkAPI *deviceAPI)
|
||||
BasebandSampleSource* UDPSourcePlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new UDPSource(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* UDPSourcePlugin::createTxChannelCS(DeviceSinkAPI *deviceAPI)
|
||||
ChannelSourceAPI* UDPSourcePlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new UDPSource(deviceAPI);
|
||||
}
|
||||
|
@ -37,8 +37,8 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceSinkAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceSinkAPI *deviceAPI);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -26,9 +26,10 @@
|
||||
#include "SWGDeviceState.h"
|
||||
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "dsp/dspdevicesourceengine.h"
|
||||
#include "dsp/dspdevicesinkengine.h"
|
||||
#include "dsp/dspengine.h"
|
||||
#include "device/devicesinkapi.h"
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/deviceapi.h"
|
||||
#include "bladerf1/devicebladerf1shared.h"
|
||||
#include "bladerf1outputthread.h"
|
||||
#include "bladerf1output.h"
|
||||
@ -37,7 +38,7 @@ MESSAGE_CLASS_DEFINITION(Bladerf1Output::MsgConfigureBladerf1, Message)
|
||||
MESSAGE_CLASS_DEFINITION(Bladerf1Output::MsgStartStop, Message)
|
||||
MESSAGE_CLASS_DEFINITION(Bladerf1Output::MsgReportBladerf1, Message)
|
||||
|
||||
Bladerf1Output::Bladerf1Output(DeviceSinkAPI *deviceAPI) :
|
||||
Bladerf1Output::Bladerf1Output(DeviceAPI *deviceAPI) :
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_settings(),
|
||||
m_dev(0),
|
||||
@ -83,7 +84,7 @@ bool Bladerf1Output::openDevice()
|
||||
|
||||
if (m_deviceAPI->getSourceBuddies().size() > 0)
|
||||
{
|
||||
DeviceSourceAPI *sourceBuddy = m_deviceAPI->getSourceBuddies()[0];
|
||||
DeviceAPI *sourceBuddy = m_deviceAPI->getSourceBuddies()[0];
|
||||
DeviceBladeRF1Params *buddySharedParams = (DeviceBladeRF1Params *) sourceBuddy->getBuddySharedPtr();
|
||||
|
||||
if (buddySharedParams == 0)
|
||||
@ -103,9 +104,9 @@ bool Bladerf1Output::openDevice()
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!DeviceBladeRF1::open_bladerf(&m_dev, qPrintable(m_deviceAPI->getSampleSinkSerial())))
|
||||
if (!DeviceBladeRF1::open_bladerf(&m_dev, qPrintable(m_deviceAPI->getSamplingDeviceSerial())))
|
||||
{
|
||||
qCritical("BladerfOutput::start: could not open BladeRF %s", qPrintable(m_deviceAPI->getSampleSinkSerial()));
|
||||
qCritical("BladerfOutput::start: could not open BladeRF %s", qPrintable(m_deviceAPI->getSamplingDeviceSerial()));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -277,14 +278,14 @@ bool Bladerf1Output::handleMessage(const Message& message)
|
||||
|
||||
if (cmd.getStartStop())
|
||||
{
|
||||
if (m_deviceAPI->initGeneration())
|
||||
if (m_deviceAPI->initDeviceEngine())
|
||||
{
|
||||
m_deviceAPI->startGeneration();
|
||||
m_deviceAPI->startDeviceEngine();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_deviceAPI->stopGeneration();
|
||||
m_deviceAPI->stopDeviceEngine();
|
||||
}
|
||||
|
||||
if (m_settings.m_useReverseAPI) {
|
||||
@ -420,7 +421,7 @@ bool Bladerf1Output::applySettings(const BladeRF1OutputSettings& settings, bool
|
||||
|
||||
if (m_deviceAPI->getSourceBuddies().size() > 0)
|
||||
{
|
||||
DeviceSourceAPI *buddy = m_deviceAPI->getSourceBuddies()[0];
|
||||
DeviceAPI *buddy = m_deviceAPI->getSourceBuddies()[0];
|
||||
|
||||
if (buddy->getDeviceSourceEngine()->state() == DSPDeviceSourceEngine::StRunning) { // Tx side running
|
||||
changeSettings = false;
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
class DeviceSinkAPI;
|
||||
class DeviceAPI;
|
||||
class Bladerf1OutputThread;
|
||||
|
||||
class Bladerf1Output : public DeviceSampleSink {
|
||||
@ -94,7 +94,7 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
Bladerf1Output(DeviceSinkAPI *deviceAPI);
|
||||
Bladerf1Output(DeviceAPI *deviceAPI);
|
||||
virtual ~Bladerf1Output();
|
||||
virtual void destroy();
|
||||
|
||||
@ -133,7 +133,7 @@ public:
|
||||
QString& errorMessage);
|
||||
|
||||
private:
|
||||
DeviceSinkAPI *m_deviceAPI;
|
||||
DeviceAPI *m_deviceAPI;
|
||||
QMutex m_mutex;
|
||||
BladeRF1OutputSettings m_settings;
|
||||
struct bladerf* m_dev;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user