1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-02-03 09:44:01 -05:00

UDP source: move audio input setting to immediate group

This commit is contained in:
f4exb 2015-12-05 12:03:26 +01:00
parent 08a3bc9097
commit f69264ec24
3 changed files with 37 additions and 38 deletions

View File

@ -93,24 +93,24 @@ void UDPSrc::configure(MessageQueue* messageQueue,
Real rfBandwidth, Real rfBandwidth,
QString& udpAddress, QString& udpAddress,
int udpPort, int udpPort,
int audioPort, int audioPort)
bool audioActive)
{ {
Message* cmd = MsgUDPSrcConfigure::create(sampleFormat, Message* cmd = MsgUDPSrcConfigure::create(sampleFormat,
outputSampleRate, outputSampleRate,
rfBandwidth, rfBandwidth,
udpAddress, udpAddress,
udpPort, udpPort,
audioPort, audioPort);
audioActive);
messageQueue->push(cmd); messageQueue->push(cmd);
} }
void UDPSrc::configureImmediate(MessageQueue* messageQueue, void UDPSrc::configureImmediate(MessageQueue* messageQueue,
bool audioActive,
int boost, int boost,
int volume) int volume)
{ {
Message* cmd = MsgUDPSrcConfigureImmediate::create( Message* cmd = MsgUDPSrcConfigureImmediate::create(
audioActive,
boost, boost,
volume); volume);
messageQueue->push(cmd); messageQueue->push(cmd);
@ -251,6 +251,21 @@ bool UDPSrc::handleMessage(const Message& cmd)
m_settingsMutex.lock(); m_settingsMutex.lock();
if (cfg.getAudioActive() != m_audioActive)
{
m_audioActive = cfg.getAudioActive();
if (m_audioActive)
{
m_audioBufferFill = 0;
DSPEngine::instance()->addAudioSink(&m_audioFifo);
}
else
{
DSPEngine::instance()->removeAudioSink(&m_audioFifo);
}
}
if (cfg.getBoost() != m_boost) if (cfg.getBoost() != m_boost)
{ {
m_boost = cfg.getBoost(); m_boost = cfg.getBoost();
@ -264,6 +279,7 @@ bool UDPSrc::handleMessage(const Message& cmd)
m_settingsMutex.unlock(); m_settingsMutex.unlock();
qDebug() << "UDPSrc::handleMessage: MsgUDPSrcConfigureImmediate: " qDebug() << "UDPSrc::handleMessage: MsgUDPSrcConfigureImmediate: "
<< " m_audioActive: " << m_audioActive
<< " m_boost: " << m_boost << " m_boost: " << m_boost
<< " m_volume: " << m_volume; << " m_volume: " << m_volume;
@ -320,21 +336,6 @@ bool UDPSrc::handleMessage(const Message& cmd)
UDPFilter->create_filter(0.0, m_rfBandwidth / 2.0 / m_outputSampleRate); UDPFilter->create_filter(0.0, m_rfBandwidth / 2.0 / m_outputSampleRate);
} }
if (cfg.getAudioActive() != m_audioActive)
{
m_audioActive = cfg.getAudioActive();
if (m_audioActive)
{
m_audioBufferFill = 0;
DSPEngine::instance()->addAudioSink(&m_audioFifo);
}
else
{
DSPEngine::instance()->removeAudioSink(&m_audioFifo);
}
}
m_settingsMutex.unlock(); m_settingsMutex.unlock();
qDebug() << "UDPSrc::handleMessage: MsgUDPSrcConfigure: m_sampleFormat: " << m_sampleFormat qDebug() << "UDPSrc::handleMessage: MsgUDPSrcConfigure: m_sampleFormat: " << m_sampleFormat
@ -343,8 +344,7 @@ bool UDPSrc::handleMessage(const Message& cmd)
<< " m_boost: " << m_boost << " m_boost: " << m_boost
<< " m_udpAddress: " << cfg.getUDPAddress() << " m_udpAddress: " << cfg.getUDPAddress()
<< " m_udpPort: " << m_udpPort << " m_udpPort: " << m_udpPort
<< " m_audioPort: " << m_audioPort << " m_audioPort: " << m_audioPort;
<< " m_audioActive: " << m_audioActive;
return true; return true;
} }

View File

