mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-03-21 03:38:38 -04:00
Single channel API
This commit is contained in:
parent
9e628917dc
commit
a5e9f251ef
plugins
channelrx
chanalyzer
demodam
demodatv
demodbfm
demoddatv
demoddsd
demodfreedv
demodlora
demodnfm
demodssb
demodwfm
freqtracker
localsink
remotesink
udpsink
channeltx
modam
modatv
modfreedv
modnfm
modssb
modwfm
remotesource
udpsource
sdrbase
sdrgui/webapi
@ -33,7 +33,7 @@ const QString ChannelAnalyzer::m_channelIdURI = "sdrangel.channel.chanalyzer";
|
||||
const QString ChannelAnalyzer::m_channelId = "ChannelAnalyzer";
|
||||
|
||||
ChannelAnalyzer::ChannelAnalyzer(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_sampleSink(0),
|
||||
m_settingsMutex(QMutex::Recursive)
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/interpolator.h"
|
||||
#include "dsp/ncof.h"
|
||||
#include "dsp/fftcorr.h"
|
||||
@ -41,7 +41,7 @@ class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
class ChannelAnalyzer : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
class ChannelAnalyzer : public BasebandSampleSink, public ChannelAPI {
|
||||
public:
|
||||
class MsgConfigureChannelAnalyzer : public Message {
|
||||
MESSAGE_CLASS_DECLARATION
|
||||
@ -144,6 +144,16 @@ public:
|
||||
virtual QByteArray serialize() const { return QByteArray(); }
|
||||
virtual bool deserialize(const QByteArray& data) { (void) data; return false; }
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_frequency;
|
||||
}
|
||||
|
||||
static const QString m_channelIdURI;
|
||||
static const QString m_channelId;
|
||||
|
||||
|
@ -60,7 +60,7 @@ BasebandSampleSink* ChannelAnalyzerPlugin::createRxChannelBS(DeviceAPI *deviceAP
|
||||
return new ChannelAnalyzer(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* ChannelAnalyzerPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* ChannelAnalyzerPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new ChannelAnalyzer(deviceAPI);
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -49,7 +49,7 @@ const QString AMDemod::m_channelId = "AMDemod";
|
||||
const int AMDemod::m_udpBlockSize = 512;
|
||||
|
||||
AMDemod::AMDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_inputSampleRate(48000),
|
||||
m_inputFrequencyOffset(0),
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include <QMutex>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/nco.h"
|
||||
#include "dsp/interpolator.h"
|
||||
#include "util/movingaverage.h"
|
||||
@ -45,7 +45,7 @@ class DownChannelizer;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class fftfilt;
|
||||
|
||||
class AMDemod : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
class AMDemod : public BasebandSampleSink, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
public:
|
||||
class MsgConfigureAMDemod : public Message {
|
||||
@ -110,6 +110,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage);
|
||||
|
@ -54,7 +54,7 @@ BasebandSampleSink* AMDemodPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new AMDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* AMDemodPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* AMDemodPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new AMDemod(deviceAPI);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -40,7 +40,7 @@ const QString ATVDemod::m_channelId = "ATVDemod";
|
||||
const int ATVDemod::m_ssbFftLen = 1024;
|
||||
|
||||
ATVDemod::ATVDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_scopeSink(0),
|
||||
m_registeredTVScreen(0),
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/devicesamplesource.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
#include "dsp/downchannelizer.h"
|
||||
@ -44,7 +44,7 @@ class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
class ATVDemod : public BasebandSampleSink, public ChannelSinkAPI
|
||||
class ATVDemod : public BasebandSampleSink, public ChannelAPI
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
@ -233,6 +233,16 @@ public:
|
||||
virtual QByteArray serialize() const { return QByteArray(); }
|
||||
virtual bool deserialize(const QByteArray& data) { (void) data; return false; }
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_rfRunning.m_intFrequencyOffset;
|
||||
}
|
||||
|
||||
void setTVScreen(TVScreen *objScreen); //!< set by the GUI
|
||||
int getSampleRate();
|
||||
int getEffectiveSampleRate();
|
||||
|
@ -65,7 +65,7 @@ BasebandSampleSink* ATVDemodPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new ATVDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* ATVDemodPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* ATVDemodPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new ATVDemod(deviceAPI);
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_ptrPluginDescriptor;
|
||||
|
@ -53,7 +53,7 @@ const Real BFMDemod::default_deemphasis = 50.0; // 50 us
|
||||
const int BFMDemod::m_udpBlockSize = 512;
|
||||
|
||||
BFMDemod::BFMDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_inputSampleRate(384000),
|
||||
m_inputFrequencyOffset(0),
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/nco.h"
|
||||
#include "dsp/interpolator.h"
|
||||
#include "dsp/lowpass.h"
|
||||
@ -52,7 +52,7 @@ namespace SWGSDRangel {
|
||||
class SWGRDSReport;
|
||||
}
|
||||
|
||||
class BFMDemod : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
class BFMDemod : public BasebandSampleSink, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
public:
|
||||
class MsgConfigureBFMDemod : public Message {
|
||||
@ -139,6 +139,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
double getMagSq() const { return m_magsq; }
|
||||
|
||||
bool getPilotLock() const { return m_pilotPLL.locked(); }
|
||||
|
@ -73,7 +73,7 @@ BasebandSampleSink* BFMPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new BFMDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* BFMPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* BFMPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new BFMDemod(deviceAPI);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -37,7 +37,7 @@ MESSAGE_CLASS_DEFINITION(DATVDemod::MsgConfigureDATVDemod, Message)
|
||||
MESSAGE_CLASS_DEFINITION(DATVDemod::MsgConfigureChannelizer, Message)
|
||||
|
||||
DATVDemod::DATVDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_blnNeedConfigUpdate(false),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_objRegisteredTVScreen(0),
|
||||
|
@ -44,7 +44,7 @@ class DownChannelizer;
|
||||
#include "datvideorender.h"
|
||||
#include "datvdemodsettings.h"
|
||||
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "dsp/devicesamplesource.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
@ -123,7 +123,7 @@ struct config
|
||||
}
|
||||
};
|
||||
|
||||
class DATVDemod : public BasebandSampleSink, public ChannelSinkAPI
|
||||
class DATVDemod : public BasebandSampleSink, public ChannelAPI
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
@ -145,6 +145,16 @@ public:
|
||||
virtual void stop();
|
||||
virtual bool handleMessage(const Message& cmd);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_centerFrequency;
|
||||
}
|
||||
|
||||
bool SetTVScreen(TVScreen *objScreen);
|
||||
DATVideostream * SetVideoRender(DATVideoRender *objScreen);
|
||||
bool audioActive();
|
||||
|
@ -66,7 +66,7 @@ BasebandSampleSink* DATVDemodPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new DATVDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* DATVDemodPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* DATVDemodPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new DATVDemod(deviceAPI);
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
|
||||
private:
|
||||
|
@ -52,7 +52,7 @@ const QString DSDDemod::m_channelId = "DSDDemod";
|
||||
const int DSDDemod::m_udpBlockSize = 512;
|
||||
|
||||
DSDDemod::DSDDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_inputSampleRate(48000),
|
||||
m_inputFrequencyOffset(0),
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/phasediscri.h"
|
||||
#include "dsp/nco.h"
|
||||
#include "dsp/interpolator.h"
|
||||
@ -47,7 +47,7 @@ class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
class DSDDemod : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
class DSDDemod : public BasebandSampleSink, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
public:
|
||||
class MsgConfigureDSDDemod : public Message {
|
||||
@ -115,6 +115,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
double getMagSq() { return m_magsq; }
|
||||
bool getSquelchOpen() const { return m_squelchOpen; }
|
||||
|
||||
|
@ -72,7 +72,7 @@ BasebandSampleSink* DSDDemodPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new DSDDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* DSDDemodPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* DSDDemodPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new DSDDemod(deviceAPI);
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -145,7 +145,7 @@ void FreeDVDemod::LevelRMS::accumulate(float level)
|
||||
}
|
||||
|
||||
FreeDVDemod::FreeDVDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_hiCutoff(6000),
|
||||
m_lowCutoff(0),
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/ncof.h"
|
||||
#include "dsp/interpolator.h"
|
||||
#include "dsp/fftfilt.h"
|
||||
@ -49,7 +49,7 @@ namespace FreeDV {
|
||||
struct freedv;
|
||||
}
|
||||
|
||||
class FreeDVDemod : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
class FreeDVDemod : public BasebandSampleSink, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
public:
|
||||
class MsgConfigureFreeDVDemod : public Message {
|
||||
@ -143,6 +143,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
uint32_t getAudioSampleRate() const { return m_audioSampleRate; }
|
||||
uint32_t getModemSampleRate() const { return m_modemSampleRate; }
|
||||
double getMagSq() const { return m_magsq; }
|
||||
|
@ -71,7 +71,7 @@ BasebandSampleSink* FreeDVPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new FreeDVDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* FreeDVPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* FreeDVPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new FreeDVDemod(deviceAPI);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -37,7 +37,7 @@ const QString LoRaDemod::m_channelIdURI = "sdrangel.channel.lorademod";
|
||||
const QString LoRaDemod::m_channelId = "LoRaDemod";
|
||||
|
||||
LoRaDemod::LoRaDemod(DeviceAPI* deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_sampleSink(0),
|
||||
m_settingsMutex(QMutex::Recursive)
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/nco.h"
|
||||
#include "dsp/interpolator.h"
|
||||
#include "util/message.h"
|
||||
@ -41,7 +41,7 @@ class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
class LoRaDemod : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
class LoRaDemod : public BasebandSampleSink, public ChannelAPI {
|
||||
public:
|
||||
class MsgConfigureLoRaDemod : public Message {
|
||||
MESSAGE_CLASS_DECLARATION
|
||||
@ -106,6 +106,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const QString m_channelIdURI;
|
||||
static const QString m_channelId;
|
||||
|
||||
|
@ -43,7 +43,7 @@ BasebandSampleSink* LoRaPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new LoRaDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* LoRaPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* LoRaPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new LoRaDemod(deviceAPI);
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -53,7 +53,7 @@ static const double afSqTones_lowrate[2] = {1000.0, 3500.0};
|
||||
const int NFMDemod::m_udpBlockSize = 512;
|
||||
|
||||
NFMDemod::NFMDemod(DeviceAPI *devieAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(devieAPI),
|
||||
m_inputSampleRate(48000),
|
||||
m_inputFrequencyOffset(0),
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/phasediscri.h"
|
||||
#include "dsp/nco.h"
|
||||
#include "dsp/interpolator.h"
|
||||
@ -47,7 +47,7 @@ class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
class NFMDemod : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
class NFMDemod : public BasebandSampleSink, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
public:
|
||||
class MsgConfigureNFMDemod : public Message {
|
||||
@ -132,6 +132,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage);
|
||||
|
@ -54,7 +54,7 @@ BasebandSampleSink* NFMPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new NFMDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* NFMPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* NFMPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new NFMDemod(deviceAPI);
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -49,7 +49,7 @@ const QString SSBDemod::m_channelIdURI = "sdrangel.channel.ssbdemod";
|
||||
const QString SSBDemod::m_channelId = "SSBDemod";
|
||||
|
||||
SSBDemod::SSBDemod(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_audioBinaual(false),
|
||||
m_audioFlipChannels(false),
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/ncof.h"
|
||||
#include "dsp/interpolator.h"
|
||||
#include "dsp/fftfilt.h"
|
||||
@ -45,7 +45,7 @@ class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
class SSBDemod : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
class SSBDemod : public BasebandSampleSink, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
public:
|
||||
class MsgConfigureSSBDemod : public Message {
|
||||
@ -126,6 +126,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
uint32_t getAudioSampleRate() const { return m_audioSampleRate; }
|
||||
double getMagSq() const { return m_magsq; }
|
||||
bool getAudioActive() const { return m_audioActive; }
|
||||
|
@ -54,7 +54,7 @@ BasebandSampleSink* SSBPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new SSBDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* SSBPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* SSBPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new SSBDemod(deviceAPI);
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -49,7 +49,7 @@ const QString WFMDemod::m_channelId = "WFMDemod";
|
||||
const int WFMDemod::m_udpBlockSize = 512;
|
||||
|
||||
WFMDemod::WFMDemod(DeviceAPI* deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_inputSampleRate(384000),
|
||||
m_inputFrequencyOffset(0),
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/nco.h"
|
||||
#include "dsp/interpolator.h"
|
||||
#include "dsp/lowpass.h"
|
||||
@ -45,7 +45,7 @@ class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
class DeviceAPI;
|
||||
|
||||
class WFMDemod : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
class WFMDemod : public BasebandSampleSink, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
public:
|
||||
class MsgConfigureWFMDemod : public Message {
|
||||
@ -110,6 +110,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
double getMagSq() const { return m_movingAverage.asDouble(); }
|
||||
bool getSquelchOpen() const { return m_squelchOpen; }
|
||||
|
||||
|
@ -55,7 +55,7 @@ BasebandSampleSink* WFMPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new WFMDemod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* WFMPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* WFMPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new WFMDemod(deviceAPI);
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -51,7 +51,7 @@ const QString FreqTracker::m_channelId = "FreqTracker";
|
||||
const int FreqTracker::m_udpBlockSize = 512;
|
||||
|
||||
FreqTracker::FreqTracker(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_deviceSampleRate(48000),
|
||||
m_inputSampleRate(48000),
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include <QMutex>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/ncof.h"
|
||||
#include "dsp/interpolator.h"
|
||||
#include "util/movingaverage.h"
|
||||
@ -46,7 +46,7 @@ class ThreadedBasebandSampleSink;
|
||||
class QTimer;
|
||||
class fftfilt;
|
||||
|
||||
class FreqTracker : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
class FreqTracker : public BasebandSampleSink, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
public:
|
||||
class MsgConfigureFreqTracker : public Message {
|
||||
@ -133,6 +133,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage);
|
||||
|
@ -71,7 +71,7 @@ BasebandSampleSink* FreqTrackerPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new FreqTracker(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* FreqTrackerPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* FreqTrackerPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new FreqTracker(deviceAPI);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -46,7 +46,7 @@ const QString LocalSink::m_channelIdURI = "sdrangel.channel.localsink";
|
||||
const QString LocalSink::m_channelId = "LocalSink";
|
||||
|
||||
LocalSink::LocalSink(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_running(false),
|
||||
m_sinkThread(0),
|
||||
@ -250,9 +250,9 @@ DeviceSampleSource *LocalSink::getLocalDevice(uint32_t index)
|
||||
|
||||
if (deviceSource->getDeviceDescription() == "LocalInput")
|
||||
{
|
||||
if (!getDeviceSourceAPI()) {
|
||||
if (!getDeviceAPI()) {
|
||||
qDebug("LocalSink::getLocalDevice: the parent device is unset");
|
||||
} else if (getDeviceSourceAPI()->getDeviceUID() == deviceSourceEngine->getUID()) {
|
||||
} else if (getDeviceAPI()->getDeviceUID() == deviceSourceEngine->getUID()) {
|
||||
qDebug("LocalSink::getLocalDevice: source device at index %u is the parent device", index);
|
||||
} else {
|
||||
return deviceSource;
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "localsinksettings.h"
|
||||
|
||||
class DeviceAPI;
|
||||
@ -34,7 +34,7 @@ class LocalSinkThread;
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
|
||||
class LocalSink : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
class LocalSink : public BasebandSampleSink, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
public:
|
||||
class MsgConfigureLocalSink : public Message {
|
||||
@ -119,6 +119,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_frequencyOffset;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage);
|
||||
|
@ -72,7 +72,7 @@ BasebandSampleSink* LocalSinkPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new LocalSink(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* LocalSinkPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* LocalSinkPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new LocalSink(deviceAPI);
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -51,7 +51,7 @@ const QString RemoteSink::m_channelIdURI = "sdrangel.channel.remotesink";
|
||||
const QString RemoteSink::m_channelId = "RemoteSink";
|
||||
|
||||
RemoteSink::RemoteSink(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_running(false),
|
||||
m_sinkThread(0),
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "remotesinksettings.h"
|
||||
|
||||
class QNetworkAccessManager;
|
||||
@ -40,7 +40,7 @@ class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
class RemoteSinkThread;
|
||||
|
||||
class RemoteSink : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
class RemoteSink : public BasebandSampleSink, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
public:
|
||||
class MsgConfigureRemoteSink : public Message {
|
||||
@ -125,6 +125,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_frequencyOffset;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage);
|
||||
|
@ -72,7 +72,7 @@ BasebandSampleSink* RemoteSinkPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new RemoteSink(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* RemoteSinkPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* RemoteSinkPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new RemoteSink(deviceAPI);
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -46,7 +46,7 @@ const QString UDPSink::m_channelIdURI = "sdrangel.channel.udpsink";
|
||||
const QString UDPSink::m_channelId = "UDPSink";
|
||||
|
||||
UDPSink::UDPSink(DeviceAPI *deviceAPI) :
|
||||
ChannelSinkAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_inputSampleRate(48000),
|
||||
m_inputFrequencyOffset(0),
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/nco.h"
|
||||
#include "dsp/fftfilt.h"
|
||||
#include "dsp/interpolator.h"
|
||||
@ -45,7 +45,7 @@ class DeviceAPI;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class DownChannelizer;
|
||||
|
||||
class UDPSink : public BasebandSampleSink, public ChannelSinkAPI {
|
||||
class UDPSink : public BasebandSampleSink, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
@ -118,6 +118,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage);
|
||||
|
@ -72,7 +72,7 @@ BasebandSampleSink* UDPSinkPlugin::createRxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new UDPSink(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSinkAPI* UDPSinkPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* UDPSinkPlugin::createRxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new UDPSink(deviceAPI);
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createRxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel);
|
||||
virtual BasebandSampleSink* createRxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSinkAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createRxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -51,7 +51,7 @@ const QString AMMod::m_channelId ="AMMod";
|
||||
const int AMMod::m_levelNbSamples = 480; // every 10ms
|
||||
|
||||
AMMod::AMMod(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSource),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_basebandSampleRate(48000),
|
||||
m_outputSampleRate(48000),
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesource.h"
|
||||
#include "channel/channelsourceapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/nco.h"
|
||||
#include "dsp/ncof.h"
|
||||
#include "dsp/interpolator.h"
|
||||
@ -44,7 +44,7 @@ class ThreadedBasebandSampleSource;
|
||||
class UpChannelizer;
|
||||
class DeviceAPI;
|
||||
|
||||
class AMMod : public BasebandSampleSource, public ChannelSourceAPI {
|
||||
class AMMod : public BasebandSampleSource, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
@ -218,6 +218,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage);
|
||||
|
@ -71,7 +71,7 @@ BasebandSampleSource* AMModPlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new AMMod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* AMModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* AMModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new AMMod(deviceAPI);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -59,7 +59,7 @@ const int ATVMod::m_cameraFPSTestNbFrames = 100;
|
||||
const int ATVMod::m_ssbFftLen = 1024;
|
||||
|
||||
ATVMod::ATVMod(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSource),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_outputSampleRate(1000000),
|
||||
m_inputFrequencyOffset(0),
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include <stdint.h>
|
||||
|
||||
#include "dsp/basebandsamplesource.h"
|
||||
#include "channel/channelsourceapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/nco.h"
|
||||
#include "dsp/interpolator.h"
|
||||
#include "util/movingaverage.h"
|
||||
@ -45,7 +45,7 @@ class DeviceAPI;
|
||||
class ThreadedBasebandSampleSource;
|
||||
class UpChannelizer;
|
||||
|
||||
class ATVMod : public BasebandSampleSource, public ChannelSourceAPI {
|
||||
class ATVMod : public BasebandSampleSource, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
@ -371,6 +371,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage);
|
||||
|
@ -71,7 +71,7 @@ BasebandSampleSource* ATVModPlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new ATVMod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* ATVModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* ATVModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new ATVMod(deviceAPI);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -55,7 +55,7 @@ const int FreeDVMod::m_levelNbSamples = 80; // every 10ms
|
||||
const int FreeDVMod::m_ssbFftLen = 1024;
|
||||
|
||||
FreeDVMod::FreeDVMod(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSource),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_basebandSampleRate(48000),
|
||||
m_outputSampleRate(48000),
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesource.h"
|
||||
#include "channel/channelsourceapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "dsp/ncof.h"
|
||||
#include "dsp/interpolator.h"
|
||||
@ -50,7 +50,7 @@ namespace FreeDV {
|
||||
struct freedv;
|
||||
}
|
||||
|
||||
class FreeDVMod : public BasebandSampleSource, public ChannelSourceAPI {
|
||||
class FreeDVMod : public BasebandSampleSource, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
@ -226,6 +226,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage);
|
||||
|
@ -71,7 +71,7 @@ BasebandSampleSource* FreeDVModPlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new FreeDVMod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* FreeDVModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* FreeDVModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new FreeDVMod(deviceAPI);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -53,7 +53,7 @@ const QString NFMMod::m_channelId = "NFMMod";
|
||||
const int NFMMod::m_levelNbSamples = 480; // every 10ms
|
||||
|
||||
NFMMod::NFMMod(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSource),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_basebandSampleRate(48000),
|
||||
m_outputSampleRate(48000),
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesource.h"
|
||||
#include "channel/channelsourceapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/nco.h"
|
||||
#include "dsp/ncof.h"
|
||||
#include "dsp/interpolator.h"
|
||||
@ -46,7 +46,7 @@ class UpChannelizer;
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
|
||||
class NFMMod : public BasebandSampleSource, public ChannelSourceAPI {
|
||||
class NFMMod : public BasebandSampleSource, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
@ -220,6 +220,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage);
|
||||
|
@ -71,7 +71,7 @@ BasebandSampleSource* NFMModPlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new NFMMod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* NFMModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* NFMModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new NFMMod(deviceAPI);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *rxChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -53,7 +53,7 @@ const int SSBMod::m_levelNbSamples = 480; // every 10ms
|
||||
const int SSBMod::m_ssbFftLen = 1024;
|
||||
|
||||
SSBMod::SSBMod(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSource),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_basebandSampleRate(48000),
|
||||
m_outputSampleRate(48000),
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesource.h"
|
||||
#include "channel/channelsourceapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "dsp/ncof.h"
|
||||
#include "dsp/interpolator.h"
|
||||
@ -45,7 +45,7 @@ class DeviceAPI;
|
||||
class ThreadedBasebandSampleSource;
|
||||
class UpChannelizer;
|
||||
|
||||
class SSBMod : public BasebandSampleSource, public ChannelSourceAPI {
|
||||
class SSBMod : public BasebandSampleSource, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
@ -221,6 +221,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage);
|
||||
|
@ -71,7 +71,7 @@ BasebandSampleSource* SSBModPlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new SSBMod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* SSBModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* SSBModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new SSBMod(deviceAPI);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -53,7 +53,7 @@ const int WFMMod::m_levelNbSamples = 480; // every 10ms
|
||||
const int WFMMod::m_rfFilterFFTLength = 1024;
|
||||
|
||||
WFMMod::WFMMod(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSource),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_basebandSampleRate(384000),
|
||||
m_outputSampleRate(384000),
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesource.h"
|
||||
#include "channel/channelsourceapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/nco.h"
|
||||
#include "dsp/ncof.h"
|
||||
#include "dsp/interpolator.h"
|
||||
@ -45,7 +45,7 @@ class DeviceAPI;
|
||||
class ThreadedBasebandSampleSource;
|
||||
class UpChannelizer;
|
||||
|
||||
class WFMMod : public BasebandSampleSource, public ChannelSourceAPI {
|
||||
class WFMMod : public BasebandSampleSource, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
@ -219,6 +219,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage);
|
||||
|
@ -71,7 +71,7 @@ BasebandSampleSource* WFMModPlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new WFMMod(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* WFMModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* WFMModPlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new WFMMod(deviceAPI);
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -47,7 +47,7 @@ const QString RemoteSource::m_channelIdURI = "sdrangel.channeltx.remotesource";
|
||||
const QString RemoteSource::m_channelId ="RemoteSource";
|
||||
|
||||
RemoteSource::RemoteSource(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSource),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_sourceThread(0),
|
||||
m_running(false),
|
||||
|
@ -18,16 +18,17 @@
|
||||
#ifndef PLUGINS_CHANNELTX_REMOTESRC_REMOTESRC_H_
|
||||
#define PLUGINS_CHANNELTX_REMOTESRC_REMOTESRC_H_
|
||||
|
||||
#include <channel/remotedatablock.h>
|
||||
#include <channel/remotedataqueue.h>
|
||||
#include <channel/remotedatareadqueue.h>
|
||||
#include "channel/remotedatablock.h"
|
||||
#include "channel/remotedataqueue.h"
|
||||
#include "channel/remotedatareadqueue.h"
|
||||
|
||||
#include <QObject>
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "cm256cc/cm256.h"
|
||||
|
||||
#include "dsp/basebandsamplesource.h"
|
||||
#include "channel/channelsourceapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "util/message.h"
|
||||
|
||||
#include "../remotesource/remotesourcesettings.h"
|
||||
@ -40,7 +41,7 @@ class RemoteDataBlock;
|
||||
class QNetworkAccessManager;
|
||||
class QNetworkReply;
|
||||
|
||||
class RemoteSource : public BasebandSampleSource, public ChannelSourceAPI {
|
||||
class RemoteSource : public BasebandSampleSource, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
@ -195,6 +196,16 @@ public:
|
||||
virtual void getTitle(QString& title) { title = m_settings.m_title; }
|
||||
virtual qint64 getCenterFrequency() const { return 0; }
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
|
@ -71,7 +71,7 @@ BasebandSampleSource* RemoteSourcePlugin::createTxChannelBS(DeviceAPI *deviceAPI
|
||||
return new RemoteSource(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* RemoteSourcePlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* RemoteSourcePlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new RemoteSource(deviceAPI);
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -42,7 +42,7 @@ const QString UDPSource::m_channelIdURI = "sdrangel.channeltx.udpsource";
|
||||
const QString UDPSource::m_channelId = "UDPSource";
|
||||
|
||||
UDPSource::UDPSource(DeviceAPI *deviceAPI) :
|
||||
ChannelSourceAPI(m_channelIdURI),
|
||||
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSource),
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_basebandSampleRate(48000),
|
||||
m_outputSampleRate(48000),
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include "dsp/basebandsamplesource.h"
|
||||
#include "channel/channelsourceapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
#include "dsp/basebandsamplesink.h"
|
||||
#include "dsp/interpolator.h"
|
||||
#include "dsp/movingaverage.h"
|
||||
@ -39,7 +39,7 @@ class DeviceAPI;
|
||||
class ThreadedBasebandSampleSource;
|
||||
class UpChannelizer;
|
||||
|
||||
class UDPSource : public BasebandSampleSource, public ChannelSourceAPI {
|
||||
class UDPSource : public BasebandSampleSource, public ChannelAPI {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
@ -108,6 +108,16 @@ public:
|
||||
virtual QByteArray serialize() const;
|
||||
virtual bool deserialize(const QByteArray& data);
|
||||
|
||||
virtual int getNbSinkStreams() const { return 1; }
|
||||
virtual int getNbSourceStreams() const { return 0; }
|
||||
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
|
||||
{
|
||||
(void) streamIndex;
|
||||
(void) sinkElseSource;
|
||||
return m_settings.m_inputFrequencyOffset;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage);
|
||||
|
@ -73,7 +73,7 @@ BasebandSampleSource* UDPSourcePlugin::createTxChannelBS(DeviceAPI *deviceAPI)
|
||||
return new UDPSource(deviceAPI);
|
||||
}
|
||||
|
||||
ChannelSourceAPI* UDPSourcePlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
ChannelAPI* UDPSourcePlugin::createTxChannelCS(DeviceAPI *deviceAPI)
|
||||
{
|
||||
return new UDPSource(deviceAPI);
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ public:
|
||||
|
||||
virtual PluginInstanceGUI* createTxChannelGUI(DeviceUISet *deviceUISet, BasebandSampleSource *txChannel);
|
||||
virtual BasebandSampleSource* createTxChannelBS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelSourceAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
virtual ChannelAPI* createTxChannelCS(DeviceAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -15,8 +15,9 @@ set(sdrbase_SOURCES
|
||||
audio/audionetsink.cpp
|
||||
audio/audioresampler.cpp
|
||||
|
||||
channel/channelsinkapi.cpp
|
||||
channel/channelsourceapi.cpp
|
||||
channel/channelapi.cpp
|
||||
# channel/channelsinkapi.cpp
|
||||
# channel/channelsourceapi.cpp
|
||||
channel/remotedataqueue.cpp
|
||||
channel/remotedatareadqueue.cpp
|
||||
|
||||
@ -113,8 +114,9 @@ set(sdrbase_HEADERS
|
||||
audio/audionetsink.h
|
||||
audio/audioresampler.h
|
||||
|
||||
channel/channelsinkapi.h
|
||||
channel/channelsourceapi.h
|
||||
channel/channelapi.h
|
||||
# channel/channelsinkapi.h
|
||||
# channel/channelsourceapi.h
|
||||
channel/remotedataqueue.h
|
||||
channel/remotedatareadqueue.h
|
||||
channel/remotedatablock.h
|
||||
|
29
sdrbase/channel/channelapi.cpp
Normal file
29
sdrbase/channel/channelapi.cpp
Normal file
@ -0,0 +1,29 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2019 Edouard Griffiths, F4EXB //
|
||||
// //
|
||||
// API for Rx channels //
|
||||
// //
|
||||
// This program is free software; you can redistribute it and/or modify //
|
||||
// it under the terms of the GNU General Public License as published by //
|
||||
// the Free Software Foundation as version 3 of the License, or //
|
||||
// (at your option) any later version. //
|
||||
// //
|
||||
// This program is distributed in the hope that it will be useful, //
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
|
||||
// GNU General Public License V3 for more details. //
|
||||
// //
|
||||
// You should have received a copy of the GNU General Public License //
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "util/uid.h"
|
||||
#include "channelapi.h"
|
||||
|
||||
ChannelAPI::ChannelAPI(const QString& name, StreamType streamType) :
|
||||
m_name(name),
|
||||
m_streamType(streamType),
|
||||
m_indexInDeviceSet(-1),
|
||||
m_deviceAPI(0),
|
||||
m_uid(UidCalculator::getNewObjectId())
|
||||
{ }
|
116
sdrbase/channel/channelapi.h
Normal file
116
sdrbase/channel/channelapi.h
Normal file
@ -0,0 +1,116 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (C) 2019 Edouard Griffiths, F4EXB //
|
||||
// //
|
||||
// API for Rx channels //
|
||||
// //
|
||||
// This program is free software; you can redistribute it and/or modify //
|
||||
// it under the terms of the GNU General Public License as published by //
|
||||
// the Free Software Foundation as version 3 of the License, or //
|
||||
// (at your option) any later version. //
|
||||
// //
|
||||
// This program is distributed in the hope that it will be useful, //
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
|
||||
// GNU General Public License V3 for more details. //
|
||||
// //
|
||||
// You should have received a copy of the GNU General Public License //
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef SDRBASE_CHANNEL_CHANNELAPI_H_
|
||||
#define SDRBASE_CHANNEL_CHANNELAPI_H_
|
||||
|
||||
#include <QString>
|
||||
#include <QByteArray>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "export.h"
|
||||
|
||||
class DeviceAPI;
|
||||
|
||||
namespace SWGSDRangel
|
||||
{
|
||||
class SWGChannelSettings;
|
||||
class SWGChannelReport;
|
||||
}
|
||||
|
||||
class SDRBASE_API ChannelAPI {
|
||||
public:
|
||||
enum StreamType //!< This is the same enum as in PluginInterface
|
||||
{
|
||||
StreamSingleSink, //!< Exposes a single sink stream (input, Rx)
|
||||
StreamSingleSource, //!< Exposes a single source stream (output, Tx)
|
||||
StreamAny //!< May expose any number of sink and/or source streams
|
||||
};
|
||||
|
||||
ChannelAPI(const QString& name, StreamType streamType);
|
||||
virtual ~ChannelAPI() {}
|
||||
virtual void destroy() = 0;
|
||||
|
||||
virtual void getIdentifier(QString& id) = 0;
|
||||
virtual void getTitle(QString& title) = 0;
|
||||
virtual void setName(const QString& name) { m_name = name; }
|
||||
virtual const QString& getName() const { return m_name; }
|
||||
virtual qint64 getCenterFrequency() const = 0; //!< Applies to a default stream
|
||||
|
||||
virtual QByteArray serialize() const = 0;
|
||||
virtual bool deserialize(const QByteArray& data) = 0;
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage)
|
||||
{
|
||||
(void) response;
|
||||
errorMessage = "Not implemented"; return 501;
|
||||
}
|
||||
|
||||
virtual int webapiSettingsPutPatch(
|
||||
bool force,
|
||||
const QStringList& channelSettingsKeys,
|
||||
SWGSDRangel::SWGChannelSettings& response,
|
||||
QString& errorMessage)
|
||||
{
|
||||
(void) force;
|
||||
(void) channelSettingsKeys;
|
||||
(void) response;
|
||||
errorMessage = "Not implemented"; return 501;
|
||||
}
|
||||
|
||||
virtual int webapiReportGet(
|
||||
SWGSDRangel::SWGChannelReport& response,
|
||||
QString& errorMessage)
|
||||
{
|
||||
(void) response;
|
||||
errorMessage = "Not implemented"; return 501;
|
||||
}
|
||||
|
||||
int getIndexInDeviceSet() const { return m_indexInDeviceSet; }
|
||||
void setIndexInDeviceSet(int indexInDeviceSet) { m_indexInDeviceSet = indexInDeviceSet; }
|
||||
int getDeviceSetIndex() const { return m_deviceSetIndex; }
|
||||
void setDeviceSetIndex(int deviceSetIndex) { m_deviceSetIndex = deviceSetIndex; }
|
||||
DeviceAPI *getDeviceAPI() { return m_deviceAPI; }
|
||||
void setDeviceAPI(DeviceAPI *deviceAPI) { m_deviceAPI = deviceAPI; }
|
||||
uint64_t getUID() const { return m_uid; }
|
||||
|
||||
// MIMO support
|
||||
StreamType getStreamType() const { return m_streamType; }
|
||||
virtual int getNbSinkStreams() const = 0;
|
||||
virtual int getNbSourceStreams() const = 0;
|
||||
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const = 0;
|
||||
|
||||
|
||||
private:
|
||||
StreamType m_streamType;
|
||||
/** Unique identifier in a device set used for sorting. Used when there is no GUI.
|
||||
* In GUI version it is supported by GUI object name accessed through PluginInstanceGUI.
|
||||
*/
|
||||
QString m_name;
|
||||
|
||||
int m_indexInDeviceSet;
|
||||
int m_deviceSetIndex;
|
||||
DeviceAPI *m_deviceAPI;
|
||||
uint64_t m_uid;
|
||||
};
|
||||
|
||||
|
||||
#endif // SDRBASE_CHANNEL_CHANNELAPI_H_
|
@ -23,8 +23,7 @@
|
||||
#include "dsp/devicesamplesource.h"
|
||||
#include "dsp/devicesamplesink.h"
|
||||
#include "settings/preset.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelsourceapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
|
||||
#include "deviceapi.h"
|
||||
|
||||
@ -107,14 +106,17 @@ void DeviceAPI::removeChannelSource(ThreadedBasebandSampleSource* source, int st
|
||||
}
|
||||
}
|
||||
|
||||
void DeviceAPI::addChannelSinkAPI(ChannelSinkAPI* channelAPI)
|
||||
void DeviceAPI::addChannelSinkAPI(ChannelAPI* channelAPI, int streamIndex)
|
||||
{
|
||||
(void) streamIndex;
|
||||
m_channelSinkAPIs.append(channelAPI);
|
||||
renumerateChannels();
|
||||
}
|
||||
|
||||
void DeviceAPI::removeChannelSinkAPI(ChannelSinkAPI* channelAPI)
|
||||
void DeviceAPI::removeChannelSinkAPI(ChannelAPI* channelAPI, int streamIndex)
|
||||
{
|
||||
(void) streamIndex;
|
||||
|
||||
if (m_channelSinkAPIs.removeOne(channelAPI)) {
|
||||
renumerateChannels();
|
||||
}
|
||||
@ -122,14 +124,17 @@ void DeviceAPI::removeChannelSinkAPI(ChannelSinkAPI* channelAPI)
|
||||
channelAPI->setIndexInDeviceSet(-1);
|
||||
}
|
||||
|
||||
void DeviceAPI::addChannelSourceAPI(ChannelSourceAPI* channelAPI)
|
||||
void DeviceAPI::addChannelSourceAPI(ChannelAPI* channelAPI, int streamIndex)
|
||||
{
|
||||
(void) streamIndex;
|
||||
m_channelSourceAPIs.append(channelAPI);
|
||||
renumerateChannels();
|
||||
}
|
||||
|
||||
void DeviceAPI::removeChannelSourceAPI(ChannelSourceAPI* channelAPI)
|
||||
void DeviceAPI::removeChannelSourceAPI(ChannelAPI* channelAPI, int streamIndex)
|
||||
{
|
||||
(void) streamIndex;
|
||||
|
||||
if (m_channelSourceAPIs.removeOne(channelAPI)) {
|
||||
renumerateChannels();
|
||||
}
|
||||
@ -356,8 +361,10 @@ void DeviceAPI::getDeviceEngineStateStr(QString& state)
|
||||
}
|
||||
}
|
||||
|
||||
ChannelSinkAPI *DeviceAPI::getChanelSinkAPIAt(int index)
|
||||
ChannelAPI *DeviceAPI::getChanelSinkAPIAt(int index, int streamIndex)
|
||||
{
|
||||
(void) streamIndex;
|
||||
|
||||
if (m_streamType == StreamSingleRx)
|
||||
{
|
||||
if (index < m_channelSinkAPIs.size()) {
|
||||
@ -372,8 +379,10 @@ ChannelSinkAPI *DeviceAPI::getChanelSinkAPIAt(int index)
|
||||
}
|
||||
}
|
||||
|
||||
ChannelSourceAPI *DeviceAPI::getChanelSourceAPIAt(int index)
|
||||
ChannelAPI *DeviceAPI::getChanelSourceAPIAt(int index, int streamIndex)
|
||||
{
|
||||
(void) streamIndex;
|
||||
|
||||
if (m_streamType == StreamSingleTx)
|
||||
{
|
||||
if (index < m_channelSourceAPIs.size()) {
|
||||
@ -688,7 +697,7 @@ void DeviceAPI::renumerateChannels()
|
||||
{
|
||||
m_channelSinkAPIs.at(i)->setIndexInDeviceSet(i);
|
||||
m_channelSinkAPIs.at(i)->setDeviceSetIndex(m_deviceTabIndex);
|
||||
//m_channelSinkAPIs.at(i)->setDeviceSourceAPI(this); // FIXME: use generic DeviceAPI in ChannelSinkAPI
|
||||
m_channelSinkAPIs.at(i)->setDeviceAPI(this);
|
||||
}
|
||||
}
|
||||
else if (m_streamType == StreamSingleTx)
|
||||
@ -697,7 +706,7 @@ void DeviceAPI::renumerateChannels()
|
||||
{
|
||||
m_channelSourceAPIs.at(i)->setIndexInDeviceSet(i);
|
||||
m_channelSourceAPIs.at(i)->setDeviceSetIndex(m_deviceTabIndex);
|
||||
//m_channelSourceAPIs.at(i)->setDeviceSinkAPI(this); // FIXME: use generic DeviceAPI in ChannelSourceAPI
|
||||
m_channelSourceAPIs.at(i)->setDeviceAPI(this);
|
||||
}
|
||||
}
|
||||
}
|
@ -27,8 +27,7 @@
|
||||
class BasebandSampleSink;
|
||||
class ThreadedBasebandSampleSink;
|
||||
class ThreadedBasebandSampleSource;
|
||||
class ChannelSinkAPI;
|
||||
class ChannelSourceAPI;
|
||||
class ChannelAPI;
|
||||
class DeviceSampleSink;
|
||||
class DeviceSampleSource;
|
||||
class MessageQueue;
|
||||
@ -72,10 +71,10 @@ public:
|
||||
void addChannelSource(ThreadedBasebandSampleSource* sink, int streamIndex = 0); //!< Add a channel source (Tx)
|
||||
void removeChannelSource(ThreadedBasebandSampleSource* sink, int streamIndex = 0); //!< Remove a channel source (Tx)
|
||||
|
||||
void addChannelSinkAPI(ChannelSinkAPI* channelAPI);
|
||||
void removeChannelSinkAPI(ChannelSinkAPI* channelAPI);
|
||||
void addChannelSourceAPI(ChannelSourceAPI* channelAPI);
|
||||
void removeChannelSourceAPI(ChannelSourceAPI* channelAPI);
|
||||
void addChannelSinkAPI(ChannelAPI* channelAPI, int streamIndex = 0);
|
||||
void removeChannelSinkAPI(ChannelAPI* channelAPI, int streamIndex = 0);
|
||||
void addChannelSourceAPI(ChannelAPI* channelAPI, int streamIndex = 0);
|
||||
void removeChannelSourceAPI(ChannelAPI* channelAPI, int streamIndex = 0);
|
||||
|
||||
void setSampleSource(DeviceSampleSource* source); //!< Set the device sample source (single Rx)
|
||||
void setSampleSink(DeviceSampleSink* sink); //!< Set the device sample sink (single Tx)
|
||||
@ -149,8 +148,8 @@ public:
|
||||
|
||||
void getDeviceEngineStateStr(QString& state);
|
||||
|
||||
ChannelSinkAPI *getChanelSinkAPIAt(int index);
|
||||
ChannelSourceAPI *getChanelSourceAPIAt(int index);
|
||||
ChannelAPI *getChanelSinkAPIAt(int index, int streamIndex = 0);
|
||||
ChannelAPI *getChanelSourceAPIAt(int index, int streamIndex = 0);
|
||||
|
||||
int getNbSourceChannels() const { return m_channelSourceAPIs.size(); }
|
||||
int getNbSinkChannels() const { return m_channelSinkAPIs.size(); }
|
||||
@ -205,12 +204,12 @@ protected:
|
||||
// Single Rx (i.e. source)
|
||||
|
||||
DSPDeviceSourceEngine *m_deviceSourceEngine;
|
||||
QList<ChannelSinkAPI*> m_channelSinkAPIs;
|
||||
QList<ChannelAPI*> m_channelSinkAPIs;
|
||||
|
||||
// Single Tx (i.e. sink)
|
||||
|
||||
DSPDeviceSinkEngine *m_deviceSinkEngine;
|
||||
QList<ChannelSourceAPI*> m_channelSourceAPIs;
|
||||
QList<ChannelAPI*> m_channelSourceAPIs;
|
||||
|
||||
private:
|
||||
void renumerateChannels();
|
||||
|
@ -25,8 +25,7 @@ class DeviceSampleSource;
|
||||
class DeviceSampleSink;
|
||||
class BasebandSampleSink;
|
||||
class BasebandSampleSource;
|
||||
class ChannelSinkAPI;
|
||||
class ChannelSourceAPI;
|
||||
class ChannelAPI;
|
||||
|
||||
class SDRBASE_API PluginInterface {
|
||||
public:
|
||||
@ -102,7 +101,7 @@ public:
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
virtual ChannelSinkAPI* createRxChannelCS(
|
||||
virtual ChannelAPI* createRxChannelCS(
|
||||
DeviceAPI *deviceAPI)
|
||||
{
|
||||
(void) deviceAPI;
|
||||
@ -127,7 +126,7 @@ public:
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
virtual ChannelSourceAPI* createTxChannelCS(
|
||||
virtual ChannelAPI* createTxChannelCS(
|
||||
DeviceAPI *deviceAPI)
|
||||
{
|
||||
(void) deviceAPI;
|
||||
|
@ -65,8 +65,8 @@ SOURCES += audio/audiodevicemanager.cpp\
|
||||
audio/audioinput.cpp\
|
||||
audio/audionetsink.cpp\
|
||||
audio/audioresampler.cpp\
|
||||
channel/channelsinkapi.cpp\
|
||||
channel/channelsourceapi.cpp\
|
||||
# channel/channelsinkapi.cpp\
|
||||
# channel/channelsourceapi.cpp\
|
||||
channel/remotedataqueue.cpp\
|
||||
channel/remotedatareadqueue.cpp\
|
||||
commands/command.cpp\
|
||||
@ -149,8 +149,8 @@ HEADERS += audio/audiodevicemanager.h\
|
||||
audio/audioinput.h\
|
||||
audio/audionetsink.h\
|
||||
audio/audioresampler.h\
|
||||
channel/channelsinkapi.h\
|
||||
channel/channelsourceapi.h\
|
||||
# channel/channelsinkapi.h\
|
||||
# channel/channelsourceapi.h\
|
||||
channel/remotedataqueue.h\
|
||||
channel/remotedatareadqueue.h\
|
||||
channel/remotedatablock.h\
|
||||
|
@ -34,8 +34,7 @@
|
||||
#include "dsp/dspengine.h"
|
||||
#include "plugin/pluginapi.h"
|
||||
#include "plugin/pluginmanager.h"
|
||||
#include "channel/channelsinkapi.h"
|
||||
#include "channel/channelsourceapi.h"
|
||||
#include "channel/channelapi.h"
|
||||
|
||||
#include "SWGInstanceSummaryResponse.h"
|
||||
#include "SWGInstanceDevicesResponse.h"
|
||||
@ -1528,7 +1527,7 @@ int WebAPIAdapterGUI::devicesetChannelSettingsGet(
|
||||
|
||||
if (deviceSet->m_deviceSourceEngine) // Single Rx
|
||||
{
|
||||
ChannelSinkAPI *channelAPI = deviceSet->m_deviceAPI->getChanelSinkAPIAt(channelIndex);
|
||||
ChannelAPI *channelAPI = deviceSet->m_deviceAPI->getChanelSinkAPIAt(channelIndex);
|
||||
|
||||
if (channelAPI == 0)
|
||||
{
|
||||
@ -1545,7 +1544,7 @@ int WebAPIAdapterGUI::devicesetChannelSettingsGet(
|
||||
}
|
||||
else if (deviceSet->m_deviceSinkEngine) // Single Tx
|
||||
{
|
||||
ChannelSourceAPI *channelAPI = deviceSet->m_deviceAPI->getChanelSourceAPIAt(channelIndex);
|
||||
ChannelAPI *channelAPI = deviceSet->m_deviceAPI->getChanelSourceAPIAt(channelIndex);
|
||||
|
||||
if (channelAPI == 0)
|
||||
{
|
||||
@ -1588,7 +1587,7 @@ int WebAPIAdapterGUI::devicesetChannelReportGet(
|
||||
|
||||
if (deviceSet->m_deviceSourceEngine) // Single Rx
|
||||
{
|
||||
ChannelSinkAPI *channelAPI = deviceSet->m_deviceAPI->getChanelSinkAPIAt(channelIndex);
|
||||
ChannelAPI *channelAPI = deviceSet->m_deviceAPI->getChanelSinkAPIAt(channelIndex);
|
||||
|
||||
if (channelAPI == 0)
|
||||
{
|
||||
@ -1605,7 +1604,7 @@ int WebAPIAdapterGUI::devicesetChannelReportGet(
|
||||
}
|
||||
else if (deviceSet->m_deviceSinkEngine) // Single Tx
|
||||
{
|
||||
ChannelSourceAPI *channelAPI = deviceSet->m_deviceAPI->getChanelSourceAPIAt(channelIndex);
|
||||
ChannelAPI *channelAPI = deviceSet->m_deviceAPI->getChanelSourceAPIAt(channelIndex);
|
||||
|
||||
if (channelAPI == 0)
|
||||
{
|
||||
@ -1649,7 +1648,7 @@ int WebAPIAdapterGUI::devicesetChannelSettingsPutPatch(
|
||||
|
||||
if (deviceSet->m_deviceSourceEngine) // Single Rx
|
||||
{
|
||||
ChannelSinkAPI *channelAPI = deviceSet->m_deviceAPI->getChanelSinkAPIAt(channelIndex);
|
||||
ChannelAPI *channelAPI = deviceSet->m_deviceAPI->getChanelSinkAPIAt(channelIndex);
|
||||
|
||||
if (channelAPI == 0)
|
||||
{
|
||||
@ -1677,7 +1676,7 @@ int WebAPIAdapterGUI::devicesetChannelSettingsPutPatch(
|
||||
}
|
||||
else if (deviceSet->m_deviceSinkEngine) // Single Tx
|
||||
{
|
||||
ChannelSourceAPI *channelAPI = deviceSet->m_deviceAPI->getChanelSourceAPIAt(channelIndex);
|
||||
ChannelAPI *channelAPI = deviceSet->m_deviceAPI->getChanelSourceAPIAt(channelIndex);
|
||||
|
||||
if (channelAPI == 0)
|
||||
{
|
||||
@ -1767,7 +1766,7 @@ void WebAPIAdapterGUI::getDeviceSet(SWGSDRangel::SWGDeviceSet *deviceSet, const
|
||||
{
|
||||
channels->append(new SWGSDRangel::SWGChannel);
|
||||
channels->back()->init();
|
||||
ChannelSourceAPI *channel = deviceUISet->m_deviceAPI->getChanelSourceAPIAt(i);
|
||||
ChannelAPI *channel = deviceUISet->m_deviceAPI->getChanelSourceAPIAt(i);
|
||||
channels->back()->setDeltaFrequency(channel->getCenterFrequency());
|
||||
channels->back()->setIndex(channel->getIndexInDeviceSet());
|
||||
channels->back()->setUid(channel->getUID());
|
||||
@ -1799,7 +1798,7 @@ void WebAPIAdapterGUI::getDeviceSet(SWGSDRangel::SWGDeviceSet *deviceSet, const
|
||||
{
|
||||
channels->append(new SWGSDRangel::SWGChannel);
|
||||
channels->back()->init();
|
||||
ChannelSinkAPI *channel = deviceUISet->m_deviceAPI->getChanelSinkAPIAt(i);
|
||||
ChannelAPI *channel = deviceUISet->m_deviceAPI->getChanelSinkAPIAt(i);
|
||||
channels->back()->setDeltaFrequency(channel->getCenterFrequency());
|
||||
channels->back()->setIndex(channel->getIndexInDeviceSet());
|
||||
channels->back()->setUid(channel->getUID());
|
||||
@ -1824,7 +1823,7 @@ void WebAPIAdapterGUI::getChannelsDetail(SWGSDRangel::SWGChannelsDetail *channel
|
||||
{
|
||||
channels->append(new SWGSDRangel::SWGChannel);
|
||||
channels->back()->init();
|
||||
ChannelSourceAPI *channel = deviceUISet->m_deviceAPI->getChanelSourceAPIAt(i);
|
||||
ChannelAPI *channel = deviceUISet->m_deviceAPI->getChanelSourceAPIAt(i);
|
||||
channels->back()->setDeltaFrequency(channel->getCenterFrequency());
|
||||
channels->back()->setIndex(channel->getIndexInDeviceSet());
|
||||
channels->back()->setUid(channel->getUID());
|
||||
@ -1850,7 +1849,7 @@ void WebAPIAdapterGUI::getChannelsDetail(SWGSDRangel::SWGChannelsDetail *channel
|
||||
{
|
||||
channels->append(new SWGSDRangel::SWGChannel);
|
||||
channels->back()->init();
|
||||
ChannelSinkAPI *channel = deviceUISet->m_deviceAPI->getChanelSinkAPIAt(i);
|
||||
ChannelAPI *channel = deviceUISet->m_deviceAPI->getChanelSinkAPIAt(i);
|
||||
channels->back()->setDeltaFrequency(channel->getCenterFrequency());
|
||||
channels->back()->setIndex(channel->getIndexInDeviceSet());
|
||||
channels->back()->setUid(channel->getUID());
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user