tweak queue-clip-buffer to stop bothering the audio generator after generate-audio returns a size of 0 or f
parent
bc14a7392b
commit
3487f3a5c5
|
@ -84,7 +84,8 @@ TUPLE: streaming-audio-clip < audio-clip
|
||||||
{ channels integer }
|
{ channels integer }
|
||||||
{ sample-bits integer }
|
{ sample-bits integer }
|
||||||
{ sample-rate integer }
|
{ sample-rate integer }
|
||||||
{ al-buffers uint-array } ;
|
{ al-buffers uint-array }
|
||||||
|
{ done? boolean } ;
|
||||||
|
|
||||||
ERROR: audio-device-not-found device-name ;
|
ERROR: audio-device-not-found device-name ;
|
||||||
ERROR: audio-context-not-available device-name ;
|
ERROR: audio-context-not-available device-name ;
|
||||||
|
@ -150,14 +151,18 @@ ERROR: audio-context-not-available device-name ;
|
||||||
al-source ;
|
al-source ;
|
||||||
|
|
||||||
:: queue-clip-buffer ( audio-clip al-buffer -- )
|
:: queue-clip-buffer ( audio-clip al-buffer -- )
|
||||||
audio-clip al-source>> :> al-source
|
audio-clip done?>> [
|
||||||
audio-clip generator>> :> generator
|
audio-clip al-source>> :> al-source
|
||||||
generator generate-audio :> ( data size )
|
audio-clip generator>> :> generator
|
||||||
|
generator generate-audio :> ( data size )
|
||||||
|
|
||||||
data [
|
size { [ not ] [ zero? ] } 1|| [
|
||||||
al-buffer audio-clip openal-format data size audio-clip sample-rate>> alBufferData
|
audio-clip t >>done? drop
|
||||||
al-source 1 al-buffer c:<uint> alSourceQueueBuffers
|
] [
|
||||||
] when ;
|
al-buffer audio-clip openal-format data size audio-clip sample-rate>> alBufferData
|
||||||
|
al-source 1 al-buffer c:<uint> alSourceQueueBuffers
|
||||||
|
] if
|
||||||
|
] unless ;
|
||||||
|
|
||||||
: update-listener ( audio-engine -- )
|
: update-listener ( audio-engine -- )
|
||||||
listener>> {
|
listener>> {
|
||||||
|
|
Loading…
Reference in New Issue