make sound reinitable

this will be used for Caanoo overclocking workaround
This commit is contained in:
notaz 2012-10-05 02:00:26 +03:00
parent 0dfe793b68
commit 40a392b00d
3 changed files with 11 additions and 4 deletions

2
main.c
View File

@ -314,7 +314,7 @@ int main(int argc, char *argv[])
}
init_main();
init_sound();
init_sound(1);
init_input();

11
sound.c
View File

@ -734,12 +734,18 @@ void sound_exit()
sound_exit_flag = 1;
SDL_CondSignal(sound_cv);
SDL_CloseAudio();
SDL_Delay(200);
SDL_DestroyMutex(sound_mutex);
sound_mutex = NULL;
SDL_DestroyCond(sound_cv);
sound_cv = NULL;
}
void init_sound()
void init_sound(int need_reset)
{
SDL_AudioSpec sound_settings;
sound_exit_flag = 0;
#ifdef PSP_BUILD
audio_buffer_size = (audio_buffer_size_number * 1024) + 3072;
#else
@ -779,7 +785,8 @@ void init_sound()
init_noise_table(noise_table15, 32767, 14);
init_noise_table(noise_table7, 127, 6);
reset_sound();
if (need_reset)
reset_sound();
SDL_PauseAudio(0);
}

View File

@ -124,7 +124,7 @@ void sound_timer_queue32(u32 channel, u32 value);
void sound_timer(fixed8_24 frequency_step, u32 channel);
void sound_reset_fifo(u32 channel);
void update_gbc_sound(u32 cpu_ticks);
void init_sound();
void init_sound(int need_reset);
void sound_write_mem_savestate(file_tag_type savestate_file);
void sound_read_savestate(file_tag_type savestate_file);