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
@@ -46,6 +46,7 @@ type
|
||||
procedure SyncAGCTop;
|
||||
procedure SyncVolume;
|
||||
procedure SyncDrive;
|
||||
procedure SyncSpan;
|
||||
procedure SyncWfAGC;
|
||||
procedure SyncWfNF;
|
||||
procedure SyncMute;
|
||||
@@ -72,6 +73,7 @@ type
|
||||
procedure OnAGCTop(DB: Integer);
|
||||
procedure OnVolume(V: Integer);
|
||||
procedure OnDrive(V: Integer);
|
||||
procedure OnSpan(Hz: Integer);
|
||||
procedure OnWfAGC(On_: Boolean);
|
||||
procedure OnWfNF(On_: Boolean);
|
||||
procedure OnMute(On_: Boolean);
|
||||
@@ -158,6 +160,24 @@ begin FSyncInt := V; FController.Invoke(@SyncDrive); end;
|
||||
procedure TWebAdapter.SyncDrive;
|
||||
begin FController.SetDrive(FSyncInt); end; // rfDrive снимет память канала (ChannelController)
|
||||
|
||||
procedure TWebAdapter.OnSpan(Hz: Integer);
|
||||
begin FSyncInt := Hz; FController.Invoke(@SyncSpan); end;
|
||||
|
||||
procedure TWebAdapter.SyncSpan;
|
||||
// span ≡ sample rate. Принимаем только валидные значения (как десктоп-оверлей);
|
||||
// SetSampleRate сам пересоздаёт WDSP-канал + персистит (idempotent при том же rate).
|
||||
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] = FSyncInt then
|
||||
begin
|
||||
FController.SetSampleRate(FSyncInt);
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TWebAdapter.OnWfAGC(On_: Boolean);
|
||||
begin FSyncBool := On_; FController.Invoke(@SyncWfAGC); end;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user