From 0a2f05561bde9f5b89659d7c412abe3da150bef3 Mon Sep 17 00:00:00 2001 From: Themaister Date: Sat, 15 Jan 2011 21:11:22 +0100 Subject: [PATCH] Add in SW params again, seems like they were needed after all... :) --- audio/alsa.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/audio/alsa.c b/audio/alsa.c index 0d759599f8..4a48adb3da 100644 --- a/audio/alsa.c +++ b/audio/alsa.c @@ -56,6 +56,7 @@ static void* __alsa_init(const char* device, int rate, int latency) return NULL; snd_pcm_hw_params_t *params = NULL; + snd_pcm_sw_params_t *sw_params = NULL; const char *alsa_dev = "default"; if ( device != NULL ) @@ -88,7 +89,13 @@ static void* __alsa_init(const char* device, int rate, int latency) snd_pcm_hw_params_get_buffer_size(params, &buffer_size); SSNES_LOG("ALSA: Buffer size: %d frames\n", (int)buffer_size); + TRY_ALSA(snd_pcm_sw_params_malloc(&sw_params)); + TRY_ALSA(snd_pcm_sw_params_current(alsa->pcm, sw_params)); + TRY_ALSA(snd_pcm_sw_params_set_start_threshold(alsa->pcm, sw_params, buffer_size / 2)); + TRY_ALSA(snd_pcm_sw_params(alsa->pcm, sw_params)); + snd_pcm_hw_params_free(params); + snd_pcm_sw_params_free(sw_params); return alsa; @@ -97,6 +104,9 @@ error: if (params) snd_pcm_hw_params_free(params); + if (sw_params) + snd_pcm_sw_params_free(sw_params); + if (alsa) { if (alsa->pcm)