https://gitlab.synchro.net/main/sbbs/-/commit/c559c5ccf05ea61a96bbbbf3
Modified Files:
ctrl/modopts.ini docs/v322_new.md exec/load/shell_lib.js exec/xtrn_sec.js src/sbbs3/atcodes.cpp js_console.cpp sbbs.h termaudio_cache.cpp xtrn_sec.cpp text/sound/README.txt
Log Message:
Add console sound methods and modopts.ini section sound/music keys
The section hooks added in 96736a3631 (orders-4-aging, 2026-10-19) could
only play a sound by evaluating a bbs.atcode("SOUND:...") expression. Sound
is now a feature in its own right:
console.play_sound(), play_music(), cache_sound(), music_volume(),
stop_music() and stop_sound() give scripts what the terminal audio @-codes
do, through the same code: the @-codes and the methods now share sbbs_t::play_sound() and cache_sound(), so the terminal's audio file cache tracking, the content-hash check, the size limits, the text/sound path restriction and the NO_SOUND gate apply equally to both.
modopts.ini gains [shell] main_sound, file_sound, main_music and
file_music, and [xtrn_sec] enter_sound and enter_music, each naming a file
in text/sound. The main_enter, file_enter and eval_first expressions
remain for anything else.
Requesting the music that is already looping no longer restarts it; only
its volume is set. Moving between two sections that share a theme would otherwise start it over on every hop. Stopping the music, and running any external program (which may have changed or stopped it), forgets what was playing, so the next request starts it again.
Co-Authored-By: Claude Opus 5.5 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net