@ -43,9 +43,9 @@ public:
Real rfBandwidth, Real rfBandwidth,
QString& udpAddress, QString& udpAddress,
int udpPort, int udpPort,
int audioPort, int audioPort);
bool audioActive);
void configureImmediate(MessageQueue* messageQueue, void configureImmediate(MessageQueue* messageQueue,
bool audioActive,
int boost, int boost,
int volume); int volume);
void setSpectrum(MessageQueue* messageQueue, bool enabled); void setSpectrum(MessageQueue* messageQueue, bool enabled);
@ -70,7 +70,6 @@ protected:
const QString& getUDPAddress() const { return m_udpAddress; } const QString& getUDPAddress() const { return m_udpAddress; }
int getUDPPort() const { return m_udpPort; } int getUDPPort() const { return m_udpPort; }
int getAudioPort() const { return m_audioPort; } int getAudioPort() const { return m_audioPort; }
bool getAudioActive() const { return m_audioActive; }
static MsgUDPSrcConfigure* create(SampleFormat static MsgUDPSrcConfigure* create(SampleFormat
sampleFormat, sampleFormat,
@ -78,16 +77,14 @@ protected:
Real rfBandwidth, Real rfBandwidth,
QString& udpAddress, QString& udpAddress,
int udpPort, int udpPort,
int audioPort, int audioPort)
bool audioActive)
{ {
return new MsgUDPSrcConfigure(sampleFormat, return new MsgUDPSrcConfigure(sampleFormat,
sampleRate, sampleRate,
rfBandwidth, rfBandwidth,
udpAddress, udpAddress,
udpPort, udpPort,
audioPort, audioPort);
audioActive);
} }
private: private:
@ -97,23 +94,20 @@ protected:
QString m_udpAddress; QString m_udpAddress;
int m_udpPort; int m_udpPort;
int m_audioPort; int m_audioPort;
bool m_audioActive;
MsgUDPSrcConfigure(SampleFormat sampleFormat, MsgUDPSrcConfigure(SampleFormat sampleFormat,
Real outputSampleRate, Real outputSampleRate,
Real rfBandwidth, Real rfBandwidth,
QString& udpAddress, QString& udpAddress,
int udpPort, int udpPort,
int audioPort, int audioPort) :
bool audioActive) :
Message(), Message(),
m_sampleFormat(sampleFormat), m_sampleFormat(sampleFormat),
m_outputSampleRate(outputSampleRate), m_outputSampleRate(outputSampleRate),
m_rfBandwidth(rfBandwidth), m_rfBandwidth(rfBandwidth),
m_udpAddress(udpAddress), m_udpAddress(udpAddress),
m_udpPort(udpPort), m_udpPort(udpPort),
m_audioPort(audioPort), m_audioPort(audioPort)
m_audioActive(audioActive)
{ } { }
}; };
@ -123,12 +117,15 @@ protected:
public: public:
int getBoost() const { return m_boost; } int getBoost() const { return m_boost; }
int getVolume() const { return m_volume; } int getVolume() const { return m_volume; }
bool getAudioActive() const { return m_audioActive; }
static MsgUDPSrcConfigureImmediate* create( static MsgUDPSrcConfigureImmediate* create(
bool audioActive,
int boost, int boost,
int volume) int volume)
{ {
return new MsgUDPSrcConfigureImmediate( return new MsgUDPSrcConfigureImmediate(
audioActive,
boost, boost,
volume); volume);
} }
@ -136,11 +133,14 @@ protected:
private: private:
int m_boost; int m_boost;
int m_volume; int m_volume;
bool m_audioActive;
MsgUDPSrcConfigureImmediate( MsgUDPSrcConfigureImmediate(
bool audioActive,
int boost, int boost,
int volume) : int volume) :
Message(), Message(),
m_audioActive(audioActive),
m_boost(boost), m_boost(boost),
m_volume(volume) m_volume(volume)
{ } { }

View File

@ -246,10 +246,12 @@ void UDPSrcGUI::applySettingsImmediate()
{ {
if (m_doApplySettings) if (m_doApplySettings)
{ {
m_audioActive = ui->audioActive->isChecked();
m_boost = ui->boost->value(); m_boost = ui->boost->value();
m_volume = ui->volume->value(); m_volume = ui->volume->value();
m_udpSrc->configureImmediate(m_udpSrc->getInputMessageQueue(), m_udpSrc->configureImmediate(m_udpSrc->getInputMessageQueue(),
m_audioActive,
m_boost, m_boost,
m_volume); m_volume);
} }
@ -293,7 +295,6 @@ void UDPSrcGUI::applySettings()
} }
int boost = ui->boost->value(); int boost = ui->boost->value();
bool audioActive = ui->audioActive->isChecked();
setTitleColor(m_channelMarker.getColor()); setTitleColor(m_channelMarker.getColor());
ui->deltaFrequency->setValue(abs(m_channelMarker.getCenterFrequency())); ui->deltaFrequency->setValue(abs(m_channelMarker.getCenterFrequency()));
@ -337,7 +338,6 @@ void UDPSrcGUI::applySettings()
m_udpPort = udpPort; m_udpPort = udpPort;
m_audioPort = audioPort; m_audioPort = audioPort;
m_boost = boost; m_boost = boost;
m_audioActive = audioActive;
m_udpSrc->configure(m_udpSrc->getInputMessageQueue(), m_udpSrc->configure(m_udpSrc->getInputMessageQueue(),
sampleFormat, sampleFormat,
@ -345,8 +345,7 @@ void UDPSrcGUI::applySettings()
rfBandwidth, rfBandwidth,
m_udpAddress, m_udpAddress,
udpPort, udpPort,
audioPort, audioPort);
audioActive);
ui->applyBtn->setEnabled(false); ui->applyBtn->setEnabled(false);
} }
@ -404,7 +403,7 @@ void UDPSrcGUI::on_applyBtn_clicked()
void UDPSrcGUI::on_audioActive_toggled(bool active) void UDPSrcGUI::on_audioActive_toggled(bool active)
{ {
ui->applyBtn->setEnabled(true); applySettingsImmediate();
} }
void UDPSrcGUI::on_boost_valueChanged(int value) void UDPSrcGUI::on_boost_valueChanged(int value)