https://gitlab.synchro.net/main/sbbs/-/commit/5af65d06212dd11a878a4317
Modified Files:
ctrl/text.dat exec/load/cterm_lib.js text.js userdefs.js exec/user_settings.js src/sbbs3/atcodes.cpp con_out.cpp sbbsdefs.h text.h text_defaults.c text_id.c
Log Message:
Add a user setting to suppress BBS-initiated sound
New NO_SOUND bit in user.misc covering both the terminal bell and the
terminal audio @-codes added in a following change. Negative polarity, so
a default of zero preserves today's behavior for every existing user.
Bits 25 and 30 were the only two free, which is the argument for one flag rather than separate bell and audio bits.
The bell is gated in cp437_out(), the one point where a BEL byte reaches
the terminal, so @BELL@, text.dat strings and message text are all
covered by a single check. @SOUND@ reports the setting; user_settings.js toggles it on 'V', the mnemonic letter still free in that menu.
cterm_lib.js honors the flag by reading user.settings directly, so a
script respects the user's choice without needing a newer Synchronet, and
takes console.audio_files as a fast path when the terminal server has
already detected it. A false reading there cannot distinguish "no
libsndfile" from "no audio APC at all", so that case still queries.
user_settings.js guards the new text string on the running binary having
it: bbs.text() returns undefined for an unknown id, and the exec tree can
be updated ahead of the binary.
Co-Authored-By: Claude Opus 5 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net