mirror of
https://github.com/trudnai/Steve2.git
synced 2025-04-16 18:37:46 +00:00
Fixed hang when Power On pressed multiple times
This commit is contained in:
parent
c8f09f878d
commit
ae5d8211fb
@ -859,7 +859,7 @@ void m6502_ColdReset( const char * bundlePath, const char * romFileName ) {
|
||||
// wait 100ms to be sure simulation has been halted
|
||||
usleep(100000);
|
||||
|
||||
printf("Bundlepath: %s", bundlePath);
|
||||
printf("Bundlepath: %s\n", bundlePath);
|
||||
|
||||
// epoch = rdtsc();
|
||||
// sleep(1);
|
||||
|
@ -89,7 +89,6 @@ void spkr_init() {
|
||||
// Fill buffer with zeros
|
||||
memset( spkr_samples, spkr_level, spkr_buf_size );
|
||||
|
||||
|
||||
// Create buffer to store samples
|
||||
alGenBuffers(BUFFER_COUNT, spkr_buffers);
|
||||
al_check_error();
|
||||
@ -111,6 +110,8 @@ void spkr_init() {
|
||||
// start from the beginning
|
||||
spkr_sample_idx = 0;
|
||||
|
||||
// make sure we have free buffers initialized here
|
||||
freeBuffers = BUFFER_COUNT;
|
||||
}
|
||||
|
||||
// Dealloc OpenAL
|
||||
@ -154,12 +155,24 @@ void spkr_update() {
|
||||
// spkr_buf = 0;
|
||||
// }
|
||||
|
||||
// ALint queued = 0;
|
||||
ALint processed = 0;
|
||||
|
||||
// alGetSourcei (spkr_src, AL_BUFFERS_QUEUED, &queued);
|
||||
// alGetSourcei (spkr_src, AL_BUFFERS_PROCESSED, &processed);
|
||||
//
|
||||
// printf("freeBuffers:%d queued:%d processed:%d\n", freeBuffers, queued,processed);
|
||||
|
||||
do {
|
||||
alGetSourcei (spkr_src, AL_BUFFERS_PROCESSED, &processed);
|
||||
// if ( processed )
|
||||
freeBuffers += processed;
|
||||
// al_check_error();
|
||||
|
||||
if ( processed ) {
|
||||
alSourceUnqueueBuffers( spkr_src, processed, &spkr_buffers[freeBuffers]);
|
||||
// al_check_error();
|
||||
freeBuffers += processed;
|
||||
}
|
||||
|
||||
// usleep(100);
|
||||
// if ( freeBuffers <= 0 ) printf("No Free Buffer\n");
|
||||
} while( freeBuffers <= 0 );
|
||||
@ -172,11 +185,6 @@ void spkr_update() {
|
||||
alGetSourcei( spkr_src, AL_SOURCE_STATE, &state );
|
||||
// al_check_error();
|
||||
|
||||
if ( processed ) {
|
||||
alSourceUnqueueBuffers( spkr_src, processed, &spkr_buffers[freeBuffers - processed]);
|
||||
// al_check_error();
|
||||
}
|
||||
|
||||
// spkr_samples[0] = 0;
|
||||
// spkr_samples[1] = 255;
|
||||
// spkr_samples[2] = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user