Merge branch 'emacs' of http://git.hacks-galore.org/jao/factor
[factor/jcg.git] / unmaintained / openal / example / example.factor
blobae0b50afff82b7841fb0356eeaf6766ece70bdc2
1 ! Copyright (C) 2007 Chris Double.\r
2 ! See http://factorcode.org/license.txt for BSD license.\r
3 !\r
4 IN: openal.example\r
5 USING: openal kernel alien threads sequences calendar ;\r
6 \r
7 : play-hello ( -- )\r
8   init-openal\r
9   1 gen-sources\r
10   first dup AL_BUFFER  alutCreateBufferHelloWorld set-source-param\r
11   source-play\r
12   1000 milliseconds sleep ;\r
13   \r
14 : (play-file) ( source -- )\r
15   100 milliseconds sleep\r
16   dup source-playing? [ (play-file) ] [ drop ] if ;\r
18 : play-file ( filename -- )\r
19   init-openal\r
20   create-buffer-from-file \r
21   1 gen-sources\r
22   first dup >r AL_BUFFER rot set-source-param r>\r
23   dup source-play\r
24   check-error\r
25   (play-file) ;\r
27 : play-wav ( filename -- )\r
28   init-openal\r
29   create-buffer-from-wav \r
30   1 gen-sources\r
31   first dup >r AL_BUFFER rot set-source-param r>\r
32   dup source-play\r
33   check-error\r
34   (play-file) ;