audio.engine: dispose generator for streaming-audio-clip when it finishes

db4
Joe Groff 2010-01-24 12:44:01 -08:00
parent 1ca0b14235
commit 91e014ef96
2 changed files with 6 additions and 3 deletions

View File

@ -285,7 +285,7 @@ M: audio-engine dispose*
al-buffers [ clip swap queue-clip-buffer ] each al-buffers [ clip swap queue-clip-buffer ] each
clip audio-engine clips>> push clip audio-engine clips>> push
clip clip
] [ f ] if ; ] [ generator dispose f ] if ;
M: audio-clip dispose* M: audio-clip dispose*
[ dup audio-engine>> clips>> remove! drop ] [ dup audio-engine>> clips>> remove! drop ]
@ -297,7 +297,8 @@ M: static-audio-clip dispose*
M: streaming-audio-clip dispose* M: streaming-audio-clip dispose*
[ call-next-method ] [ call-next-method ]
[ al-buffers>> [ length ] keep alDeleteBuffers ] bi ; [ generator>> dispose ]
[ al-buffers>> [ length ] keep alDeleteBuffers ] tri ;
: play-clip ( audio-clip -- ) : play-clip ( audio-clip -- )
[ update-source ] [ update-source ]

View File

@ -14,12 +14,14 @@ M: noise-generator generate-audio
drop drop
4096 [ -4096 4096 [a,b] random ] short-array{ } replicate-as 4096 [ -4096 4096 [a,b] random ] short-array{ } replicate-as
8192 ; 8192 ;
M: noise-generator dispose
drop ;
:: audio-engine-test ( -- ) :: audio-engine-test ( -- )
"vocab:audio/engine/test/loop.aiff" read-audio :> loop-sound "vocab:audio/engine/test/loop.aiff" read-audio :> loop-sound
"vocab:audio/engine/test/once.wav" read-audio :> once-sound "vocab:audio/engine/test/once.wav" read-audio :> once-sound
0 :> i! 0 :> i!
<standard-audio-engine> :> engine f 4 <audio-engine> :> engine
engine start-audio* engine start-audio*
engine T{ audio-source f { 1.0 0.0 0.0 } 1.0 { 0.0 0.0 0.0 } f } loop-sound t engine T{ audio-source f { 1.0 0.0 0.0 } 1.0 { 0.0 0.0 0.0 } f } loop-sound t