alsa: Improved error reporting.

This commit is contained in:
Uwe Hermann 2012-12-31 23:31:31 +01:00
parent 721ecf3d97
commit 52ba6e05d5
2 changed files with 20 additions and 11 deletions

View File

@ -276,7 +276,6 @@ static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi,
sr_err("Unable to obtain poll descriptors count."); sr_err("Unable to obtain poll descriptors count.");
return SR_ERR; return SR_ERR;
} }
sr_spew("Obtained poll descriptor count: %d.", count);
if (!(devc->ufds = g_try_malloc(count * sizeof(struct pollfd)))) { if (!(devc->ufds = g_try_malloc(count * sizeof(struct pollfd)))) {
sr_err("Failed to malloc ufds."); sr_err("Failed to malloc ufds.");

View File

@ -121,7 +121,8 @@ static void alsa_scan_handle_dev(GSList **devices,
} }
hwrates[offset++] = 0; hwrates[offset++] = 0;
snd_pcm_close(temp_handle); if ((ret = snd_pcm_close(temp_handle)) < 0)
sr_err("Failed to close device: %s.", snd_strerror(ret));
temp_handle = NULL; temp_handle = NULL;
/* /*
@ -177,7 +178,10 @@ scan_error_cleanup:
if (hw_params) if (hw_params)
snd_pcm_hw_params_free(hw_params); snd_pcm_hw_params_free(hw_params);
if (temp_handle) if (temp_handle)
snd_pcm_close(temp_handle); if ((ret = snd_pcm_close(temp_handle)) < 0) {
sr_err("Failed to close device: %s.",
snd_strerror(ret));
}
} }
/** /**
@ -211,12 +215,12 @@ SR_PRIV GSList *alsa_scan(GSList *options, struct sr_dev_driver *di)
/* TODO */ /* TODO */
(void)options; (void)options;
if (snd_ctl_card_info_malloc(&info) < 0) { if ((ret = snd_ctl_card_info_malloc(&info)) < 0) {
sr_err("Cannot malloc card info."); sr_err("Failed to malloc card info: %s.", snd_strerror(ret));
return NULL; return NULL;
} }
if (snd_pcm_info_malloc(&pcminfo) < 0) { if ((ret = snd_pcm_info_malloc(&pcminfo) < 0)) {
sr_err("Cannot malloc pcm info."); sr_err("Cannot malloc pcm info: %s.", snd_strerror(ret));
return NULL; return NULL;
} }
@ -230,7 +234,10 @@ SR_PRIV GSList *alsa_scan(GSList *options, struct sr_dev_driver *di)
if ((ret = snd_ctl_card_info(handle, info)) < 0) { if ((ret = snd_ctl_card_info(handle, info)) < 0) {
sr_err("Cannot get hardware info (%d): %s.", sr_err("Cannot get hardware info (%d): %s.",
card, snd_strerror(ret)); card, snd_strerror(ret));
snd_ctl_close(handle); if ((ret = snd_ctl_close(handle)) < 0) {
sr_err("Cannot close device (%d): %s.",
card, snd_strerror(ret));
}
continue; continue;
} }
dev = -1; dev = -1;
@ -246,8 +253,8 @@ SR_PRIV GSList *alsa_scan(GSList *options, struct sr_dev_driver *di)
snd_pcm_info_set_stream(pcminfo, snd_pcm_info_set_stream(pcminfo,
SND_PCM_STREAM_CAPTURE); SND_PCM_STREAM_CAPTURE);
if ((ret = snd_ctl_pcm_info(handle, pcminfo)) < 0) { if ((ret = snd_ctl_pcm_info(handle, pcminfo)) < 0) {
sr_err("Cannot get device info: %s.", sr_err("Cannot get device info (%s): %s.",
snd_strerror(ret)); hwdev, snd_strerror(ret));
continue; continue;
} }
@ -260,7 +267,10 @@ SR_PRIV GSList *alsa_scan(GSList *options, struct sr_dev_driver *di)
alsa_scan_handle_dev(&devices, cardname, hwdev, alsa_scan_handle_dev(&devices, cardname, hwdev,
di, pcminfo); di, pcminfo);
} }
snd_ctl_close(handle); if ((ret = snd_ctl_close(handle)) < 0) {
sr_err("Cannot close device (%d): %s.",
card, snd_strerror(ret));
}
} }
snd_pcm_info_free(pcminfo); snd_pcm_info_free(pcminfo);