]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/audio/engine/test/test.factor
basis/extra: builder fixes for recent cleanups
[factor.git] / extra / audio / engine / test / test.factor
index 46c45f84b1fe10e63dc70309079ca7c6cde204d4..3138a8ed01efe6cb139a1e6923ff631d3c625cc8 100644 (file)
@@ -1,9 +1,9 @@
-! (c)2009 Joe Groff bsd license
-USING: accessors alarms audio audio.engine audio.loader calendar
-destructors io kernel locals math math.functions math.ranges specialized-arrays
+! Copyright (C) 2009 Joe Groff.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors timers audio.engine audio.loader calendar
+destructors io kernel math math.functions ranges specialized-arrays
 sequences random math.vectors ;
-FROM: alien.c-types => short ;
-SPECIALIZED-ARRAY: short
+SPECIALIZED-ARRAY: alien.c-types:short
 IN: audio.engine.test
 
 TUPLE: noise-generator ;
@@ -11,18 +11,22 @@ TUPLE: noise-generator ;
 M: noise-generator generator-audio-format
     drop 1 16 8000 ;
 M: noise-generator generate-audio
-    nip [ -1 shift [ -4096 4096 [a,b] random ] short-array{ } replicate-as ] keep ;
+    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
         play-static-audio-clip :> loop-clip
-    engine T{ audio-source f { -1.0 0.0 0.0 } 1.0 { 0.0 0.0 0.0 } f } noise-generator new 8192 2
+    engine T{ audio-source f { -1.0 0.0 0.0 } 1.0 { 0.0 0.0 0.0 } f } noise-generator new 2
         play-streaming-audio-clip :> noise-clip
 
     [
@@ -37,10 +41,10 @@ M: noise-generator generate-audio
         ] when
 
         engine update-audio
-    ] 20 milliseconds every :> alarm
+    ] 20 milliseconds every :> timer
     "Press Enter to stop the test." print
     readln drop
-    alarm cancel-alarm
+    timer stop-timer
     engine dispose ;
 
 MAIN: audio-engine-test