From: jmt Date: Sun, 2 May 2010 11:09:31 +0000 (+0000) Subject: Following discussion with Tat and Erik, update how we handle ALUT on Mac; specificall... X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=8962d9b29383874fc2f4d64c689c85aafdcfe0cf;p=simgear.git Following discussion with Tat and Erik, update how we handle ALUT on Mac; specifically, switch to using an ALUT.framework built from FreeALUT. The ALUT framework is available (initially) from: http://files.goneabitbursar.com/fg/alut-osx-universal.zip for testing purposes; autoconf integration and an official home for the framework will follow once this approach has been tested and confirmed as sane by other Mac developers! --- diff --git a/simgear/sound/soundmgr_openal.cxx b/simgear/sound/soundmgr_openal.cxx index e372f3cc..16d9e794 100644 --- a/simgear/sound/soundmgr_openal.cxx +++ b/simgear/sound/soundmgr_openal.cxx @@ -30,7 +30,7 @@ #endif #if defined( __APPLE__ ) -# include +# include #else # include #endif @@ -45,10 +45,17 @@ #include #include +using std::string; + extern bool isNaN(float *v); #define MAX_SOURCES 128 + +#ifndef ALC_ALL_DEVICES_SPECIFIER +# define ALC_ALL_DEVICES_SPECIFIER 0x1013 +#endif + // // Sound Manager // @@ -81,6 +88,8 @@ SGSoundMgr::SGSoundMgr() : } } _alut_init++; +#else + #error ALUT 1.1 required, ALUT 1.0 is no longer supported, please upgrade #endif } diff --git a/simgear/sound/soundmgr_openal.hxx b/simgear/sound/soundmgr_openal.hxx index 9b9e0a12..749d8427 100644 --- a/simgear/sound/soundmgr_openal.hxx +++ b/simgear/sound/soundmgr_openal.hxx @@ -35,32 +35,19 @@ #ifndef _SG_SOUNDMGR_OPENAL_HXX #define _SG_SOUNDMGR_OPENAL_HXX 1 -#ifndef __cplusplus -# error This library requires C++ -#endif - #include #include #include #if defined(__APPLE__) -# define AL_ILLEGAL_ENUM AL_INVALID_ENUM -# define AL_ILLEGAL_COMMAND AL_INVALID_OPERATION # include # include -# include #elif defined(OPENALSDK) # include # include -# include #else # include # include -# include -#endif - -#ifndef ALC_ALL_DEVICES_SPECIFIER -# define ALC_ALL_DEVICES_SPECIFIER 0x1013 #endif #include @@ -68,9 +55,6 @@ #include #include "sample_group.hxx" -#include "sample_openal.hxx" - -using std::string; struct refUint { unsigned int refctr; @@ -81,11 +65,11 @@ struct refUint { ~refUint() {}; }; -typedef std::map < string, refUint > buffer_map; +typedef std::map < std::string, refUint > buffer_map; typedef buffer_map::iterator buffer_map_iterator; typedef buffer_map::const_iterator const_buffer_map_iterator; -typedef std::map < string, SGSharedPtr > sample_group_map; +typedef std::map < std::string, SGSharedPtr > sample_group_map; typedef sample_group_map::iterator sample_group_map_iterator; typedef sample_group_map::const_iterator const_sample_group_map_iterator; @@ -133,21 +117,21 @@ public: * @param refname Reference name of the sample group * @return true if successful, false otherwise */ - bool add( SGSampleGroup *sgrp, const string& refname ); + bool add( SGSampleGroup *sgrp, const std::string& refname ); /** * Remove a sample group from the sound manager. * @param refname Reference name of the sample group to remove * @return true if successful, false otherwise */ - bool remove( const string& refname ); + bool remove( const std::string& refname ); /** * Test if a specified sample group is registered at the sound manager * @param refname Reference name of the sample group test for * @return true if the specified sample group exists */ - bool exists( const string& refname ); + bool exists( const std::string& refname ); /** * Find a specified sample group in the sound manager @@ -287,13 +271,13 @@ public: /** * Get a list of available playback devices. */ - vector get_available_devices(); + std::vector get_available_devices(); /** * Get the current OpenAL vendor or rendering backend. */ - const string& get_vendor() { return _vendor; } - const string& get_renderer() { return _renderer; } + const std::string& get_vendor() { return _vendor; } + const std::string& get_renderer() { return _renderer; } private: static int _alut_init; @@ -323,17 +307,17 @@ private: sample_group_map _sample_groups; buffer_map _buffers; - vector _free_sources; - vector _sources_in_use; + std::vector _free_sources; + std::vector _sources_in_use; bool _bad_doppler; - string _renderer; - string _vendor; + std::string _renderer; + std::string _vendor; - bool testForALError(string s); - bool testForALCError(string s); - bool testForALUTError(string s); - bool testForError(void *p, string s); + bool testForALError(std::string s); + bool testForALCError(std::string s); + bool testForALUTError(std::string s); + bool testForError(void *p, std::string s); void update_pos_and_orientation(); void update_sample_config( SGSampleGroup *sound );