mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +00:00
Phase 3 (batch 21): route web Mode/Filter through controller commands
SyncWebMode now delegates to FController.SetMode (default filter + DSP +
band cache; render via rfMode), and SyncWebFilter to FController.SetFilterBW,
whose stub is filled in: it applies the requested bandwidth and highlights
the nearest preset (render via rfFilter). The JS client only ever sends a
bandwidth in Hz ({cmd:"filter",bw:N}), so the old negative-index branch
was dead code and is removed. Both web handlers now use the same controller
commands as the desktop; the duplicated inline mode/filter logic 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
c7d93c2e46
commit
33c433ce5e
+28
-1
@@ -981,7 +981,34 @@ begin
|
||||
end;
|
||||
|
||||
procedure TRadioController.SetFilterBW(BWHz: Integer);
|
||||
begin FFilterBW := BWHz; Changed(rfFilterBW); { TODO wiring } end;
|
||||
// Непрерывная полоса (web-ползунок): применяем запрошенный BW как есть, а
|
||||
// FFilter подбираем ближайшим пресетом — только для подсветки кнопки.
|
||||
var
|
||||
BW_arr: array[0..FILT_COUNT-1] of Integer;
|
||||
best, dist, i: Integer;
|
||||
begin
|
||||
FFilterBW := BWHz;
|
||||
for i := 0 to FILT_COUNT-1 do BW_arr[i] := MaxInt;
|
||||
case FMode of
|
||||
0, 1: for i := 0 to FILT_COUNT-1 do BW_arr[i] := FILT_SSB_BW[i];
|
||||
2: for i := 0 to FILT_COUNT-1 do BW_arr[i] := FILT_DSB_BW[i];
|
||||
3, 4: for i := 0 to FILT_COUNT-1 do BW_arr[i] := FILT_CW_BW[i];
|
||||
MODE_FM: for i := 0 to FILT_FM_COUNT-1 do BW_arr[i] := FILT_FM_BW[i];
|
||||
else for i := 0 to FILT_COUNT-1 do BW_arr[i] := FILT_AM_BW[i];
|
||||
end;
|
||||
best := 0; dist := MaxInt;
|
||||
for i := 0 to FILT_COUNT-1 do
|
||||
if Abs(BW_arr[i] - BWHz) < dist then
|
||||
begin
|
||||
dist := Abs(BW_arr[i] - BWHz);
|
||||
best := i;
|
||||
end;
|
||||
FFilter := best;
|
||||
if FMode = MODE_FM then FFMDeviation := FILT_FM_DEV[best];
|
||||
FBandCache[FCurrentBand].FilterBW := FFilterBW;
|
||||
ApplyModeFilter;
|
||||
Changed(rfFilter);
|
||||
end;
|
||||
|
||||
procedure TRadioController.ApplyAGCToEngine;
|
||||
const
|
||||
|
||||
Reference in New Issue
Block a user