X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=sound.c;h=81f1fa6a8ea0d4b241ef1ce5ee8921404a069c2e;hb=ffa573f88020e4de9300a013721068672c923f33;hp=9b21e6c7fd88172a7d45245a6be025d49d4cadf5;hpb=2f1c528a6c37558760b28638d271f5ff9ba45e4f;p=gpsp.git diff --git a/sound.c b/sound.c index 9b21e6c..81f1fa6 100644 --- a/sound.c +++ b/sound.c @@ -25,13 +25,19 @@ u32 global_enable_audio = 1; direct_sound_struct direct_sound_channel[2]; gbc_sound_struct gbc_sound_channel[4]; +#ifdef RPI_BUILD +u32 sound_frequency = 22050; +#else u32 sound_frequency = 44100; +#endif SDL_mutex *sound_mutex; static SDL_cond *sound_cv; #ifdef PSP_BUILD u32 audio_buffer_size_number = 1; +#elif defined(POLLUX_BUILD) +u32 audio_buffer_size_number = 7; #else u32 audio_buffer_size_number = 8; #endif @@ -734,12 +740,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 +791,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); }