| 
									
										
										
										
											2010-02-20 03:22:01 -05:00
										 |  |  | ! Copyright (C) 2007 Chris Double. | 
					
						
							|  |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							|  |  |  | USING: calendar kernel openal openal.alut sequences threads ;
 | 
					
						
							|  |  |  | IN: openal.example | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : play-hello ( -- )
 | 
					
						
							|  |  |  |     init-openal | 
					
						
							|  |  |  |     1 gen-sources | 
					
						
							|  |  |  |     first dup AL_BUFFER  alutCreateBufferHelloWorld set-source-param | 
					
						
							|  |  |  |     source-play | 
					
						
							|  |  |  |     1000 milliseconds sleep ;
 | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  | : (play-file) ( source -- )
 | 
					
						
							|  |  |  |     100 milliseconds sleep | 
					
						
							|  |  |  |     dup source-playing? [ (play-file) ] [ drop ] if ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : play-file ( filename -- )
 | 
					
						
							|  |  |  |     init-openal | 
					
						
							|  |  |  |     create-buffer-from-file  | 
					
						
							|  |  |  |     1 gen-sources | 
					
						
							|  |  |  |     first dup [ AL_BUFFER rot set-source-param ] dip
 | 
					
						
							|  |  |  |     dup source-play | 
					
						
							|  |  |  |     check-error | 
					
						
							|  |  |  |     (play-file) ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : play-wav ( filename -- )
 | 
					
						
							|  |  |  |     init-openal | 
					
						
							|  |  |  |     create-buffer-from-wav  | 
					
						
							|  |  |  |     1 gen-sources | 
					
						
							|  |  |  |     first dup [ AL_BUFFER rot set-source-param ] dip
 | 
					
						
							|  |  |  |     dup source-play | 
					
						
							|  |  |  |     check-error | 
					
						
							|  |  |  |     (play-file) ;
 |