Fix FM step snap: round to nearest instead of truncating down

(ClickFreq div StepHz)*StepHz always snapped downward; replaced with
((ClickFreq + StepHz/2) div StepHz)*StepHz so clicks above the midpoint
between two steps correctly snap to the higher one.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-26 19:50:55 +03:00
co-authored by Claude Sonnet 4.6
parent 3b62a502e2
commit dd9e0da29e
+2 -2
View File
@@ -4678,7 +4678,7 @@ begin
else else
StepHz := 100; StepHz := 100;
ClickFreq := Round(FCenterFreq + (PixelX / PanelWidth - 0.5) * FSpanHz); ClickFreq := Round(FCenterFreq + (PixelX / PanelWidth - 0.5) * FSpanHz);
ClickFreq := (ClickFreq div StepHz) * StepHz; ClickFreq := ((ClickFreq + StepHz div 2) div StepHz) * StepHz;
if FActiveVfo = 0 then if FActiveVfo = 0 then
ApplyVfoA(ClickFreq) ApplyVfoA(ClickFreq)
else else
@@ -4723,7 +4723,7 @@ begin
else else
StepHz := 100; StepHz := 100;
ClickFreq := Round(FreqHz); ClickFreq := Round(FreqHz);
ClickFreq := (ClickFreq div StepHz) * StepHz; ClickFreq := ((ClickFreq + StepHz div 2) div StepHz) * StepHz;
if (FCurrentXvtr >= 0) and (FCurrentXvtr < CFG_XVTR_COUNT) and if (FCurrentXvtr >= 0) and (FCurrentXvtr < CFG_XVTR_COUNT) and
FXvtrSettings.Entries[FCurrentXvtr].Enabled then FXvtrSettings.Entries[FCurrentXvtr].Enabled then