mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 19:45:09 +00:00
Phase 3 (heavy prep): move XvtrTranslate/ActiveTXFreqHz into controller
Перенос частотных хелперов (общий блокер для Vfo/Mode/Band/CTun/TX/FM-Rpt) в TRadioController как чистых read-only функций над состоянием. Все константы (CFG_XVTR_COUNT, MODE_FM, RPT_MINUS/PLUS) уже доступны через Settings/WDSPEngine/FMRepeater в uses контроллера. MainForm.XvtrTranslate и MainForm.ActiveTXFreqHz стали тонкими обёртками-делегатами — ~40 мест вызова в UI/сетевом слое работают без изменений. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
fd145b28f6
commit
d895800f62
+4
-15
@@ -5767,14 +5767,8 @@ end;
|
||||
|
||||
function TMainForm.ActiveTXFreqHz: Double;
|
||||
begin
|
||||
if FController.FSplitTxB then Result := FController.FVfoB
|
||||
else if FController.FActiveVfo = 0 then Result := FController.FVfoA
|
||||
else Result := FController.FVfoB;
|
||||
if FController.FMode = MODE_FM then
|
||||
case FController.FFMRptDir of
|
||||
RPT_MINUS: Result := Result - FController.FFMRptOffsetHz;
|
||||
RPT_PLUS: Result := Result + FController.FFMRptOffsetHz;
|
||||
end;
|
||||
// Логика перенесена в контроллер; обёртка для существующих вызовов в UI.
|
||||
Result := FController.ActiveTXFreqHz;
|
||||
end;
|
||||
|
||||
procedure TMainForm.ApplyMOX(Active: Boolean);
|
||||
@@ -6912,13 +6906,8 @@ end;
|
||||
// Если активный XVTR не задан — возвращает входную частоту без изменений.
|
||||
function TMainForm.XvtrTranslate(VisibleHz: Double): Double;
|
||||
begin
|
||||
Result := VisibleHz;
|
||||
if (FController.FCurrentXvtr < 0) or (FController.FCurrentXvtr >= CFG_XVTR_COUNT) then Exit;
|
||||
if not FController.FXvtrSettings.Entries[FController.FCurrentXvtr].Enabled then Exit;
|
||||
// f_IF = f_visible - LOOffset + LOError
|
||||
Result := VisibleHz
|
||||
- FController.FXvtrSettings.Entries[FController.FCurrentXvtr].LOOffset
|
||||
+ FController.FXvtrSettings.Entries[FController.FCurrentXvtr].LOError;
|
||||
// Логика перенесена в контроллер; обёртка для существующих вызовов в UI.
|
||||
Result := FController.XvtrTranslate(VisibleHz);
|
||||
end;
|
||||
|
||||
// Передаёт XVTR-режим в сетевой слой. Вызывается при смене XVTR или его
|
||||
|
||||
Reference in New Issue
Block a user