mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +00:00
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:
co-authored by
Claude Opus 4.8
parent
2c356beb77
commit
5f5558e4a2
+3
-30
@@ -438,7 +438,6 @@ type
|
||||
// ClientActive). Здесь только то, что дёргает UI-обёртки MainForm.
|
||||
procedure WebOnFreq(Hz: Double);
|
||||
procedure WebOnBand(Idx: Integer);
|
||||
procedure WebOnSpan(Hz: Integer);
|
||||
procedure WebOnRun(On_: Boolean);
|
||||
procedure WebOnFreqA(Hz: Double);
|
||||
procedure WebOnXvtrBand(Idx: Integer);
|
||||
@@ -460,7 +459,6 @@ type
|
||||
procedure SyncWebFreq;
|
||||
procedure SyncWebBand;
|
||||
procedure SyncWebXvtrBand;
|
||||
procedure SyncWebSpan;
|
||||
procedure SyncWebRun;
|
||||
procedure SyncWebFreqA;
|
||||
// --- CAT callbacks -------------------------------------------------------
|
||||
@@ -899,7 +897,7 @@ begin
|
||||
// Host-зависимые (UI-обёртки) — пока на MainForm:
|
||||
FWebServer.OnFreq := WebOnFreq;
|
||||
FWebServer.OnBand := WebOnBand;
|
||||
FWebServer.OnSpan := WebOnSpan;
|
||||
FWebServer.OnSpan := FWebAdapter.OnSpan;
|
||||
FWebServer.OnRun := WebOnRun;
|
||||
FWebServer.OnDrive := FWebAdapter.OnDrive;
|
||||
FWebServer.OnFreqA := WebOnFreqA;
|
||||
@@ -4656,13 +4654,9 @@ end;
|
||||
|
||||
procedure TMainForm.OnSampleRateSelect(SampleRate: Integer);
|
||||
begin
|
||||
if SampleRate = FController.FSampleRate then Exit;
|
||||
// Движок (пересоздание WDSP-канала, DDC-rate, восстановление DSP) — в
|
||||
// контроллере; рендер overlay + AGC-линий — в OnControllerState(rfSampleRate).
|
||||
// Тонкая обёртка: движок (пересоздание WDSP-канала, DDC-rate, DSP-restore) +
|
||||
// персист — в команде SetSampleRate; рендер overlay/AGC — OnControllerState.
|
||||
FController.SetSampleRate(SampleRate);
|
||||
// SampleRate глобальный — сохраняем в global settings.
|
||||
if FController.FDevConnected then
|
||||
FController.SaveGlobalSettings;
|
||||
end;
|
||||
|
||||
// ===========================================================================
|
||||
@@ -4735,27 +4729,6 @@ begin
|
||||
ActivateXvtrBand(FWebSyncInt);
|
||||
end;
|
||||
|
||||
procedure TMainForm.WebOnSpan(Hz: Integer);
|
||||
begin
|
||||
FWebSyncInt := Hz;
|
||||
FWebSyncM := SyncWebSpan;
|
||||
TThread.Synchronize(nil, FWebSyncM);
|
||||
end;
|
||||
|
||||
procedure TMainForm.SyncWebSpan;
|
||||
const
|
||||
ValidSpans: array[0..5] of Integer = (48000, 96000, 192000, 384000, 768000, 1536000);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
for i := 0 to High(ValidSpans) do
|
||||
if ValidSpans[i] = FWebSyncInt then
|
||||
begin
|
||||
OnSampleRateSelect(FWebSyncInt);
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
// ── Run ────────────────────────────────────────────────────────────────────
|
||||
|
||||
procedure TMainForm.WebOnRun(On_: Boolean);
|
||||
|
||||
Reference in New Issue
Block a user