codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
bool DelayExpired() { while ( /*created && !badError &&*/ !terminated) { ALint state = AL_PLAYING; ALint processed = 0; alureSleep(0.01f); if ( !source || source.state!=playing ) continue; alGetError(); alGetSourcei(source.id, AL_SOURCE_STATE, &state); alGetSourcei(source.id, AL_BUFFERS_PROCESSED, &processed); // printf( "Processed: %d\n", processed ); // printf( "I: %s", alureGetErrorString()); if(processed > 0) { ALuint *bufs=new ALuint[usesBuffers]; ALsizei filled; alSourceUnqueueBuffers(source.id, processed, bufs); filled = alureBufferDataFromStream(stream, processed, bufs); if(filled <= 0) { if(loop) { alureRewindStream(stream); filled = alureBufferDataFromStream(stream, processed, bufs); if(filled <= 0) { printf( "ALUREStream:DelayExpiredinThread:Bad error when attempting to loop.\n" ); badError=true; ((GuiApplication)__thisModule).Lock(); OnError(); ((GuiApplication)__thisModule).Unlock(); delete bufs; return false; } } else if(state != AL_PLAYING) { ((GuiApplication)__thisModule).Lock(); OnComplete(); ((GuiApplication)__thisModule).Unlock(); delete bufs; return false; } } alSourceQueueBuffers(source.id, filled, bufs); delete bufs; } if(state != AL_PLAYING) { alSourcePlay(source.id); } ((GuiApplication)__thisModule).Lock(); BetweenFrames(); ((GuiApplication)__thisModule).Unlock(); } // this.timer.delay = (1.0f/refreshRate); // this.timer.Start(); return true; }
Private
[
?
]
Run code
Submit