mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 20:27:33 +00:00
24102343ea85884a8ee91a265ff3a468bee1d39f
Per the architecture decision, band state lifecycle belongs on the controller (it operates entirely on controller state + engines; persistence is already delegated to Settings.pas). A separate unit would need friend access to ~20 fields + engines — worse coupling. - MakeBandSettings, SaveCurrentBand: moved verbatim (pure over controller state; SaveCurrentBand handles the XVTR-slot vs HF band-cache split and delegates the write to FSettings). MainForm.SaveCurrentBand is now a thin delegate (22 call sites unchanged); MakeBandSettings removed from MainForm. - RestoreBand: state + DSP application moved to the controller; rendering is driven by per-field Changed events (rfBand/rfMode/rfFilter/rfAGC*/rfFM*/ rfCTun/rfVfoB). The FM filter-index sanitize (which UpdateFilterButtons did inline as a render side-effect) is extracted into a pure SanitizeFilterForMode so the DSP ApplyModeFilter still runs on the sanitized BW (preserves original ordering). Fixes the same AGC index-cast bug as earlier batches (now ApplyAGCToEngine). - MainForm.RestoreBand is a thin wrapper: ResetWfAvgBuf (band-switch-only, not per-tune) + controller.RestoreBand + ApplyVfoA(FVfoA) for the final tune with channel orchestration (auto-CTCSS / pre-channel drive). - Added rfFMStep render case (BtnFMStep on/off was styled ad-hoc). Builds clean, links. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…
Languages
Pascal
96.4%
Python
2.9%
Shell
0.6%