mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-03-23 12:48:49 -04:00
Added mod constructor interface in the plugin API. Created method in all Tx channel plugins
This commit is contained in:
parent
4ad038ed9d
commit
9c68da780e
@ -36,6 +36,7 @@ MESSAGE_CLASS_DEFINITION(AMMod::MsgConfigureFileSourceStreamTiming, Message)
|
||||
MESSAGE_CLASS_DEFINITION(AMMod::MsgReportFileSourceStreamData, Message)
|
||||
MESSAGE_CLASS_DEFINITION(AMMod::MsgReportFileSourceStreamTiming, Message)
|
||||
|
||||
const QString AMMod::m_channelID = "sdrangel.channeltx.modam";
|
||||
const int AMMod::m_levelNbSamples = 480; // every 10ms
|
||||
|
||||
AMMod::AMMod(DeviceSinkAPI *deviceAPI) :
|
||||
|
@ -238,6 +238,8 @@ public:
|
||||
|
||||
CWKeyer *getCWKeyer() { return &m_cwKeyer; }
|
||||
|
||||
static const QString m_channelID;
|
||||
|
||||
signals:
|
||||
/**
|
||||
* Level changed
|
||||
|
@ -34,8 +34,6 @@
|
||||
#include "dsp/dspengine.h"
|
||||
#include "mainwindow.h"
|
||||
|
||||
const QString AMModGUI::m_channelID = "sdrangel.channeltx.modam";
|
||||
|
||||
AMModGUI* AMModGUI::create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet)
|
||||
{
|
||||
AMModGUI* gui = new AMModGUI(pluginAPI, deviceUISet);
|
||||
@ -306,7 +304,7 @@ AMModGUI::AMModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, QWidget* pare
|
||||
|
||||
connect(&m_channelMarker, SIGNAL(changed()), this, SLOT(channelMarkerChanged()));
|
||||
|
||||
m_deviceUISet->registerTxChannelInstance(m_channelID, this);
|
||||
m_deviceUISet->registerTxChannelInstance(AMMod::m_channelID, this);
|
||||
m_deviceUISet->addChannelMarker(&m_channelMarker);
|
||||
m_deviceUISet->addRollupWidget(this);
|
||||
|
||||
|
@ -53,8 +53,6 @@ public:
|
||||
virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; }
|
||||
virtual bool handleMessage(const Message& message);
|
||||
|
||||
static const QString m_channelID;
|
||||
|
||||
private slots:
|
||||
void channelMarkerChanged();
|
||||
void handleSourceMessages();
|
||||
|
@ -19,11 +19,12 @@
|
||||
#include "plugin/pluginapi.h"
|
||||
|
||||
#include "ammodgui.h"
|
||||
#include "ammod.h"
|
||||
#include "ammodplugin.h"
|
||||
|
||||
const PluginDescriptor AMModPlugin::m_pluginDescriptor = {
|
||||
QString("AM Modulator"),
|
||||
QString("3.8.0"),
|
||||
QString("3.8.2"),
|
||||
QString("(c) Edouard Griffiths, F4EXB"),
|
||||
QString("https://github.com/f4exb/sdrangel"),
|
||||
true,
|
||||
@ -46,12 +47,12 @@ void AMModPlugin::initPlugin(PluginAPI* pluginAPI)
|
||||
m_pluginAPI = pluginAPI;
|
||||
|
||||
// register AM modulator
|
||||
m_pluginAPI->registerTxChannel(AMModGUI::m_channelID, this);
|
||||
m_pluginAPI->registerTxChannel(AMMod::m_channelID, this);
|
||||
}
|
||||
|
||||
PluginInstanceGUI* AMModPlugin::createTxChannelGUI(const QString& channelName, DeviceUISet *deviceUISet)
|
||||
{
|
||||
if(channelName == AMModGUI::m_channelID)
|
||||
if(channelName == AMMod::m_channelID)
|
||||
{
|
||||
AMModGUI* gui = AMModGUI::create(m_pluginAPI, deviceUISet);
|
||||
return gui;
|
||||
@ -59,3 +60,14 @@ PluginInstanceGUI* AMModPlugin::createTxChannelGUI(const QString& channelName, D
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
BasebandSampleSource* AMModPlugin::createTxChannel(const QString& channelName, DeviceSinkAPI *deviceAPI)
|
||||
{
|
||||
if(channelName == AMMod::m_channelID)
|
||||
{
|
||||
AMMod* source = new AMMod(deviceAPI);
|
||||
return source;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "plugin/plugininterface.h"
|
||||
|
||||
class DeviceUISet;
|
||||
class BasebandSampleSource;
|
||||
|
||||
class AMModPlugin : public QObject, PluginInterface {
|
||||
Q_OBJECT
|
||||
@ -34,6 +35,7 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
PluginInstanceGUI* createTxChannelGUI(const QString& channelName, DeviceUISet *deviceUISet);
|
||||
BasebandSampleSource* createTxChannel(const QString& channelName, DeviceSinkAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -40,6 +40,7 @@ MESSAGE_CLASS_DEFINITION(ATVMod::MsgConfigureOverlayText, Message)
|
||||
MESSAGE_CLASS_DEFINITION(ATVMod::MsgConfigureShowOverlayText, Message)
|
||||
MESSAGE_CLASS_DEFINITION(ATVMod::MsgReportEffectiveSampleRate, Message)
|
||||
|
||||
const QString ATVMod::m_channelID = "sdrangel.channeltx.modatv";
|
||||
const float ATVMod::m_blackLevel = 0.3f;
|
||||
const float ATVMod::m_spanLevel = 0.7f;
|
||||
const int ATVMod::m_levelNbSamples = 10000; // every 10ms
|
||||
|
@ -407,6 +407,8 @@ public:
|
||||
static void getBaseValues(int outputSampleRate, int linesPerSecond, int& sampleRateUnits, uint32_t& nbPointsPerRateUnit);
|
||||
static float getRFBandwidthDivisor(ATVModSettings::ATVModulation modulation);
|
||||
|
||||
static const QString m_channelID;
|
||||
|
||||
signals:
|
||||
/**
|
||||
* Level changed
|
||||
|
@ -35,8 +35,6 @@
|
||||
#include "ui_atvmodgui.h"
|
||||
#include "atvmodgui.h"
|
||||
|
||||
const QString ATVModGUI::m_channelID = "sdrangel.channeltx.modatv";
|
||||
|
||||
ATVModGUI* ATVModGUI::create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet)
|
||||
{
|
||||
ATVModGUI* gui = new ATVModGUI(pluginAPI, deviceUISet);
|
||||
@ -628,7 +626,7 @@ ATVModGUI::ATVModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, QWidget* pa
|
||||
|
||||
connect(&m_channelMarker, SIGNAL(changed()), this, SLOT(channelMarkerChanged()));
|
||||
|
||||
m_deviceUISet->registerTxChannelInstance(m_channelID, this);
|
||||
m_deviceUISet->registerTxChannelInstance(ATVMod::m_channelID, this);
|
||||
m_deviceUISet->addChannelMarker(&m_channelMarker);
|
||||
m_deviceUISet->addRollupWidget(this);
|
||||
|
||||
|
@ -54,8 +54,6 @@ public:
|
||||
virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; }
|
||||
virtual bool handleMessage(const Message& message);
|
||||
|
||||
static const QString m_channelID;
|
||||
|
||||
private slots:
|
||||
void channelMarkerChanged();
|
||||
void handleSourceMessages();
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "plugin/pluginapi.h"
|
||||
|
||||
#include "atvmodgui.h"
|
||||
#include "atvmod.h"
|
||||
#include "atvmodplugin.h"
|
||||
|
||||
const PluginDescriptor ATVModPlugin::m_pluginDescriptor = {
|
||||
@ -46,12 +47,12 @@ void ATVModPlugin::initPlugin(PluginAPI* pluginAPI)
|
||||
m_pluginAPI = pluginAPI;
|
||||
|
||||
// register ATV modulator
|
||||
m_pluginAPI->registerTxChannel(ATVModGUI::m_channelID, this);
|
||||
m_pluginAPI->registerTxChannel(ATVMod::m_channelID, this);
|
||||
}
|
||||
|
||||
PluginInstanceGUI* ATVModPlugin::createTxChannelGUI(const QString& channelName, DeviceUISet *deviceUISet)
|
||||
{
|
||||
if(channelName == ATVModGUI::m_channelID)
|
||||
if(channelName == ATVMod::m_channelID)
|
||||
{
|
||||
ATVModGUI* gui = ATVModGUI::create(m_pluginAPI, deviceUISet);
|
||||
return gui;
|
||||
@ -60,5 +61,15 @@ PluginInstanceGUI* ATVModPlugin::createTxChannelGUI(const QString& channelName,
|
||||
}
|
||||
}
|
||||
|
||||
BasebandSampleSource* ATVModPlugin::createTxChannel(const QString& channelName, DeviceSinkAPI *deviceAPI)
|
||||
{
|
||||
if(channelName == ATVMod::m_channelID)
|
||||
{
|
||||
ATVMod* source = new ATVMod(deviceAPI);
|
||||
return source;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "plugin/plugininterface.h"
|
||||
|
||||
class DeviceSinkAPI;
|
||||
class BasebandSampleSource;
|
||||
|
||||
class ATVModPlugin : public QObject, PluginInterface {
|
||||
Q_OBJECT
|
||||
@ -34,6 +35,7 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
PluginInstanceGUI* createTxChannelGUI(const QString& channelName, DeviceUISet *deviceUISet);
|
||||
BasebandSampleSource* createTxChannel(const QString& channelName, DeviceSinkAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -39,6 +39,7 @@ MESSAGE_CLASS_DEFINITION(NFMMod::MsgConfigureFileSourceStreamTiming, Message)
|
||||
MESSAGE_CLASS_DEFINITION(NFMMod::MsgReportFileSourceStreamData, Message)
|
||||
MESSAGE_CLASS_DEFINITION(NFMMod::MsgReportFileSourceStreamTiming, Message)
|
||||
|
||||
const QString NFMMod::m_channelID = "sdrangel.channeltx.modnfm";
|
||||
const int NFMMod::m_levelNbSamples = 480; // every 10ms
|
||||
|
||||
NFMMod::NFMMod(DeviceSinkAPI *deviceAPI) :
|
||||
|
@ -240,6 +240,8 @@ public:
|
||||
|
||||
CWKeyer *getCWKeyer() { return &m_cwKeyer; }
|
||||
|
||||
static const QString m_channelID;
|
||||
|
||||
signals:
|
||||
/**
|
||||
* Level changed
|
||||
|
@ -32,8 +32,6 @@
|
||||
#include "ui_nfmmodgui.h"
|
||||
#include "nfmmodgui.h"
|
||||
|
||||
const QString NFMModGUI::m_channelID = "sdrangel.channeltx.modnfm";
|
||||
|
||||
|
||||
NFMModGUI* NFMModGUI::create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet)
|
||||
{
|
||||
@ -331,7 +329,7 @@ NFMModGUI::NFMModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, QWidget* pa
|
||||
|
||||
connect(&m_channelMarker, SIGNAL(changed()), this, SLOT(channelMarkerChanged()));
|
||||
|
||||
m_deviceUISet->registerTxChannelInstance(m_channelID, this);
|
||||
m_deviceUISet->registerTxChannelInstance(NFMMod::m_channelID, this);
|
||||
m_deviceUISet->addChannelMarker(&m_channelMarker);
|
||||
m_deviceUISet->addRollupWidget(this);
|
||||
|
||||
|
@ -52,8 +52,6 @@ public:
|
||||
virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; }
|
||||
virtual bool handleMessage(const Message& message);
|
||||
|
||||
static const QString m_channelID;
|
||||
|
||||
private slots:
|
||||
void channelMarkerChanged();
|
||||
void handleSourceMessages();
|
||||
|
@ -46,12 +46,12 @@ void NFMModPlugin::initPlugin(PluginAPI* pluginAPI)
|
||||
m_pluginAPI = pluginAPI;
|
||||
|
||||
// register AM modulator
|
||||
m_pluginAPI->registerTxChannel(NFMModGUI::m_channelID, this);
|
||||
m_pluginAPI->registerTxChannel(NFMMod::m_channelID, this);
|
||||
}
|
||||
|
||||
PluginInstanceGUI* NFMModPlugin::createTxChannelGUI(const QString& channelName, DeviceUISet *deviceUISet)
|
||||
{
|
||||
if(channelName == NFMModGUI::m_channelID)
|
||||
if(channelName == NFMMod::m_channelID)
|
||||
{
|
||||
NFMModGUI* gui = NFMModGUI::create(m_pluginAPI, deviceUISet);
|
||||
return gui;
|
||||
@ -59,3 +59,14 @@ PluginInstanceGUI* NFMModPlugin::createTxChannelGUI(const QString& channelName,
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
BasebandSampleSource* NFMModPlugin::createTxChannel(const QString& channelName, DeviceSinkAPI *deviceAPI)
|
||||
{
|
||||
if(channelName == NFMMod::m_channelID)
|
||||
{
|
||||
NFMMod* source = new NFMMod(deviceAPI);
|
||||
return source;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "plugin/plugininterface.h"
|
||||
|
||||
class DeviceUISet;
|
||||
class BasebandSampleSource;
|
||||
|
||||
class NFMModPlugin : public QObject, PluginInterface {
|
||||
Q_OBJECT
|
||||
@ -34,6 +35,7 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
PluginInstanceGUI* createTxChannelGUI(const QString& channelName, DeviceUISet *deviceUISet);
|
||||
BasebandSampleSource* createTxChannel(const QString& channelName, DeviceSinkAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -37,10 +37,11 @@ MESSAGE_CLASS_DEFINITION(SSBMod::MsgConfigureFileSourceStreamTiming, Message)
|
||||
MESSAGE_CLASS_DEFINITION(SSBMod::MsgReportFileSourceStreamData, Message)
|
||||
MESSAGE_CLASS_DEFINITION(SSBMod::MsgReportFileSourceStreamTiming, Message)
|
||||
|
||||
const QString SSBMod::m_channelID = "sdrangel.channeltx.modssb";
|
||||
const int SSBMod::m_levelNbSamples = 480; // every 10ms
|
||||
const int SSBMod::m_ssbFftLen = 1024;
|
||||
|
||||
SSBMod::SSBMod(DeviceSinkAPI *deviceAPI, BasebandSampleSink* sampleSink) :
|
||||
SSBMod::SSBMod(DeviceSinkAPI *deviceAPI) :
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_SSBFilter(0),
|
||||
m_DSBFilter(0),
|
||||
@ -48,7 +49,7 @@ SSBMod::SSBMod(DeviceSinkAPI *deviceAPI, BasebandSampleSink* sampleSink) :
|
||||
m_DSBFilterBuffer(0),
|
||||
m_SSBFilterBufferIndex(0),
|
||||
m_DSBFilterBufferIndex(0),
|
||||
m_sampleSink(sampleSink),
|
||||
m_sampleSink(0),
|
||||
m_movingAverage(40, 0),
|
||||
m_audioFifo(4800),
|
||||
m_settingsMutex(QMutex::Recursive),
|
||||
|
@ -226,9 +226,11 @@ public:
|
||||
|
||||
//=================================================================
|
||||
|
||||
SSBMod(DeviceSinkAPI *deviceAPI, BasebandSampleSink* sampleSink);
|
||||
SSBMod(DeviceSinkAPI *deviceAPI);
|
||||
~SSBMod();
|
||||
|
||||
void setSpectrumSampleSink(BasebandSampleSink* sampleSink) { m_sampleSink = sampleSink; }
|
||||
|
||||
virtual void pull(Sample& sample);
|
||||
virtual void pullAudio(int nbSamples);
|
||||
virtual void start();
|
||||
@ -239,6 +241,8 @@ public:
|
||||
|
||||
CWKeyer *getCWKeyer() { return &m_cwKeyer; }
|
||||
|
||||
static const QString m_channelID;
|
||||
|
||||
signals:
|
||||
/**
|
||||
* Level changed
|
||||
|
@ -33,8 +33,6 @@
|
||||
#include "dsp/dspengine.h"
|
||||
#include "mainwindow.h"
|
||||
|
||||
const QString SSBModGUI::m_channelID = "sdrangel.channeltx.modssb";
|
||||
|
||||
SSBModGUI* SSBModGUI::create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet)
|
||||
{
|
||||
SSBModGUI* gui = new SSBModGUI(pluginAPI, deviceUISet);
|
||||
@ -375,7 +373,8 @@ SSBModGUI::SSBModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, QWidget* pa
|
||||
connect(this, SIGNAL(menuDoubleClickEvent()), this, SLOT(onMenuDoubleClicked()));
|
||||
|
||||
m_spectrumVis = new SpectrumVis(ui->glSpectrum);
|
||||
m_ssbMod = new SSBMod(m_deviceUISet->m_deviceSinkAPI, m_spectrumVis);
|
||||
m_ssbMod = new SSBMod(m_deviceUISet->m_deviceSinkAPI);
|
||||
m_ssbMod->setSpectrumSampleSink(m_spectrumVis);
|
||||
m_ssbMod->setMessageQueueToGUI(getInputMessageQueue());
|
||||
|
||||
resetToDefaults();
|
||||
@ -405,7 +404,7 @@ SSBModGUI::SSBModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, QWidget* pa
|
||||
|
||||
connect(&m_channelMarker, SIGNAL(changed()), this, SLOT(channelMarkerChanged()));
|
||||
|
||||
m_deviceUISet->registerTxChannelInstance(m_channelID, this);
|
||||
m_deviceUISet->registerTxChannelInstance(SSBMod::m_channelID, this);
|
||||
m_deviceUISet->addChannelMarker(&m_channelMarker);
|
||||
m_deviceUISet->addRollupWidget(this);
|
||||
|
||||
|
@ -54,8 +54,6 @@ public:
|
||||
virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; }
|
||||
virtual bool handleMessage(const Message& message);
|
||||
|
||||
static const QString m_channelID;
|
||||
|
||||
private slots:
|
||||
void handleSourceMessages();
|
||||
void channelMarkerChanged();
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "plugin/pluginapi.h"
|
||||
|
||||
#include "ssbmodgui.h"
|
||||
#include "ssbmod.h"
|
||||
#include "ssbmodplugin.h"
|
||||
|
||||
const PluginDescriptor SSBModPlugin::m_pluginDescriptor = {
|
||||
@ -46,12 +47,12 @@ void SSBModPlugin::initPlugin(PluginAPI* pluginAPI)
|
||||
m_pluginAPI = pluginAPI;
|
||||
|
||||
// register SSB modulator
|
||||
m_pluginAPI->registerTxChannel(SSBModGUI::m_channelID, this);
|
||||
m_pluginAPI->registerTxChannel(SSBMod::m_channelID, this);
|
||||
}
|
||||
|
||||
PluginInstanceGUI* SSBModPlugin::createTxChannelGUI(const QString& channelName, DeviceUISet *deviceUISet)
|
||||
{
|
||||
if(channelName == SSBModGUI::m_channelID)
|
||||
if(channelName == SSBMod::m_channelID)
|
||||
{
|
||||
SSBModGUI* gui = SSBModGUI::create(m_pluginAPI, deviceUISet);
|
||||
return gui;
|
||||
@ -59,3 +60,14 @@ PluginInstanceGUI* SSBModPlugin::createTxChannelGUI(const QString& channelName,
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
BasebandSampleSource* SSBModPlugin::createTxChannel(const QString& channelName, DeviceSinkAPI *deviceAPI)
|
||||
{
|
||||
if(channelName == SSBMod::m_channelID)
|
||||
{
|
||||
SSBMod* source = new SSBMod(deviceAPI);
|
||||
return source;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "plugin/plugininterface.h"
|
||||
|
||||
class DeviceUISet;
|
||||
class BasebandSampleSource;
|
||||
|
||||
class SSBModPlugin : public QObject, PluginInterface {
|
||||
Q_OBJECT
|
||||
@ -34,6 +35,7 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
PluginInstanceGUI* createTxChannelGUI(const QString& channelName, DeviceUISet *deviceUISet);
|
||||
BasebandSampleSource* createTxChannel(const QString& channelName, DeviceSinkAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -39,6 +39,7 @@ MESSAGE_CLASS_DEFINITION(WFMMod::MsgConfigureFileSourceStreamTiming, Message)
|
||||
MESSAGE_CLASS_DEFINITION(WFMMod::MsgReportFileSourceStreamData, Message)
|
||||
MESSAGE_CLASS_DEFINITION(WFMMod::MsgReportFileSourceStreamTiming, Message)
|
||||
|
||||
const QString WFMMod::m_channelID = "sdrangel.channeltx.modwfm";
|
||||
const int WFMMod::m_levelNbSamples = 480; // every 10ms
|
||||
const int WFMMod::m_rfFilterFFTLength = 1024;
|
||||
|
||||
|
@ -239,6 +239,8 @@ public:
|
||||
|
||||
CWKeyer *getCWKeyer() { return &m_cwKeyer; }
|
||||
|
||||
static const QString m_channelID;
|
||||
|
||||
signals:
|
||||
/**
|
||||
* Level changed
|
||||
|
@ -34,8 +34,6 @@
|
||||
#include "ui_wfmmodgui.h"
|
||||
#include "wfmmodgui.h"
|
||||
|
||||
const QString WFMModGUI::m_channelID = "sdrangel.channeltx.modwfm";
|
||||
|
||||
WFMModGUI* WFMModGUI::create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet)
|
||||
{
|
||||
WFMModGUI* gui = new WFMModGUI(pluginAPI, deviceUISet);
|
||||
@ -320,7 +318,7 @@ WFMModGUI::WFMModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, QWidget* pa
|
||||
|
||||
connect(&m_channelMarker, SIGNAL(changed()), this, SLOT(channelMarkerChanged()));
|
||||
|
||||
m_deviceUISet->registerTxChannelInstance(m_channelID, this);
|
||||
m_deviceUISet->registerTxChannelInstance(WFMMod::m_channelID, this);
|
||||
m_deviceUISet->addChannelMarker(&m_channelMarker);
|
||||
m_deviceUISet->addRollupWidget(this);
|
||||
|
||||
|
@ -55,8 +55,6 @@ public:
|
||||
virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; }
|
||||
virtual bool handleMessage(const Message& message);
|
||||
|
||||
static const QString m_channelID;
|
||||
|
||||
private slots:
|
||||
void channelMarkerChanged();
|
||||
void handleSourceMessages();
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "plugin/pluginapi.h"
|
||||
|
||||
#include "wfmmodgui.h"
|
||||
#include "wfmmod.h"
|
||||
#include "wfmmodplugin.h"
|
||||
|
||||
const PluginDescriptor WFMModPlugin::m_pluginDescriptor = {
|
||||
@ -46,12 +47,12 @@ void WFMModPlugin::initPlugin(PluginAPI* pluginAPI)
|
||||
m_pluginAPI = pluginAPI;
|
||||
|
||||
// register AM modulator
|
||||
m_pluginAPI->registerTxChannel(WFMModGUI::m_channelID, this);
|
||||
m_pluginAPI->registerTxChannel(WFMMod::m_channelID, this);
|
||||
}
|
||||
|
||||
PluginInstanceGUI* WFMModPlugin::createTxChannelGUI(const QString& channelName, DeviceUISet *deviceUISet)
|
||||
{
|
||||
if(channelName == WFMModGUI::m_channelID)
|
||||
if(channelName == WFMMod::m_channelID)
|
||||
{
|
||||
WFMModGUI* gui = WFMModGUI::create(m_pluginAPI, deviceUISet);
|
||||
return gui;
|
||||
@ -59,3 +60,14 @@ PluginInstanceGUI* WFMModPlugin::createTxChannelGUI(const QString& channelName,
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
BasebandSampleSource* WFMModPlugin::createTxChannel(const QString& channelName, DeviceSinkAPI *deviceAPI)
|
||||
{
|
||||
if(channelName == WFMMod::m_channelID)
|
||||
{
|
||||
WFMMod* source = new WFMMod(deviceAPI);
|
||||
return source;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
PluginInstanceGUI* createTxChannelGUI(const QString& channelName, DeviceUISet *deviceUISet);
|
||||
BasebandSampleSource* createTxChannel(const QString& channelName, DeviceSinkAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
@ -29,10 +29,12 @@ MESSAGE_CLASS_DEFINITION(UDPSink::MsgConfigureChannelizer, Message)
|
||||
MESSAGE_CLASS_DEFINITION(UDPSink::MsgUDPSinkSpectrum, Message)
|
||||
MESSAGE_CLASS_DEFINITION(UDPSink::MsgResetReadIndex, Message)
|
||||
|
||||
UDPSink::UDPSink(DeviceSinkAPI *deviceAPI, BasebandSampleSink* spectrum) :
|
||||
const QString UDPSink::m_channelID = "sdrangel.channeltx.udpsink";
|
||||
|
||||
UDPSink::UDPSink(DeviceSinkAPI *deviceAPI) :
|
||||
m_deviceAPI(deviceAPI),
|
||||
m_squelch(1e-6),
|
||||
m_spectrum(spectrum),
|
||||
m_spectrum(0),
|
||||
m_spectrumEnabled(false),
|
||||
m_spectrumChunkSize(2160),
|
||||
m_spectrumChunkCounter(0),
|
||||
@ -255,7 +257,7 @@ void UDPSink::modulateSample()
|
||||
m_sampleBuffer.push_back(s);
|
||||
m_spectrumChunkCounter++;
|
||||
}
|
||||
else
|
||||
else if (m_spectrum)
|
||||
{
|
||||
m_spectrum->feed(m_sampleBuffer.begin(), m_sampleBuffer.end(), false);
|
||||
m_sampleBuffer.clear();
|
||||
|
@ -85,9 +85,11 @@ public:
|
||||
{ }
|
||||
};
|
||||
|
||||
UDPSink(DeviceSinkAPI *deviceAPI, BasebandSampleSink* spectrum);
|
||||
UDPSink(DeviceSinkAPI *deviceAPI);
|
||||
virtual ~UDPSink();
|
||||
|
||||
void setSpectrumSink(BasebandSampleSink* spectrum) { m_spectrum = spectrum; }
|
||||
|
||||
virtual void start();
|
||||
virtual void stop();
|
||||
virtual void pull(Sample& sample);
|
||||
@ -101,6 +103,8 @@ public:
|
||||
void setSpectrum(bool enabled);
|
||||
void resetReadIndex();
|
||||
|
||||
static const QString m_channelID;
|
||||
|
||||
signals:
|
||||
/**
|
||||
* Level changed
|
||||
|
@ -27,8 +27,6 @@
|
||||
#include "udpsinkgui.h"
|
||||
#include "ui_udpsinkgui.h"
|
||||
|
||||
const QString UDPSinkGUI::m_channelID = "sdrangel.channeltx.udpsink";
|
||||
|
||||
UDPSinkGUI* UDPSinkGUI::create(PluginAPI* pluginAPI, DeviceUISet *deviceUISet)
|
||||
{
|
||||
UDPSinkGUI* gui = new UDPSinkGUI(pluginAPI, deviceUISet);
|
||||
@ -121,7 +119,8 @@ UDPSinkGUI::UDPSinkGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, QWidget*
|
||||
setAttribute(Qt::WA_DeleteOnClose, true);
|
||||
|
||||
m_spectrumVis = new SpectrumVis(ui->glSpectrum);
|
||||
m_udpSink = new UDPSink(m_deviceUISet->m_deviceSinkAPI, m_spectrumVis);
|
||||
m_udpSink = new UDPSink(m_deviceUISet->m_deviceSinkAPI);
|
||||
m_udpSink->setSpectrumSink(m_spectrumVis);
|
||||
m_udpSink->setMessageQueueToGUI(getInputMessageQueue());
|
||||
|
||||
ui->fmDeviation->setEnabled(false);
|
||||
@ -147,7 +146,7 @@ UDPSinkGUI::UDPSinkGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, QWidget*
|
||||
|
||||
connect(&m_channelMarker, SIGNAL(changed()), this, SLOT(channelMarkerChanged()));
|
||||
|
||||
m_deviceUISet->registerTxChannelInstance(m_channelID, this);
|
||||
m_deviceUISet->registerTxChannelInstance(UDPSink::m_channelID, this);
|
||||
m_deviceUISet->addChannelMarker(&m_channelMarker);
|
||||
m_deviceUISet->addRollupWidget(this);
|
||||
|
||||
|
@ -53,8 +53,6 @@ public:
|
||||
virtual MessageQueue *getInputMessageQueue() { return &m_inputMessageQueue; }
|
||||
virtual bool handleMessage(const Message& message);
|
||||
|
||||
static const QString m_channelID;
|
||||
|
||||
private slots:
|
||||
void handleSourceMessages();
|
||||
void channelMarkerChanged();
|
||||
|
@ -47,12 +47,12 @@ void UDPSinkPlugin::initPlugin(PluginAPI* pluginAPI)
|
||||
m_pluginAPI = pluginAPI;
|
||||
|
||||
// register TCP Channel Source
|
||||
m_pluginAPI->registerTxChannel(UDPSinkGUI::m_channelID, this);
|
||||
m_pluginAPI->registerTxChannel(UDPSink::m_channelID, this);
|
||||
}
|
||||
|
||||
PluginInstanceGUI* UDPSinkPlugin::createTxChannelGUI(const QString& channelName, DeviceUISet *deviceUISet)
|
||||
{
|
||||
if(channelName == UDPSinkGUI::m_channelID)
|
||||
if(channelName == UDPSink::m_channelID)
|
||||
{
|
||||
UDPSinkGUI* gui = UDPSinkGUI::create(m_pluginAPI, deviceUISet);
|
||||
// deviceAPI->registerChannelInstance("sdrangel.channel.udpsrc", gui);
|
||||
@ -62,3 +62,14 @@ PluginInstanceGUI* UDPSinkPlugin::createTxChannelGUI(const QString& channelName,
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
BasebandSampleSource* UDPSinkPlugin::createTxChannel(const QString& channelName, DeviceSinkAPI *deviceAPI)
|
||||
{
|
||||
if(channelName == UDPSink::m_channelID)
|
||||
{
|
||||
UDPSink* source = new UDPSink(deviceAPI);
|
||||
return source;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "plugin/plugininterface.h"
|
||||
|
||||
class DeviceUISet;
|
||||
class BasebandSampleSource;
|
||||
|
||||
class UDPSinkPlugin : public QObject, PluginInterface {
|
||||
Q_OBJECT
|
||||
@ -35,6 +36,7 @@ public:
|
||||
void initPlugin(PluginAPI* pluginAPI);
|
||||
|
||||
PluginInstanceGUI* createTxChannelGUI(const QString& channelName, DeviceUISet *deviceUISet);
|
||||
BasebandSampleSource* createTxChannel(const QString& channelName, DeviceSinkAPI *deviceAPI);
|
||||
|
||||
private:
|
||||
static const PluginDescriptor m_pluginDescriptor;
|
||||
|
Loading…
Reference in New Issue
Block a user