Skip to content

Commit cd988e7

Browse files
committed
Fixed gains.
1 parent fb5a777 commit cd988e7

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

sources/radio/sdr_device_reader.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ std::vector<Gain> getGains(SoapySDR::Device* sdr) {
3030
colored(GREEN, "{}", gainRange.step()));
3131
gains.emplace_back(gain, gainRange.maximum(), gainRange.minimum(), gainRange.maximum(), gainRange.step());
3232
}
33+
std::sort(gains.begin(), gains.end(), [](const Gain& g1, Gain& g2) { return g1.name < g2.name; });
3334
return gains;
3435
}
3536

@@ -46,7 +47,15 @@ void SdrDeviceReader::updateDevice(Device& device, const SoapySDR::Kwargs args)
4647
device.connected = true;
4748
device.driver = driver;
4849
device.sample_rates = getSampleRates(sdr);
50+
const auto backupGains = device.gains;
4951
device.gains = getGains(sdr);
52+
for (auto& gain : device.gains) {
53+
for (auto& backupGain : backupGains) {
54+
if (gain.name == backupGain.name) {
55+
gain.value = backupGain.value;
56+
}
57+
}
58+
}
5059

5160
SoapySDR::Device::unmake(sdr);
5261
}

0 commit comments

Comments
 (0)