1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-02 06:04:39 -04:00

SoapySDR support: input: global gain GUI

This commit is contained in:
f4exb
2018-11-07 01:33:17 +01:00
parent 5c8073bade
commit d7be0927b1
10 changed files with 289 additions and 3 deletions
@@ -26,6 +26,7 @@
#include "soapygui/intervalrangegui.h"
#include "soapygui/stringrangegui.h"
#include "soapygui/dynamicitemsettinggui.h"
#include "soapygui/intervalslidergui.h"
#include "ui_soapysdrinputgui.h"
#include "soapysdrinputgui.h"
@@ -42,7 +43,8 @@ SoapySDRInputGui::SoapySDRInputGui(DeviceUISet *deviceUISet, QWidget* parent) :
m_lastEngineState(DSPDeviceSourceEngine::StNotStarted),
m_antennas(0),
m_sampleRateGUI(0),
m_bandwidthGUI(0)
m_bandwidthGUI(0),
m_gainSliderGUI(0)
{
m_sampleSource = (SoapySDRInput*) m_deviceUISet->m_deviceSourceAPI->getSampleSource();
ui->setupUi(this);
@@ -56,6 +58,7 @@ SoapySDRInputGui::SoapySDRInputGui(DeviceUISet *deviceUISet, QWidget* parent) :
createRangesControl(&m_sampleRateGUI, m_sampleSource->getRateRanges(), "SR", "S/s");
createRangesControl(&m_bandwidthGUI, m_sampleSource->getBandwidthRanges(), "BW", "Hz");
createTunableElementsControl(m_sampleSource->getTunableElements());
createGlobalGainControl();
if (m_sampleRateGUI) {
connect(m_sampleRateGUI, SIGNAL(valueChanged(double)), this, SLOT(sampleRateChanged(double)));
@@ -182,6 +185,21 @@ void SoapySDRInputGui::createTunableElementsControl(const std::vector<DeviceSoap
}
}
void SoapySDRInputGui::createGlobalGainControl()
{
m_gainSliderGUI = new IntervalSliderGUI(this);
int min, max;
m_sampleSource->getGlobalGainRange(min, max);
m_gainSliderGUI->setInterval(min, max);
m_gainSliderGUI->setLabel(QString("Global gain"));
m_gainSliderGUI->setUnits(QString(""));
QVBoxLayout *layout = (QVBoxLayout *) ui->scrollAreaWidgetContents->layout();
layout->addWidget(m_gainSliderGUI);
connect(m_gainSliderGUI, SIGNAL(valueChanged(double)), this, SLOT(globalGainChanged(double)));
}
void SoapySDRInputGui::setName(const QString& name)
{
setObjectName(name);
@@ -310,6 +328,12 @@ void SoapySDRInputGui::tunableElementChanged(QString name, double value)
sendSettings();
}
void SoapySDRInputGui::globalGainChanged(double gain)
{
m_settings.m_globalGain = round(gain);
sendSettings();
}
void SoapySDRInputGui::on_centerFrequency_changed(quint64 value)
{
m_settings.m_centerFrequency = value * 1000;
@@ -403,6 +427,9 @@ void SoapySDRInputGui::displaySettings()
if (m_bandwidthGUI) {
m_bandwidthGUI->setValue(m_settings.m_bandwidth);
}
if (m_gainSliderGUI) {
m_gainSliderGUI->setValue(m_settings.m_globalGain);
}
ui->dcOffset->setChecked(m_settings.m_dcBlock);
ui->iqImbalance->setChecked(m_settings.m_iqCorrection);