• src/doors/termgfx/audio_mgr.c audio_mgr.h

    From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Thu Jul 9 01:55:10 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/35961c8931362fcc6d940d19
    Modified Files:
    src/doors/termgfx/audio_mgr.c audio_mgr.h
    Log Message:
    termgfx: add name-addressed SFX (store + play_named)

    The SFX pair keys its client-cache name on the caller's id ("<prefix>/sfx/<id>", audio_mgr.c's snprintf(leaf, "%d", id)) and Stores lazily, inside the play call, guarded by sfx_up[id]. Neither an eager
    Store nor a caller-supplied name is expressible, and syncmoo1 needs both:
    1oom registers every sample up front, before the audio tier is even
    known, and content-addressed names are what let a later cross-session
    upload skip be correct.

    Add termgfx_audio_sfx_store() and termgfx_audio_sfx_play_named(), keyed
    on a caller-supplied leaf with their own "Stored this session" table.
    The transcode-and-Store body is extracted to sfx_store_bytes() and shared
    with the id path, whose sfx_up[]/sfx_dur[] behaviour is unchanged.

    Additive: SyncDOOM and SyncDuke keep the id path byte-for-byte and both
    still build.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)