This shows up at a few different levels:
- In
CalculateAudioParamsSync(), GetAnyTunedSlot() doesn't do a lookup based on (freq, slot), just returning the first slot that matches the frequency. This means that even if radios have different parameters (e.g., sensitivity), it will just grab one.
- The resulting audio params get pushed to
_audioParamsCache, which is only keyed on frequency
- As a result, every "radio" - i.e. (freq, slot) pair - gets the same
.CurrentParams for a given stream.
Probably not worth fixing in the near future since all radios in a given jet share the same RadioStationPreset, but FWIW doing the entire DSP pipeline (envelope calculation -> AGC -> squelch) would be cheap to do instead of splitting only squelch out per-radio.
This shows up at a few different levels:
CalculateAudioParamsSync(),GetAnyTunedSlot()doesn't do a lookup based on (freq, slot), just returning the first slot that matches the frequency. This means that even if radios have different parameters (e.g., sensitivity), it will just grab one._audioParamsCache, which is only keyed on frequency.CurrentParamsfor a given stream.Probably not worth fixing in the near future since all radios in a given jet share the same
RadioStationPreset, but FWIW doing the entire DSP pipeline (envelope calculation -> AGC -> squelch) would be cheap to do instead of splitting only squelch out per-radio.