mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-08-11 18:22:25 -04:00
Single channel API
This commit is contained in:
parent
9e628917dc
commit
a5e9f251ef
@ -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…
x
Reference in New Issue
Block a user