Bug Fix: Local RTL-SDR hardware configuration
Critical fix: RtlSdrSource (native USB dongle via librtlsdr) never applied hardware settings — directSampling, gain, biasT, AGC, offsetTuning, and PPM were silently ignored on both startup and profile switch.
What was broken
RtlSdrSourcemethods had incompatible signatures (int/bool instead of uint32) and couldn't satisfyCommandableSourcecreateSource()forlocaltype never calledapplyDongleSettings()afterOpen()- Profile switches via
SwitchProfile()silently skipped hardware commands for local dongles
Changes
- Aligned all
RtlSdrSourcemethods to matchCommandableSourceinterface (uint32 params with internal conversion) - Added missing
SetOffsetTuning()andSetFrequencyCorrection()methods - Generalized
applyDongleSettings()to accept anyCommandableSource(was*RtlTcpSourceonly) - Added
applyDongleSettings()call for local source afterOpen() - Added compile-time interface check:
_ CommandableSource = (*RtlSdrSource)(nil)
Also included
- Parallel IQ extraction for multi-client scenarios (goroutine per client)
- Admin API: expose demoMode, fftHistoryFftSize, fftHistoryCompression, adminPassword fields
- Fix: preserve existing profiles when PUT updates dongle-level fields only