46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
| ! 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-waveform ( waveshape freq phase duration -- )
 | |
|     init-openal
 | |
|     [
 | |
|         [ 1 gen-sources first dup AL_BUFFER ] 4dip
 | |
|         alutCreateBufferWaveform
 | |
|         set-source-param
 | |
|         source-play
 | |
|     ] [ seconds sleep ] bi ;
 | |
| 
 | |
| : play-sine ( freq duration -- )
 | |
|   [ ALUT_WAVEFORM_SINE ] 2dip [ 0 ] dip play-waveform ;
 | |
| 
 | |
| : (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) ;
 |