return true;
}
+vector<const char*> SGSoundMgr::get_available_devices()
+{
+ vector<const char*> devices;
+ const ALCchar *s;
+
+ if (alcIsExtensionPresent(NULL, "ALC_enumerate_all_EXT") == AL_TRUE) {
+ s = alcGetString(NULL, ALC_ALL_DEVICES_SPECIFIER);
+ } else {
+ s = alcGetString(NULL, ALC_DEVICE_SPECIFIER);
+ }
+
+ if (s) {
+ ALCchar *nptr, *ptr = (ALCchar *)s;
+
+ nptr = ptr;
+ while (*(nptr += strlen(ptr)+1) != 0)
+ {
+ devices.push_back(ptr);
+ ptr = nptr;
+ }
+ devices.push_back(ptr);
+ }
+
+ return devices;
+}
+
bool SGSoundMgr::testForError(void *p, string s)
{
# include <AL/alut.h>
#endif
+#ifndef ALC_ALL_DEVICES_SPECIFIER
+# define ALC_ALL_DEVICES_SPECIFIER 0x1013
+#endif
+
#include <simgear/compiler.h>
#include <simgear/structure/subsystem_mgr.hxx>
#include <simgear/math/SGMathFwd.hxx>
bool load(string &samplepath, void **data, int *format,
size_t *size, int *freq );
+ /**
+ * Get a list of available playback devices.
+ */
+ vector<const char*> get_available_devices();
+
private:
static int _alut_init;