• src/conio/cterm.c cterm.h cterm_cterm.c cterm_cterm.h sdl_con.c src/sy

    From Deucе@VERT to Git commit to main/sbbs/master on Monday, April 20, 2026 22:42:25
    https://gitlab.synchro.net/main/sbbs/-/commit/edca025fc0a6ba1a425c8c8f
    Modified Files:
    src/conio/cterm.c cterm.h cterm_cterm.c cterm_cterm.h sdl_con.c src/syncterm/CHANGES ripper.c src/xpdev/sdlfuncs.c xpbeep.c xpbeep.h
    Log Message:
    xpdev: S16 stereo 44100 audio with streaming mixer

    Phase 1: format upgrade to signed 16-bit stereo 44100 Hz across all 7
    backends (CoreAudio, PulseAudio, PortAudio, SDL, Win32 waveOut, ALSA,
    OSS). SINE/SAWTOOTH/SQUARE become ideal native S16; the noisy shapes
    (SINE_HARM / SINE_SAW / SINE_SAW_CHORD / SINE_SAW_HARM) preserve their intentional U8 numeric artifacts by computing in U8 then expanding.

    Phase 2: xp_audio_* streaming API with per-stream ring buffers,
    per-channel volume, dB-linear fade in/out, and crossfade.

    Phase 3: unified pull-based mixer. Pull-native backends (SDL,
    CoreAudio, PortAudio, PulseAudio async) drive xp_mixer_pull from
    their own callback; push-native backends (Win32 waveOut, ALSA, OSS)
    run a single device thread that pulls and writes.

    Phase 3d: ANSI music (MML) rewritten around xp_audio_append;
    note_params / tone_or_beep / cterm_playnote_thread scaffolding
    deleted from cterm.c / cterm_cterm.c.

    PortAudio: dropped v1.8 pablio support, v19 callback API only.
    PulseAudio: converted from libpulse-simple to libpulse async with pa_threaded_mainloop, now pull-native.
    Win32 waveOut: pre-allocated 4-buffer ring with CALLBACK_EVENT.
    SDL audio: sdlfuncs.c libnames now lists SDL2 first.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

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