https://gitlab.synchro.net/main/sbbs/-/commit/4f8d820161535a3e4ff10518
Modified Files:
src/xpdev/xpbeep.c
Log Message:
xpbeep: fix non-MT build broken by xptone rewrite
The node-FIFO mixer commit (897325cdb8) rewrote xptone() to open its
own xp_audio stream via pthread_once + assert_pthread_mutex_lock + xp_audio_open — all MT-only symbols — but xptone() sits outside the XPDEV_THREAD_SAFE guard in xpbeep.c, so non-MT builds (single-threaded
xpdev consumed by the Borland SBBS build) no longer compiled.
Split xptone() into two variants under #ifdef XPDEV_THREAD_SAFE / #else:
- MT keeps the new single-stream xp_audio_open + chunk-append path with
the stream opened at -12 dB for headroom.
- Non-MT restores the pre-rewrite per-chunk xp_play_sample16s flow and
bakes the -12 dB attenuation into the wave buffer with an inline
0.251 scale, since the non-MT path has no stream/mixer volume to
carry it.
Co-Authored-By: Claude Opus 4.7 (1M context) <
[email protected]>
--- SBBSecho 3.37-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)