Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio/sources.h')
-rw-r--r--src/audio/sources.h40
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__