]> git.mxchange.org Git - simgear.git/blobdiff - simgear/sound/soundmgr_openal.hxx
Rearrange alut error checking a bit
[simgear.git] / simgear / sound / soundmgr_openal.hxx
index 30801665ccdc0f2f38cc7134aad037e88cacd869..9b9e0a126fd52e8b979f763d4f8681d38bd19589 100644 (file)
 # 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>
@@ -95,7 +99,7 @@ public:
     SGSoundMgr();
     ~SGSoundMgr();
 
-    void init();
+    void init(const char *devname = NULL);
     void bind();
     void unbind();
     void update(double dt);
@@ -280,6 +284,17 @@ public:
     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();
+
+    /**
+     * Get the current OpenAL vendor or rendering backend.
+     */
+    const string& get_vendor() { return _vendor; }
+    const string& get_renderer() { return _renderer; }
+
 private:
     static int _alut_init;
 
@@ -311,8 +326,9 @@ private:
     vector<ALuint> _free_sources;
     vector<ALuint> _sources_in_use;
 
-    char *_devname;
     bool _bad_doppler;
+    string _renderer;
+    string _vendor;
 
     bool testForALError(string s);
     bool testForALCError(string s);