diff options
author | notaz | 2012-10-05 02:00:26 +0300 |
---|---|---|
committer | notaz | 2012-10-05 02:00:26 +0300 |
commit | 40a392b00d8a4b812a61956509f7379ca1f396bc (patch) | |
tree | 46fe35352584fb0a56d9c7c05f436e69accea3c7 | |
parent | 0dfe793b682b16d1d3f3d1973a9498adb0304b0f (diff) | |
download | picogpsp-40a392b00d8a4b812a61956509f7379ca1f396bc.tar.gz picogpsp-40a392b00d8a4b812a61956509f7379ca1f396bc.tar.bz2 picogpsp-40a392b00d8a4b812a61956509f7379ca1f396bc.zip |
make sound reinitable
this will be used for Caanoo overclocking workaround
-rw-r--r-- | main.c | 2 | ||||
-rw-r--r-- | sound.c | 11 | ||||
-rw-r--r-- | sound.h | 2 |
3 files changed, 11 insertions, 4 deletions
@@ -314,7 +314,7 @@ int main(int argc, char *argv[]) } init_main(); - init_sound(); + init_sound(1); init_input(); @@ -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); } @@ -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); |