Rewrite Frotz audio system core
authorfundamental <mark.d.mccurry@gmail.com>
Tue, 28 May 2019 00:01:45 +0000 (20:01 -0400)
committerfundamental <mark.d.mccurry@gmail.com>
Tue, 28 May 2019 00:01:45 +0000 (20:01 -0400)
commit21e0c1f39959f07a5987308fd88448fc05b0949f
treea9346bc55120103b0c4ce955351368c988958da4
parent6057b8b924c65507e59224370d94fbab5c0bcd42
Rewrite Frotz audio system core

Introduce an audio manager which works on audio streams which are loaded into
one of several audio voices. These streams are loaded into memory in the
interperter thread and then incrementally translated to samples in the audio
thread. Multiple concurrent voices is normal during operation and should not
cause issues. Overhead when no voices are playing should be low, though as the
audio thread will be running in the background after it has been initialized,
the overhead will be non-zero.

The provided work is C89 compliant (according to GCC), is available under a
dual GPLv2+ and MIT license, and as a result of the stream loaded approach
removes the libvorbis dependency as libsndfile handles in-memory OGG files.
src/curses/ux_audio.c
src/curses/ux_audio.h [new file with mode: 0644]
src/curses/ux_locks.c
src/curses/ux_locks.h