Phase 3 (WA2c): move web Span into the adapter; SetSampleRate self-persists

Now that global-settings persistence is controller-owned, fold the persist into
SetSampleRate (sample rate is global; self-gated on FDevConnected). OnSampleRateSelect
becomes a thin wrapper. Web Span moves to TWebAdapter.OnSpan (keeps the valid-span
whitelist), so the last span coupling to MainForm is gone.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Uladzimir Karpenka
2026-06-08 21:03:47 +03:00
co-authored by Claude Opus 4.8
parent 2c356beb77
commit 5f5558e4a2
3 changed files with 26 additions and 32 deletions
+3 -2
View File
@@ -1652,8 +1652,8 @@ begin FSpanHz := Hz; Changed(rfSpan); { TODO wiring } end;
procedure TRadioController.SetSampleRate(Hz: Integer);
// Смена частоты дискретизации DDC. В этом приложении span ≡ sample rate.
// Несёт: пересоздание WDSP-канала (Close+FlushQueue+Open), новый rate в
// трансивер и полное восстановление DSP-состояния. Сохранение в global
// settings + рендер overlay/AGC-линий остаются в UI (OnControllerState).
// трансивер и полное восстановление DSP-состояния. Команда сама персистит
// (sample rate глобальный); рендер overlay/AGC-линий — в OnControllerState.
begin
if (Hz <= 0) or (Hz = FSampleRate) then Exit;
FSampleRate := Hz;
@@ -1690,6 +1690,7 @@ begin
FDSPEngine.SetShift(FVfoA - FCenterFreq);
end;
end;
SaveGlobalSettings; // sample rate глобальный — персистим (гейт по FDevConnected внутри)
Changed(rfSampleRate);
end;