Add copyright message to gles_video
[gpsp.git] / sound.c
diff --git a/sound.c b/sound.c
index 9b21e6c..81f1fa6 100644 (file)
--- 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);
 }