mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:37:33 +00:00
fix(tx): полоса передающего слайса на доп. панах рисовалась по RX-ширине
CalcSliceBandX берёт кромки TX из FTXEdge* ТОЙ вьюхи, где живёт слайс, а PushFilterEdgesToView отдавала их только FSpecView (пан 0). У панов N поля оставались нулями, ветка TX не срабатывала, и слайс на передаче показывал свою RX-полосу независимо от профиля и TX-фильтра. Кромки TX уходят во вьюхи всех панов, кадр каждого помечается грязным. RX-кромки главного туда не отдаём: на панах N главный VFO не рисуется. Подтверждено на железе. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+11
-1
@@ -5437,12 +5437,22 @@ procedure TMainForm.PushFilterEdgesToView;
|
||||
// Кромки в спектр: RX — то, что реально стоит в приёмнике (фильтр может быть
|
||||
// произвольным), TX — из TXSignedEdges движка. Полоса на экране обязана
|
||||
// совпадать с тем, что слышно и что уходит в эфир.
|
||||
var Lo, Hi: Integer;
|
||||
var Lo, Hi, i: Integer;
|
||||
begin
|
||||
if FSpecView = nil then Exit;
|
||||
FSpecView.SetRXEdges(FController.FilterLo, FController.FilterHi);
|
||||
FController.TXFilterEdges(Lo, Hi);
|
||||
FSpecView.SetTXEdges(Lo, Hi);
|
||||
// Доп. паны рисуют полосу передающего слайса теми же кромками
|
||||
// (CalcSliceBandX). Без этого их FTXEdge* оставались нулями, ветка TX не
|
||||
// срабатывала, и слайс на передаче показывал RX-ширину. RX-кромки главного
|
||||
// сюда не отдаём: на панах N главный VFO не рисуется.
|
||||
for i := 1 to MAX_PANS - 1 do
|
||||
if FPans[i] <> nil then
|
||||
begin
|
||||
FPans[i].View.SetTXEdges(Lo, Hi);
|
||||
FPanSpecDirty[i] := True;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainForm.BtnFilterMouseDown(Sender: TObject; Button: TMouseButton;
|
||||
|
||||
Reference in New Issue
Block a user