18 #ifndef PLUGINS_CHANNELTX_MODSSB_SSBMOD_H_ 19 #define PLUGINS_CHANNELTX_MODSSB_SSBMOD_H_ 26 #include <QNetworkRequest> 43 class QNetworkAccessManager;
94 m_sampleRate(sampleRate),
95 m_centerFrequency(centerFrequency)
137 m_seekPercentage(seekPercentage)
175 m_samplesCount(samplesCount)
187 quint32 recordLength)
197 quint32 recordLength) :
199 m_sampleRate(sampleRate),
200 m_recordLength(recordLength)
214 virtual void start();
231 (void) sinkElseSource;
237 QString& errorMessage);
241 const QStringList& channelSettingsKeys,
243 QString& errorMessage);
247 QString& errorMessage);
264 void levelChanged(qreal rmsLevel, qreal peakLevel,
int numSamples);
348 void applyChannelSettings(
int basebandSampleRate,
int outputSampleRate,
int inputFrequencyOffset,
bool force =
false);
virtual void getTitle(QString &title)
void calculateLevel(Complex &sample)
std::vector< Sample > SampleVector
void webapiFormatChannelReport(SWGSDRangel::SWGChannelReport &response)
std::vector< AudioSample > AudioVector
MsgReportFileSourceStreamTiming(std::size_t samplesCount)
Complex * m_SSBFilterBuffer
Interpolator m_interpolator
int m_inputFrequencyOffset
void webapiReverseSendSettings(QList< QString > &channelSettingsKeys, const SSBModSettings &settings, bool force)
void networkManagerFinished(QNetworkReply *reply)
void applyFeedbackAudioSampleRate(unsigned int sampleRate)
void pullAF(Complex &sample)
quint64 m_fileSize
raw file size (bytes)
quint32 m_audioSampleRate
qint64 m_inputFrequencyOffset
Complex * m_DSBFilterBuffer
bool m_feedbackInterpolatorConsumed
void applySettings(const SSBModSettings &settings, bool force=false)
void seekFileStream(int seekPercentage)
std::size_t getSamplesCount() const
AudioVector m_audioBuffer
MovingAverageUtil< double, double, 16 > m_movingAverage
uint m_feedbackAudioBufferFill
virtual int getNbSourceStreams() const
std::size_t m_samplesCount
SampleVector m_sampleBuffer
virtual qint64 getStreamCenterFrequency(int streamIndex, bool sinkElseSource) const
AudioFifo m_feedbackAudioFifo
Interpolator m_feedbackInterpolator
MsgReportFileSourceStreamData(int sampleRate, quint32 recordLength)
std::complex< float > cmplx
virtual QByteArray serialize() const
virtual void getIdentifier(QString &id)
virtual int getNbSinkStreams() const
virtual void pullAudio(int nbSamples)
static const QString m_channelId
Real m_interpolatorDistance
int getSampleRate() const
#define MESSAGE_CLASS_DECLARATION
void processOneSample(Complex &ci)
QNetworkRequest m_networkRequest
Real m_feedbackInterpolatorDistance
Real m_interpolatorDistanceRemain
SSBMod(DeviceAPI *deviceAPI)
void webapiReverseSendCWSettings(const CWKeyerSettings &settings)
void pushFeedback(Complex sample)
AudioVector m_feedbackAudioBuffer
void webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings &response, const SSBModSettings &settings)
virtual bool deserialize(const QByteArray &data)
SSBModSettings m_settings
static MsgReportFileSourceStreamData * create(int sampleRate, quint32 recordLength)
quint32 m_recordLength
record length in seconds computed from file size
virtual int webapiSettingsGet(SWGSDRangel::SWGChannelSettings &response, QString &errorMessage)
AudioCompressorSnd m_audioCompressor
void applyAudioSampleRate(int sampleRate)
virtual qint64 getCenterFrequency() const
Applies to a default stream.
int m_DSBFilterBufferIndex
virtual int webapiSettingsPutPatch(bool force, const QStringList &channelSettingsKeys, SWGSDRangel::SWGChannelSettings &response, QString &errorMessage)
static const int m_ssbFftLen
bool m_interpolatorConsumed
BasebandSampleSink * m_sampleSink
virtual bool handleMessage(const Message &cmd)
Processing of a message. Returns true if message has actually been processed.
int m_SSBFilterBufferIndex
Real m_feedbackInterpolatorDistanceRemain
quint32 getRecordLength() const
QNetworkAccessManager * m_networkManager
static MsgReportFileSourceStreamTiming * create(std::size_t samplesCount)
void applyChannelSettings(int basebandSampleRate, int outputSampleRate, int inputFrequencyOffset, bool force=false)
virtual void pull(Sample &sample)
void levelChanged(qreal rmsLevel, qreal peakLevel, int numSamples)
uint32_t getAudioSampleRate() const
UpChannelizer * m_channelizer
std::complex< Real > Complex
static const int m_levelNbSamples
ThreadedBasebandSampleSource * m_threadedChannelizer
quint32 m_feedbackAudioSampleRate
static const QString m_channelIdURI
void setSpectrumSampleSink(BasebandSampleSink *sampleSink)
virtual int webapiReportGet(SWGSDRangel::SWGChannelReport &response, QString &errorMessage)