From 4cc17a7f6e84c4635f33f343175adc46f2afe507 Mon Sep 17 00:00:00 2001 From: ehofman Date: Sat, 26 Dec 2009 10:07:37 +0000 Subject: [PATCH] keep a pointer to the OpenAL vendor and renderer for reference --- simgear/sound/soundmgr_openal.cxx | 15 ++++++++++----- simgear/sound/soundmgr_openal.hxx | 8 ++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/simgear/sound/soundmgr_openal.cxx b/simgear/sound/soundmgr_openal.cxx index 05651b75..7b18d61f 100644 --- a/simgear/sound/soundmgr_openal.cxx +++ b/simgear/sound/soundmgr_openal.cxx @@ -69,7 +69,9 @@ SGSoundMgr::SGSoundMgr() : _geod_pos(SGGeod::fromCart(SGVec3d::zeros())), _velocity(SGVec3d::zeros()), _orientation(SGQuatd::zeros()), - _bad_doppler(false) + _bad_doppler(false), + _renderer("unknown"), + _vendor("unknown") { #if defined(ALUT_API_MAJOR_VERSION) && ALUT_API_MAJOR_VERSION >= 1 if (_alut_init == 0) { @@ -158,10 +160,10 @@ void SGSoundMgr::init(const char *devname) { else break; } - string vendor = (const char *)alGetString(AL_VENDOR); - string renderer = (const char *)alGetString(AL_RENDERER); - if ( vendor != "OpenAL Community" || - (renderer != "Software" && renderer != "OpenAL Sample Implementation") + _vendor = (const char *)alGetString(AL_VENDOR); + _renderer = (const char *)alGetString(AL_RENDERER); + if ( _vendor != "OpenAL Community" || + (_renderer != "Software" && _renderer != "OpenAL Sample Implementation") ) { _bad_doppler = true; @@ -220,6 +222,9 @@ void SGSoundMgr::stop() { alcDestroyContext(_context); alcCloseDevice(_device); _context = NULL; + + _renderer = "unknown"; + _vendor = "unknown"; } } diff --git a/simgear/sound/soundmgr_openal.hxx b/simgear/sound/soundmgr_openal.hxx index 2aa78bc5..9b9e0a12 100644 --- a/simgear/sound/soundmgr_openal.hxx +++ b/simgear/sound/soundmgr_openal.hxx @@ -289,6 +289,12 @@ public: */ vector 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; @@ -321,6 +327,8 @@ private: vector _sources_in_use; bool _bad_doppler; + string _renderer; + string _vendor; bool testForALError(string s); bool testForALCError(string s); -- 2.39.5