From 9d691343cf87f08f610178dda8f9d78deadb833c Mon Sep 17 00:00:00 2001 From: rouggy Date: Thu, 30 Jul 2026 21:41:25 +0200 Subject: [PATCH] fix: say in the log why a recording was not saved MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two silent returns in the save path: no take was running at log time, or the mode carries no audio worth keeping. Both simply produced no file. An operator reporting "the sound is not in the folder" is describing an absence, which is the same absence in either case — but they are different problems with different fixes, and neither leaves anything behind to inspect. Now each says which one happened, and for which callsign. The success line already existed ("qso-rec: saved "), so between the three the log now accounts for every logged QSO. --- app.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app.go b/app.go index 64d77a3..5684e1a 100644 --- a/app.go +++ b/app.go @@ -7068,10 +7068,16 @@ func (a *App) saveQSORecording(q *qso.QSO) { // the snapshot failure below — so release the devices from one place rather // than remembering to do it at each return. defer a.stopManualQSORecorder() + // Both of these were SILENT returns. When an operator reports "the recording + // was not saved", the log has to say which of the two happened — no take was + // running, or the mode disqualified it — because they are different problems + // with different fixes and neither leaves a file behind to inspect. if a.qsoRec == nil || !a.qsoRec.Active() { + applog.Printf("qso-rec: nothing saved for %s — no recording was running at log time", q.Callsign) return } if !recordableMode(q.Mode) { + applog.Printf("qso-rec: nothing saved for %s — mode %q carries no audio worth keeping", q.Callsign, q.Mode) a.qsoRec.DiscardQSO() // digital mode — drop the buffered audio return }