• src/xpdev/xpbeep.c

    From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Apr 20 23:27:36 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/c4d40f8df8bfe47e5962a1e6
    Modified Files:
    src/xpdev/xpbeep.c
    Log Message:
    And, of course, fix the Borland build.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Apr 21 10:35:41 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/695158804810f59a019739fa
    Modified Files:
    src/xpdev/xpbeep.c
    Log Message:
    Add some "idiomatic" idiocy for Windows.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Apr 21 11:24:52 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d0f1673364b87c2e9d70ce00
    Modified Files:
    src/xpdev/xpbeep.c
    Log Message:
    Fix warning.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Apr 21 20:07:07 2026
    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)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Wed Apr 22 00:11:54 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/ee221af10158c7b559e3071c
    Modified Files:
    src/xpdev/xpbeep.c
    Log Message:
    Switch to an equal-power cross-fade.

    The old dB-linear cross-fade was terrible... the two samples crossed
    at -30dB from the channel level (normally -12), which while perceptible
    isn't exactly what people imagine when they think of a cross-fade.

    The equal-power curve actually seems reasonable for all fades.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Wed Apr 22 01:17:53 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/77c1c5218b8d4a29a086831d
    Modified Files:
    src/xpdev/xpbeep.c
    Log Message:
    Use equal-power ramp for Volume command too.

    This effectively let's you pan channels around as they play.
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)