- frag_size = 64 * width * rate / 11025;
- err = snd_pcm_hw_params_set_period_size_near (pcm, hw, &frag_size, 0);
- if (0 > err)
- {
- Con_Printf ("ALSA: unable to set period size near %i. %s\n", (int) frag_size, snd_strerror (err));
- snd_pcm_close (pcm);
- continue;
- }
- err = snd_pcm_hw_params (pcm, hw);
- if (0 > err)
- {
- Con_Printf ("ALSA: unable to install hw params: %s\n", snd_strerror (err));
- snd_pcm_close (pcm);
- continue;
- }
- err = snd_pcm_sw_params_current (pcm, sw);
- if (0 > err)
- {
- Con_Printf ("ALSA: unable to determine current sw params. %s\n", snd_strerror (err));
- snd_pcm_close (pcm);
- continue;
- }
- err = snd_pcm_sw_params_set_start_threshold (pcm, sw, ~0U);
- if (0 > err)
- {
- Con_Printf ("ALSA: unable to set playback threshold. %s\n", snd_strerror (err));
- snd_pcm_close (pcm);
- continue;
- }
- err = snd_pcm_sw_params_set_stop_threshold (pcm, sw, ~0U);
- if (0 > err)
- {
- Con_Printf ("ALSA: unable to set playback stop threshold. %s\n", snd_strerror (err));
- snd_pcm_close (pcm);
- continue;
- }
- err = snd_pcm_sw_params (pcm, sw);
- if (0 > err)
- {
- Con_Printf ("ALSA: unable to install sw params. %s\n", snd_strerror (err));
- snd_pcm_close (pcm);
- continue;
- }
+ err = snd_pcm_hw_params (pcm_handle, hw_params);
+ if (err < 0)
+ {
+ Con_Printf ("SndSys_Init: can't set hardware parameters (%s)\n",
+ snd_strerror (err));
+ goto init_error;
+ }