- fatal(0, "error calling snd_pcm_hw_params: %d", err);
-
-}
-
-static void alsa_activate(void) {
- uaudio_thread_activate();
+ disorder_fatal(0, "error calling snd_pcm_hw_params: %d", err);
+ /* Software parameters */
+ snd_pcm_sw_params_t *swparams;
+ snd_pcm_sw_params_alloca(&swparams);
+ if((err = snd_pcm_sw_params_current(alsa_pcm, swparams)) < 0)
+ disorder_fatal(-err, "error calling snd_pcm_sw_params_current");
+ /* Bump the start threshold a bit since Pulseaudio sulks with the defaults */
+ if((err = snd_pcm_sw_params_set_start_threshold(alsa_pcm, swparams, 1024)) < 0)
+ disorder_fatal(-err, "error calling snd_pcm_sw_params_set_start_threshold");
+ if((err = snd_pcm_sw_params(alsa_pcm, swparams)) < 0)
+ disorder_fatal(-err, "error calling snd_pcm_sw_params");