diff options
Diffstat (limited to 'src/audio/sources.h')
-rw-r--r-- | src/audio/sources.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/audio/sources.h b/src/audio/sources.h new file mode 100644 index 0000000..405b944 --- /dev/null +++ b/src/audio/sources.h @@ -0,0 +1,40 @@ +/* + 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 "AL/al.h" +#include "AL/alc.h" + +#include <string> +#include <map> + +namespace audio { + +const size_t MAXSOURCES = 128; + +/// OpenAL sources wrapper class +class Sources { +public: + static void init(); + static void shutdown(); + + static bool available(size_t index) { return source_available[index]; } + + /// the sources for user interface sounds + static inline ALuint ui() { return sources[0]; } + +private: + static void clear(); + + static ALuint sources[MAXSOURCES]; + static bool source_available[MAXSOURCES]; +}; + +} + +#endif // __INCLUDED_AUDIO_SOURCES_H__ |