mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 18:43:51 +00:00
fix(ui): sync main slice controls with panel
This commit is contained in:
+5
-46
@@ -5342,8 +5342,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainForm.OnModeFilterSelect(Mode: Integer; FilterBW: Integer);
|
procedure TMainForm.OnModeFilterSelect(Mode: Integer; FilterBW: Integer);
|
||||||
var
|
|
||||||
Idx: Integer;
|
|
||||||
begin
|
begin
|
||||||
// Событие пришло от флага слайса (B+) — маршрутизируем в slice-API, главный не трогаем.
|
// Событие пришло от флага слайса (B+) — маршрутизируем в slice-API, главный не трогаем.
|
||||||
if CurSliceId <> 0 then
|
if CurSliceId <> 0 then
|
||||||
@@ -5353,50 +5351,11 @@ begin
|
|||||||
LayoutFlagsAllPans;
|
LayoutFlagsAllPans;
|
||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
FController.FMode := Mode;
|
// Main flag A and the left panel edit the same receiver. Use the public
|
||||||
FController.FFilterBW := FilterBW;
|
// controller commands so rfMode/rfFilter repaint every duplicate control.
|
||||||
case Mode of
|
if Mode <> FController.FMode then FController.SetMode(Mode);
|
||||||
MODE_FM:
|
FController.SetFilterBW(FilterBW);
|
||||||
begin
|
FPan.LayoutFlags; // перепозиционируем при смене LSB↔USB
|
||||||
FController.FFilter := FILT_FM_DEF;
|
|
||||||
for Idx := 0 to FILT_FM_COUNT - 1 do
|
|
||||||
if FILT_FM_BW[Idx] = FilterBW then
|
|
||||||
begin
|
|
||||||
FController.FFilter := Idx;
|
|
||||||
FController.FFMDeviation := FILT_FM_DEV[Idx];
|
|
||||||
Break;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
MODE_WFM:
|
|
||||||
begin
|
|
||||||
FController.FFilter := FILT_WFM_DEF;
|
|
||||||
for Idx := 0 to FILT_WFM_COUNT - 1 do
|
|
||||||
if FILT_WFM_BW[Idx] = FilterBW then
|
|
||||||
begin
|
|
||||||
FController.FFilter := Idx;
|
|
||||||
Break;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
MODE_DMR:
|
|
||||||
begin
|
|
||||||
FController.FFilter := 0;
|
|
||||||
FController.FFilterBW := FILT_DMR_BW;
|
|
||||||
FController.FFMDeviation := DMR_FM_DEV;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
if FController.FWDSPReady then
|
|
||||||
begin
|
|
||||||
FController.FDSPEngine.SetMode(FController.FMode);
|
|
||||||
FController.ApplyModeFilter;
|
|
||||||
end;
|
|
||||||
SyncSpecViewFreq;
|
|
||||||
if Assigned(FVfoOverlay) and FVfoOverlay.Visible then
|
|
||||||
begin
|
|
||||||
FVfoOverlay.SetState(FController.FMode, FController.FFilterBW, FController.FVfoA, FController.FLastSMeter);
|
|
||||||
FVfoOverlay.SetDSPState(FController.FNRMode, FController.FNBMode, FController.FSNB, FController.FANF, FController.FAGCMode);
|
|
||||||
FVfoOverlay.SetSquelchState(FController.FFMSQOn, FController.FFMSQLevel);
|
|
||||||
FPan.LayoutFlags; // перепозиционируем при смене LSB↔USB
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMainForm.OnVfoOverlayDSPChange(NRMode, NBMode: Integer; SNBOn, ANFOn: Boolean);
|
procedure TMainForm.OnVfoOverlayDSPChange(NRMode, NBMode: Integer; SNBOn, ANFOn: Boolean);
|
||||||
|
|||||||
@@ -3184,6 +3184,7 @@ var
|
|||||||
BW_arr: array[0..FILT_COUNT-1] of Integer;
|
BW_arr: array[0..FILT_COUNT-1] of Integer;
|
||||||
best, dist, i: Integer;
|
best, dist, i: Integer;
|
||||||
begin
|
begin
|
||||||
|
if FMode = MODE_DMR then BWHz := FILT_DMR_BW;
|
||||||
FFilterBW := BWHz;
|
FFilterBW := BWHz;
|
||||||
for i := 0 to FILT_COUNT-1 do BW_arr[i] := MaxInt;
|
for i := 0 to FILT_COUNT-1 do BW_arr[i] := MaxInt;
|
||||||
case FMode of
|
case FMode of
|
||||||
|
|||||||
Reference in New Issue
Block a user