OK, so it's gotten to the point where, either SFML will need to be adapted, or I will need to use libsndfile and openAL directly myself and bypass SFML altogether for audio playback. However, I was looking at the changes that were done to make SoundRecorder's device selectable, and I think I could do it myself, but I wanted to discuss with the dev(s) on here how exactly they would prefer to have it done. I have thought of two ways thus far:
Expose a setDevice() function somewhere (like in SoundRecorder), but have it change the global AudioDevice variable, or
Have Sound.cpp have its own device and context values that default to those provided by the AudioDevice (much more complex).
It would make more sense to have an overall selection, I think, rather than each sound being able to have its own, but how do I expose a setDevice() function to modify AudioDevice, and where? I assume, since AudioDevice and ALcheck are in the priv namespace, they aren't visible outside of the SFML code itself, but if a setDevice() function were to be placed in Sound that then called an AudioDevice.setDevice() function to change the global variable, then nothing in AudioDevice itself would need to be exposed to public usage. I definitely think the current functionality still needs to be the default, because a lot of people would have no use for the new stuff, and would be thrown off if it wasn't included. But there are those of us who want to stay in the family, as it were, and still have functionality such as this. It would certainly make things easier for me in my soundboard program.
Laurent, what do you think?