audio.engine: dispose generator for streaming-audio-clip when it finishes
							parent
							
								
									1ca0b14235
								
							
						
					
					
						commit
						91e014ef96
					
				| 
						 | 
				
			
			@ -285,7 +285,7 @@ M: audio-engine dispose*
 | 
			
		|||
        al-buffers [ clip swap queue-clip-buffer ] each
 | 
			
		||||
        clip audio-engine clips>> push
 | 
			
		||||
        clip
 | 
			
		||||
    ] [ f ] if ;
 | 
			
		||||
    ] [ generator dispose f ] if ;
 | 
			
		||||
 | 
			
		||||
M: audio-clip dispose*
 | 
			
		||||
    [ dup audio-engine>> clips>> remove! drop ]
 | 
			
		||||
| 
						 | 
				
			
			@ -297,7 +297,8 @@ M: static-audio-clip dispose*
 | 
			
		|||
 | 
			
		||||
M: streaming-audio-clip dispose*
 | 
			
		||||
    [ call-next-method ]
 | 
			
		||||
    [ al-buffers>> [ length ] keep alDeleteBuffers ] bi ;
 | 
			
		||||
    [ generator>> dispose ]
 | 
			
		||||
    [ al-buffers>> [ length ] keep alDeleteBuffers ] tri ;
 | 
			
		||||
 | 
			
		||||
: play-clip ( audio-clip -- )
 | 
			
		||||
    [ update-source ]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,12 +14,14 @@ M: noise-generator generate-audio
 | 
			
		|||
    drop
 | 
			
		||||
    4096 [ -4096 4096 [a,b] random ] short-array{ } replicate-as
 | 
			
		||||
    8192 ;
 | 
			
		||||
M: noise-generator dispose
 | 
			
		||||
    drop ;
 | 
			
		||||
 | 
			
		||||
:: audio-engine-test ( -- )
 | 
			
		||||
    "vocab:audio/engine/test/loop.aiff" read-audio :> loop-sound
 | 
			
		||||
    "vocab:audio/engine/test/once.wav" read-audio :> once-sound
 | 
			
		||||
    0 :> i!
 | 
			
		||||
    <standard-audio-engine> :> engine
 | 
			
		||||
    f 4 <audio-engine> :> engine
 | 
			
		||||
    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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue