fix(icom): power in watts on the 7760, and Listening restarts clean

The power meter applies Icom's own meter calibration (raw 143 = half
deflection, 213 = full scale) anchored against the real radio: a measured
100 W sits at half deflection of the 7760's 250 W face — the linear guess
showed it as 140. The RF power slider says watts on a 200 W rig instead of a
percentage the operator has to convert.

And the Listening button, pressed while a network Icom is connected, restarts
the monitor render-only: it used to open a USB capture from the From-radio
device as well, and that second producer interleaved with the network pushes
chopped the audio to pieces.
This commit is contained in:
2026-08-29 16:02:15 +02:00
parent 6d4a110949
commit b246c4d10a
3 changed files with 41 additions and 8 deletions
+10
View File
@@ -10667,6 +10667,16 @@ func (a *App) AudioStartMonitor() error {
if strings.TrimSpace(cfg.FromRadio) == "" {
return fmt.Errorf(`no "From radio" capture device set — pick the rig's USB Audio CODEC in Settings → Audio`)
}
// When the rig's audio arrives over the NETWORK (Icom 50003), the monitor
// must be render-only: this button used to start a USB capture from the
// "From radio" device as well, and that second producer — often another
// radio's DAX — interleaved its chunks with the network stream's pushes.
// The result was audio chopped to pieces the moment the operator toggled
// Listening off and on while connected to a network Icom.
if cs, err := a.GetCATSettings(); err == nil && cs.Enabled && cs.Backend == "icom-net" && cs.IcomNetAudio {
applog.Printf("audio: RX monitor start (network sink only → listen=%q)", cfg.ListeningDevice)
return a.audioMgr.StartMonitorSink(cfg.ListeningDevice)
}
applog.Printf("audio: RX monitor start (from=%q → listen=%q)", cfg.FromRadio, cfg.ListeningDevice)
a.audioMgr.SetMonitorGain(cfg.FromGain)
return a.audioMgr.StartMonitor(cfg.FromRadio, cfg.ListeningDevice)