• src/doors/syncmoo1/hw_sbbs.c syncmoo1.h syncmoo1_input.c syncmoo1_io.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Thu Jul 9 01:55:11 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/7504df3af17865306afe58a1
    Modified Files:
    src/doors/syncmoo1/hw_sbbs.c syncmoo1.h syncmoo1_input.c syncmoo1_io.c Log Message:
    syncmoo1: wire SFX audio into the 1oom hw backend

    hw_audio_sfx_* forward to syncmoo1_audio, the way hw_video_* forward to syncmoo1_io. The audio manager is created and probed at terminal enter, inbound bytes are fed to it from the input pump so it can resolve the capability reply, and hw_event_handle() drains the pending-store queue
    once the tier is known -- inside the engine's own "Preparing sounds"
    pause.

    Samples are Stored under moo1/sfx/s_<fnv1a8>, once each per session.
    A terminal without the audio APC (foot, xterm) never reaches tier 1, so
    nothing is uploaded and nothing plays: silent, not broken.

    Verified on the wire (harness2.py augmented to answer the audio
    capability probe, which it otherwise never does): every Store name is moo1/sfx/s_<hex>, no sample is Stored twice, and no Store precedes the capability reply. A DA1-only terminal (harness2.py's "foot" mode)
    receives zero Store/Load/Queue APCs. Live SyncTERM audibility (task
    Step 11) is a pending manual check.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net