-! (c)2009 Joe Groff bsd license
-USING: accessors alien alien.data audio classes.struct fry
-calendar timers combinators combinators.short-circuit
-destructors generalizations kernel literals locals math openal
-sequences sequences.generalizations specialized-arrays strings ;
+! Copyright (C) 2009 Joe Groff.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors alien alien.data audio calendar
+combinators combinators.short-circuit destructors kernel
+literals math openal sequences sequences.generalizations
+specialized-arrays timers ;
QUALIFIED-WITH: alien.c-types c
SPECIALIZED-ARRAYS: c:float c:uchar c:uint ;
IN: audio.engine
: update-audio-clip ( audio-clip -- )
[ update-source ] [
- dup al-source>> AL_SOURCE_STATE get-source-param AL_STOPPED =
+ dup al-source>> AL_SOURCE_STATE get-source-param AL_STOPPED =
[ dispose ] [ (update-audio-clip) ] if
] bi ;
: play-static-audio-clip ( audio-engine source audio loop? -- audio-clip/f )
<static-audio-clip> dup [ play-clip ] when* ;
-: play-streaming-audio-clip ( audio-engine source generator buffer-count -- audio-clip/f )
+: play-streaming-audio-clip ( audio-engine source generator buffer-count -- audio-clip/f )
<streaming-audio-clip> dup [ play-clip ] when* ;
: pause-clip ( audio-clip -- )
[ update-listener ]
[ clips>> clone [ update-audio-clip ] each ]
} cleave ;
-