]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/audio/engine/test/test.factor
alien.c-types: not necessary to import `short` differently anymore
[factor.git] / extra / audio / engine / test / test.factor
index 8f3a94050ab6ea541a5ce93efe11928678306436..2b81c5b3e211a7c72dad1bdfaf43d116d481e827 100644 (file)
@@ -1,8 +1,8 @@
-! (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
 IN: audio.engine.test
 
@@ -11,18 +11,22 @@ TUPLE: noise-generator ;
 M: noise-generator generator-audio-format
     drop 1 16 8000 ;
 M: noise-generator generate-audio
-    nip P [ -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