/* audio/source.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_AUDIO_SOURCES_H__ #define __INCLUDED_AUDIO_SOURCES_H__ #include "sys/sys.h" #ifdef _OSX #include "OpenAL/al.h" #include "OpenAL/alc.h" #else #include "AL/al.h" #include "AL/alc.h" #endif #include #include namespace audio { const size_t MAXSOURCES = 32; const size_t MAXUISOURCES = 4; /// OpenAL sources wrapper class class Sources { public: static void init(); static void shutdown(); static inline bool available(size_t index) { return source_available[index]; } static inline ALuint source(size_t index) { return sources[index]; } static size_t get(); static void remove(size_t index); static bool is_playing(size_t index); private: static void clear(); static ALuint sources[MAXSOURCES]; static bool source_available[MAXSOURCES]; }; } #endif // __INCLUDED_AUDIO_SOURCES_H__