Phase 3 (WA2b): move web Drive handler into the web adapter

Now that SetDrive is a complete command, the web/CAT Drive handler moves into
TWebAdapter.OnDrive (the one handler WA1 left behind). CAT context SetDriveLevel
repointed to it too.

Makes the channel-power-clear reactive: ChannelController.OnDriveChanged fires on
the rfDrive event and clears FPreChannelPower for any external drive change
(slider/web/encoder), guarded by FRestoringDrive for the unit's own apply/restore.
This removes the imperative ClearPreChannelPower coupling so SetDrive callers need
no channel knowledge.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Uladzimir Karpenka
2026-06-08 20:26:30 +03:00
co-authored by Claude Opus 4.8
parent 03f7359184
commit e5a13096dc
3 changed files with 38 additions and 26 deletions
+8
View File
@@ -45,6 +45,7 @@ type
procedure SyncAGC;
procedure SyncAGCTop;
procedure SyncVolume;
procedure SyncDrive;
procedure SyncWfAGC;
procedure SyncWfNF;
procedure SyncMute;
@@ -70,6 +71,7 @@ type
procedure OnAGC(Mode: Integer);
procedure OnAGCTop(DB: Integer);
procedure OnVolume(V: Integer);
procedure OnDrive(V: Integer);
procedure OnWfAGC(On_: Boolean);
procedure OnWfNF(On_: Boolean);
procedure OnMute(On_: Boolean);
@@ -145,6 +147,12 @@ begin FSyncInt := V; FController.Invoke(@SyncVolume); end;
procedure TWebAdapter.SyncVolume;
begin FController.SetVolume(FSyncInt); end;
procedure TWebAdapter.OnDrive(V: Integer);
begin FSyncInt := V; FController.Invoke(@SyncDrive); end;
procedure TWebAdapter.SyncDrive;
begin FController.SetDrive(FSyncInt); end; // rfDrive снимет память канала (ChannelController)
procedure TWebAdapter.OnWfAGC(On_: Boolean);
begin FSyncBool := On_; FController.Invoke(@SyncWfAGC); end;