Better audio error catching

This commit is contained in:
Iwan Timmer
2014-02-12 16:38:21 +00:00
parent d84b4e6f20
commit 56eea63aad
2 changed files with 17 additions and 7 deletions

View File

@@ -19,13 +19,21 @@ int nv_alsa_init(unsigned int channelCount, unsigned int sampleRate) {
snd_pcm_hw_params_alloca(&params);
snd_pcm_hw_params_any(handle, params);
snd_pcm_hw_params_set_access(handle, params, SND_PCM_ACCESS_RW_INTERLEAVED);
snd_pcm_hw_params_set_format(handle, params, SND_PCM_FORMAT_S16_LE);
snd_pcm_hw_params_set_channels(handle, params, channelCount);
snd_pcm_hw_params_set_rate_near(handle, params, &sampleRate, &dir);
if ((rc = snd_pcm_hw_params_set_access(handle, params, SND_PCM_ACCESS_RW_INTERLEAVED)) != 0)
return rc;
if ((rc = snd_pcm_hw_params_set_format(handle, params, SND_PCM_FORMAT_S16_LE)) != 0)
return rc;
if ((rc = snd_pcm_hw_params_set_channels(handle, params, channelCount)) != 0)
return rc;
if ((rc = snd_pcm_hw_params_set_rate_near(handle, params, &sampleRate, &dir)) != 0)
return rc;
snd_pcm_uframes_t frames = 32;
snd_pcm_hw_params_set_period_size_near(handle, params, &frames, &dir);
if ((rc = snd_pcm_hw_params_set_period_size_near(handle, params, &frames, &dir)) != 0)
return rc;
if ((rc = snd_pcm_hw_params(handle, params)) != 0)
return rc;
@@ -51,4 +59,4 @@ int nv_alsa_play(const unsigned char* indata, int data_len) {
int nv_alsa_close(void) {
snd_pcm_drain(handle);
snd_pcm_close(handle);
}
}