From 43054b826cbdceaa8e7a7c53bf1d7cbec67bd1f5 Mon Sep 17 00:00:00 2001 From: ivost Date: Tue, 19 Sep 2006 20:03:31 +0000 Subject: [PATCH] -madopenal sample fixed for win32 git-svn-id: trunk@4660 - --- packages/extra/openal/examples/madopenal.pas | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/extra/openal/examples/madopenal.pas b/packages/extra/openal/examples/madopenal.pas index d644fd1bba..2aa64bea91 100644 --- a/packages/extra/openal/examples/madopenal.pas +++ b/packages/extra/openal/examples/madopenal.pas @@ -46,7 +46,7 @@ var Remaining : Integer; ReadStart : Pointer; ReadSize : Integer; - Output : PWord; + Output : PSmallint; begin if Count mod BLOCK_SIZE <> 0 then Exit(0); @@ -98,14 +98,14 @@ begin if pcm.samples[0][X] < -MAD_F_ONE then pcm.samples[0][X] := -MAD_F_ONE; pcm.samples[0][X] := pcm.samples[0][X] shr (MAD_F_FRACBITS + 1 - 16); - Output[X shl 1] := pcm.samples[0][X]; + Output[X shl 1] := pcm.samples[0][X] div 2; if pcm.samples[1][X] >= MAD_F_ONE then pcm.samples[1][X] := MAD_F_ONE - 1; if pcm.samples[1][X] < -MAD_F_ONE then pcm.samples[1][X] := -MAD_F_ONE; pcm.samples[1][X] := pcm.samples[1][X] shr (MAD_F_FRACBITS + 1 - 16); - Output[(X shl 1)+1] := pcm.samples[1][X]; + Output[(X shl 1)+1] := pcm.samples[1][X] div 2; end; end else begin for X := 0 to pcm.length -1 do @@ -116,8 +116,8 @@ begin pcm.samples[0][X] := -MAD_F_ONE; pcm.samples[0][X] := pcm.samples[0][X] shr (MAD_F_FRACBITS + 1 - 16); - Output[X shl 1] := pcm.samples[0][X]; - Output[(X shl 1)+1] := pcm.samples[0][X]; + Output[X shl 1] := pcm.samples[0][X] div 2; + Output[(X shl 1)+1] := pcm.samples[0][X] div 2; end; end; @@ -148,7 +148,8 @@ begin alSourceQueueBuffers(source, 1, @buffers[i]); end; - alSourcei(source, AL_LOOPING, AL_TRUE); + // Under windows, AL_LOOPING = AL_TRUE breaks queueing, no idea why + alSourcei(source, AL_LOOPING, AL_FALSE); alSourcePlay(source); end; @@ -176,7 +177,7 @@ begin alStop; Exit(False); end; - + alBufferData(buffer, AL_FORMAT_STEREO16, @t, bufsize, 44100); alSourceQueueBuffers(source, 1, @buffer);