https://gitlab.synchro.net/main/sbbs/-/commit/8c09a2f494a1ce9ec0df1166 Added Files: src/doors/termgfx/test/test_stream_volume.c Modified Files: src/doors/syncretro/README.md main.c syncretro_audio.c syncretro_audio.h test_audio_bytes.c test_audio_bytes.golden src/doors/termgfx/audio_stream.c audio_stream.h src/doors/termgfx/test/CMakeLists.txt Log Message: syncretro: step the volume in percent, and fix a mute with no way out The channel level stepped in 6 dB increments and snapped to full mute below -36 dB, but applied that snap in BOTH directions: from the -60 dB mute floor, '+' landed at -54 dB, still inside the snap zone, and bounced straight back to mute. Volume down was a one-way trip. The same trap caught any configured level inside -36..-60 dB, audible but unable to climb out. Reported by nelgin on IRC; the behavior dates from b226d59546 (lite-11-farm, 2026-07-17), which made the stream dB-native. The ladder a player walks now lives in the door, in percent: it holds 0..100, steps by 10, and converts at the seam. That is the unit the sysop's [audio] volume knob is already in and the unit the on-screen readout now uses ("Volume 70%", "Volume 0% (off)"), so nothing a player or a sysop touches speaks decibels, and the keys reach as far per press as SynchroLand's do. A clamped 0..100 ladder is symmetric by construction, which leaves the failure no place to hide. termgfx accordingly takes an absolute level, termgfx_stream_set_volume(), and loses termgfx_stream_volume_step() along with the snap-to-mute floor that existed only to shorten a dB ladder no door offers now. Zero percent converts to the silence floor, which is a real mute: the door stops encoding and sending, flushes the channel, and re-primes the cushion on the way back up. A new termgfx unit test covers the level and its clamps, and a step added to syncretro's audio-transcript golden pins the round trip on the wire, including that chunks fed at 0% emit nothing at all. That re-prime path off mute was unreachable before this, so it had never run. The door keys the README lists never included '+' and '-' at all. Co-Authored-By: Claude Opus 5 (1M context) --- SBBSecho 3.37-Linux * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
|