mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-05-24 19:22:27 -04:00
BladeRF2 input: fixed auto/manual transition gain control
This commit is contained in:
parent
3a4324a7fb
commit
3e876141f4
@ -810,24 +810,6 @@ bool BladeRF2Input::applySettings(const BladeRF2InputSettings& settings, bool fo
|
|||||||
m_deviceShared.m_dev->setBiasTeeRx(settings.m_biasTee);
|
m_deviceShared.m_dev->setBiasTeeRx(settings.m_biasTee);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((m_settings.m_globalGain != settings.m_globalGain) || force)
|
|
||||||
{
|
|
||||||
forwardChangeRxBuddies = true;
|
|
||||||
|
|
||||||
if (dev)
|
|
||||||
{
|
|
||||||
// qDebug("BladeRF2Input::applySettings: channel: %d gain: %d", requestedChannel, settings.m_globalGain);
|
|
||||||
int status = bladerf_set_gain(dev, BLADERF_CHANNEL_RX(requestedChannel), settings.m_globalGain);
|
|
||||||
|
|
||||||
if (status < 0) {
|
|
||||||
qWarning("BladeRF2Input::applySettings: bladerf_set_gain(%d) failed: %s",
|
|
||||||
settings.m_globalGain, bladerf_strerror(status));
|
|
||||||
} else {
|
|
||||||
qDebug("BladeRF2Input::applySettings: bladerf_set_gain(%d)", settings.m_globalGain);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((m_settings.m_gainMode != settings.m_gainMode) || force)
|
if ((m_settings.m_gainMode != settings.m_gainMode) || force)
|
||||||
{
|
{
|
||||||
forwardChangeRxBuddies = true;
|
forwardChangeRxBuddies = true;
|
||||||
@ -845,6 +827,25 @@ bool BladeRF2Input::applySettings(const BladeRF2InputSettings& settings, bool fo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((m_settings.m_globalGain != settings.m_globalGain)
|
||||||
|
|| ((m_settings.m_gainMode != settings.m_gainMode) && (settings.m_gainMode == BLADERF_GAIN_MANUAL)) || force)
|
||||||
|
{
|
||||||
|
forwardChangeRxBuddies = true;
|
||||||
|
|
||||||
|
if (dev)
|
||||||
|
{
|
||||||
|
// qDebug("BladeRF2Input::applySettings: channel: %d gain: %d", requestedChannel, settings.m_globalGain);
|
||||||
|
int status = bladerf_set_gain(dev, BLADERF_CHANNEL_RX(requestedChannel), settings.m_globalGain);
|
||||||
|
|
||||||
|
if (status < 0) {
|
||||||
|
qWarning("BladeRF2Input::applySettings: bladerf_set_gain(%d) failed: %s",
|
||||||
|
settings.m_globalGain, bladerf_strerror(status));
|
||||||
|
} else {
|
||||||
|
qDebug("BladeRF2Input::applySettings: bladerf_set_gain(%d)", settings.m_globalGain);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (forwardChangeOwnDSP)
|
if (forwardChangeOwnDSP)
|
||||||
{
|
{
|
||||||
int sampleRate = settings.m_devSampleRate/(1<<settings.m_log2Decim);
|
int sampleRate = settings.m_devSampleRate/(1<<settings.m_log2Decim);
|
||||||
|
@ -241,6 +241,12 @@ void BladeRF2InputGui::displaySettings()
|
|||||||
ui->gainText->setText(tr("%1 dB").arg(m_settings.m_globalGain));
|
ui->gainText->setText(tr("%1 dB").arg(m_settings.m_globalGain));
|
||||||
ui->gain->setValue(m_settings.m_globalGain);
|
ui->gain->setValue(m_settings.m_globalGain);
|
||||||
|
|
||||||
|
if (m_settings.m_gainMode == BLADERF_GAIN_MANUAL) {
|
||||||
|
ui->gain->setEnabled(true);
|
||||||
|
} else {
|
||||||
|
ui->gain->setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
blockApplySettings(false);
|
blockApplySettings(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -310,6 +316,18 @@ void BladeRF2InputGui::on_gainMode_currentIndexChanged(int index)
|
|||||||
if (uindex < modes.size())
|
if (uindex < modes.size())
|
||||||
{
|
{
|
||||||
BladeRF2Input::GainMode mode = modes[index];
|
BladeRF2Input::GainMode mode = modes[index];
|
||||||
|
|
||||||
|
if (m_settings.m_gainMode != mode.m_value)
|
||||||
|
{
|
||||||
|
if (mode.m_value == BLADERF_GAIN_MANUAL)
|
||||||
|
{
|
||||||
|
m_settings.m_globalGain = ui->gain->value();
|
||||||
|
ui->gain->setEnabled(true);
|
||||||
|
} else {
|
||||||
|
ui->gain->setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
m_settings.m_gainMode = mode.m_value;
|
m_settings.m_gainMode = mode.m_value;
|
||||||
sendSettings();
|
sendSettings();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user