mirror of https://github.com/f4exb/sdrangel.git
AaroniaRTSA output: fixed center frequency and sample rate getter and setter
This commit is contained in:
parent
a6fa12ab3b
commit
2b6f033b89
|
@ -44,14 +44,12 @@ MESSAGE_CLASS_DEFINITION(AaroniaRTSAOutput::MsgSetStatus, Message)
|
||||||
AaroniaRTSAOutput::AaroniaRTSAOutput(DeviceAPI *deviceAPI) :
|
AaroniaRTSAOutput::AaroniaRTSAOutput(DeviceAPI *deviceAPI) :
|
||||||
m_deviceAPI(deviceAPI),
|
m_deviceAPI(deviceAPI),
|
||||||
m_settings(),
|
m_settings(),
|
||||||
m_centerFrequency(0),
|
|
||||||
m_sampleRate(48000),
|
|
||||||
m_deviceDescription("AaroniaRTSAOutput"),
|
m_deviceDescription("AaroniaRTSAOutput"),
|
||||||
m_worker(nullptr),
|
m_worker(nullptr),
|
||||||
m_workerThread(nullptr),
|
m_workerThread(nullptr),
|
||||||
m_running(false)
|
m_running(false)
|
||||||
{
|
{
|
||||||
m_sampleSourceFifo.resize(SampleSourceFifo::getSizePolicy(m_sampleRate));
|
m_sampleSourceFifo.resize(SampleSourceFifo::getSizePolicy(m_settings.m_sampleRate));
|
||||||
m_deviceAPI->setNbSinkStreams(1);
|
m_deviceAPI->setNbSinkStreams(1);
|
||||||
m_networkManager = new QNetworkAccessManager();
|
m_networkManager = new QNetworkAccessManager();
|
||||||
QObject::connect(
|
QObject::connect(
|
||||||
|
@ -174,40 +172,26 @@ const QString& AaroniaRTSAOutput::getDeviceDescription() const
|
||||||
|
|
||||||
int AaroniaRTSAOutput::getSampleRate() const
|
int AaroniaRTSAOutput::getSampleRate() const
|
||||||
{
|
{
|
||||||
return m_sampleRate;
|
return m_settings.m_sampleRate;
|
||||||
}
|
|
||||||
|
|
||||||
void AaroniaRTSAOutput::setSampleRate(int sampleRate)
|
|
||||||
{
|
|
||||||
m_sampleRate = sampleRate;
|
|
||||||
m_sampleSourceFifo.resize(SampleSourceFifo::getSizePolicy(m_sampleRate));
|
|
||||||
|
|
||||||
DSPSignalNotification *notif = new DSPSignalNotification(m_sampleRate, m_centerFrequency); // Frequency in Hz for the DSP engine
|
|
||||||
m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif);
|
|
||||||
|
|
||||||
if (getMessageQueueToGUI())
|
|
||||||
{
|
|
||||||
MsgReportSampleRateAndFrequency *msg = MsgReportSampleRateAndFrequency::create(m_sampleRate, m_centerFrequency);
|
|
||||||
getMessageQueueToGUI()->push(msg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
quint64 AaroniaRTSAOutput::getCenterFrequency() const
|
quint64 AaroniaRTSAOutput::getCenterFrequency() const
|
||||||
{
|
{
|
||||||
return m_centerFrequency;
|
return m_settings.m_centerFrequency;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AaroniaRTSAOutput::setCenterFrequency(qint64 centerFrequency)
|
void AaroniaRTSAOutput::setCenterFrequency(qint64 centerFrequency)
|
||||||
{
|
{
|
||||||
m_centerFrequency = centerFrequency;
|
AaroniaRTSAOutputSettings settings = m_settings;
|
||||||
|
settings.m_centerFrequency = centerFrequency;
|
||||||
|
|
||||||
DSPSignalNotification *notif = new DSPSignalNotification(m_sampleRate, m_centerFrequency); // Frequency in Hz for the DSP engine
|
MsgConfigureAaroniaRTSAOutput* message = MsgConfigureAaroniaRTSAOutput::create(settings, QList<QString>{"centerFrequency"}, false);
|
||||||
m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif);
|
m_inputMessageQueue.push(message);
|
||||||
|
|
||||||
if (getMessageQueueToGUI())
|
if (m_guiMessageQueue)
|
||||||
{
|
{
|
||||||
MsgReportSampleRateAndFrequency *msg = MsgReportSampleRateAndFrequency::create(m_sampleRate, m_centerFrequency);
|
MsgConfigureAaroniaRTSAOutput* messageToGUI = MsgConfigureAaroniaRTSAOutput::create(settings, QList<QString>{"centerFrequency"}, false);
|
||||||
getMessageQueueToGUI()->push(msg);
|
m_guiMessageQueue->push(messageToGUI);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -139,7 +139,7 @@ public:
|
||||||
virtual void setMessageQueueToGUI(MessageQueue *queue);
|
virtual void setMessageQueueToGUI(MessageQueue *queue);
|
||||||
virtual const QString& getDeviceDescription() const;
|
virtual const QString& getDeviceDescription() const;
|
||||||
virtual int getSampleRate() const;
|
virtual int getSampleRate() const;
|
||||||
virtual void setSampleRate(int sampleRate);
|
virtual void setSampleRate(int sampleRate) { (void) sampleRate; }
|
||||||
virtual quint64 getCenterFrequency() const;
|
virtual quint64 getCenterFrequency() const;
|
||||||
virtual void setCenterFrequency(qint64 centerFrequency);
|
virtual void setCenterFrequency(qint64 centerFrequency);
|
||||||
std::time_t getStartingTimeStamp() const;
|
std::time_t getStartingTimeStamp() const;
|
||||||
|
@ -182,8 +182,6 @@ private:
|
||||||
DeviceAPI *m_deviceAPI;
|
DeviceAPI *m_deviceAPI;
|
||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
AaroniaRTSAOutputSettings m_settings;
|
AaroniaRTSAOutputSettings m_settings;
|
||||||
qint64 m_centerFrequency;
|
|
||||||
int m_sampleRate;
|
|
||||||
QString m_deviceDescription;
|
QString m_deviceDescription;
|
||||||
QNetworkAccessManager *m_networkManager;
|
QNetworkAccessManager *m_networkManager;
|
||||||
QNetworkRequest m_networkRequest;
|
QNetworkRequest m_networkRequest;
|
||||||
|
|
|
@ -150,7 +150,7 @@ void AaroniaRTSAOutputWorker::callbackPart(int16_t *buf, SampleVector& data, uns
|
||||||
void AaroniaRTSAOutputWorker::postData(QJsonDocument jdoc, int16_t *samplesArray, int nSamples)
|
void AaroniaRTSAOutputWorker::postData(QJsonDocument jdoc, int16_t *samplesArray, int nSamples)
|
||||||
{
|
{
|
||||||
QUrl url(tr("http://%1/sample").arg(m_serverAddress));
|
QUrl url(tr("http://%1/sample").arg(m_serverAddress));
|
||||||
qDebug() << "AaroniaRTSAOutputWorker::postData:" << url;
|
// qDebug() << "AaroniaRTSAOutputWorker::postData:" << url;
|
||||||
QNetworkRequest request(url);
|
QNetworkRequest request(url);
|
||||||
request.setHeader(QNetworkRequest::ContentTypeHeader, QString("application/json"));
|
request.setHeader(QNetworkRequest::ContentTypeHeader, QString("application/json"));
|
||||||
QByteArray byteArray = jdoc.toJson(QJsonDocument::Compact);
|
QByteArray byteArray = jdoc.toJson(QJsonDocument::Compact);
|
||||||
|
|
Loading…
Reference in New Issue