Currently, when you want to retrieve the names of all the audio elements present, you can use several OpenAL constants offered by various extensions:
The first two are part of the ALC_ENUMERATION_EXT extension, and the last is part of the ALC_ENUMERATE_ALL_EXT extension.
However, all 3 can be obtained via the alcGetString(null, param) method, which instead of returning a null terminated string, returns a doubly null terminated string, allowing you to store an array of strings in it.
Management of doubly null terminated strings is already handled, but was only activated for ALC_DEVICE_SPECIFIER.
Here, management has been extended to all three parameters.
And JOALVersion now shows all devices present with the 3 parameters (since the ALC_ENUMERATE_ALL_EXT extension is not necessarily present, but shows more comprehensible results for the user instead of just the 'OpenAL Soft' driver).
I've made a patch available here : https://github.com/MathiusD/joal in 1475-devices-specifiers
(In reply to Mathieu Féry (MathiusD) from comment #1)
Good job. Thank you for your changes. It looks good to me. Sven should look at all this more carefully.
Thank you Mathieu, great stuff as usual and nice to see you have time to hack along.
I myself also return for a few rounds of lines,
so I will review and merger your work of course.
Thanks a lot, i'm happy to have some time for some hack along :)
Great stuff Mathieu!
Bug 1475: Minor revision of orig patch-set
- Implement ALC.alcIsDoubleNullTerminatedString() in Java w/ our existing functionality,
drop JNI function
- JoalVersion.devicesToString(..) revert to original API
dropping boolean params
- C: Drop using stdbool.h, earmarked as obsolete in std