Add alLoadSoundfontSOFT to load a soundfont via callback
commitfe55cd6de8b316f5e3869b88e9d64846847fb2a7
authorChris Robinson <chris.kcat@gmail.com>
Sat, 28 Dec 2013 17:58:55 +0000 (28 09:58 -0800)
committerChris Robinson <chris.kcat@gmail.com>
Sat, 28 Dec 2013 17:58:55 +0000 (28 09:58 -0800)
tree12db75aa91abade4157e67efaf702271fbfb8ed3
parent7156f4439c9f582eb74e50637a81c3c6a421b5a8
Add alLoadSoundfontSOFT to load a soundfont via callback

Some hefty caveats:
This function is not thread-safe. In particular, the current context affecting
the thread must not be changed, and the provided soundfont must not be
altered while the function is executing. Ideally, this will be fixed.

Error handling is poor. Some RIFF structure errors may not be caught (e.g. sub-
chunks with sizes greater than the parent chunk allows for), and generated AL
errors are ignored, possibly leading to resource leaks in certain situations.
These should be fixed in time.

There is minimal error checking on the provided soundfont ID. It does not
ensure a valid ID has been provided, nor does it ensure the provided soundfont
can be modified. These short-comings should be fixed eventually.

Proper cleanup is the responsibility of the caller. The caller must get the
preset objects from the soundfont before deleting it, and the fontsound objects
from each preset before deleting them, to make sure all resources are properly
deleted.
Alc/ALc.c
Alc/midi/base.h
Alc/midi/sf2load.c [new file with mode: 0644]
CMakeLists.txt
OpenAL32/Include/alMain.h
OpenAL32/alMidi.c