Currently, when you want to retrieve the names of all the audio elements present, you can use several OpenAL constants offered by various extensions: * ALC_DEVICE_SPECIFIER * ALC_CAPTURE_DEVICE_SPECIFIER * ALC_ALL_DEVICES_SPECIFIER 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) https://github.com/JogAmp/joal/compare/master...MathiusD:joal:1475-devices-specifiers 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! +++ commit 1aa6f3080953eb4b3a4018b805a014c95dfce4dd 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