From c6afb1c133cec77a61b9667bfb1404a0e565e17b Mon Sep 17 00:00:00 2001 From: Robert Scullin Date: Sun, 25 Oct 2020 06:33:25 -0400 Subject: [PATCH] Fixes #815 - Change usable bandwidth percentage based on Airspy samplerate (#976) --- .../source/tuner/TunerController.java | 8 ++++++++ .../tuner/airspy/AirspyTunerController.java | 19 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/main/java/io/github/dsheirer/source/tuner/TunerController.java b/src/main/java/io/github/dsheirer/source/tuner/TunerController.java index c471d33e..e5de2e64 100644 --- a/src/main/java/io/github/dsheirer/source/tuner/TunerController.java +++ b/src/main/java/io/github/dsheirer/source/tuner/TunerController.java @@ -275,6 +275,14 @@ public abstract class TunerController implements Tunable, ISourceEventProcessor, return (int)(getBandwidth() * mUsableBandwidthPercentage); } + /** + * Sets the usable bandwidth percentage -- this can change based on samplerate for some tuners + */ + public void setUsableBandwidthPercentage(double usableBandwidthPercentage) + { + mUsableBandwidthPercentage = usableBandwidthPercentage; + } + /** * Usable half bandwidth - total bandwidth minus unusable space at either end of the spectrum. * diff --git a/src/main/java/io/github/dsheirer/source/tuner/airspy/AirspyTunerController.java b/src/main/java/io/github/dsheirer/source/tuner/airspy/AirspyTunerController.java index 4c493655..0487d1ab 100644 --- a/src/main/java/io/github/dsheirer/source/tuner/airspy/AirspyTunerController.java +++ b/src/main/java/io/github/dsheirer/source/tuner/airspy/AirspyTunerController.java @@ -406,6 +406,25 @@ public class AirspyTunerController extends USBTunerController { mSampleRate = rate.getRate(); mFrequencyController.setSampleRate(mSampleRate); + + // Update the Usable Bandwidth Percentage, as the usable range varies with the sample rate. + // Values below are from https://github.com/DSheirer/sdrtrunk/issues/815#issuecomment-699859590 + switch(mSampleRate) + { + default: + case 10000000: + super.setUsableBandwidthPercentage(0.90); + break; + case 6000000: + super.setUsableBandwidthPercentage(0.83); + break; + case 3000000: + super.setUsableBandwidthPercentage(0.66); + break; + case 2500000: + super.setUsableBandwidthPercentage(0.60); + break; + } } } }