76969b5499
Add SpectrumData struct (bins, center_hz, sample_rate) to RigState and RigSnapshot. Add GetSpectrum RigCommand and ClientCommand plumbed through the protocol layer. SoapySDR DSP pipeline now computes a 1024-bin FFT (Hann window, FFT-shifted, dBFS) every 4 IQ blocks (~10 Hz update rate) and exposes it via RigCat::get_spectrum(). The rig_task handles GetSpectrum without persisting spectrum data in ongoing state. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Stan Grams <sjg@haxx.space>