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/audio.cc')
-rw-r--r--src/audio/audio.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/audio/audio.cc b/src/audio/audio.cc
index 304174c..3f505c0 100644
--- a/src/audio/audio.cc
+++ b/src/audio/audio.cc
@@ -193,6 +193,21 @@ size_t loop(size_t source_index, size_t buffer_index, float pitch, float gain)
return buffer_index;
}
+size_t stop(size_t source_index)
+{
+ if (!audio_initialized)
+ return 0;
+
+ ALuint source = Sources::source(source_index);
+ ALint srcstate = 0;
+ alGetSourcei(source , AL_SOURCE_STATE , &srcstate);
+ if (srcstate == AL_PLAYING) {
+ alSourceStop(source);
+ }
+
+ return source_index;
+}
+
size_t loop(size_t source_index, const char *name, float pitch, float gain)
{
if (!audio_initialized)