X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Falsa%2Falsa.c;h=d61246e4388721bc95b535cef0759752dd90c59d;hb=4d7b525ae9c0a85097280e77b9c158e9c4c8c6e5;hp=95161b7ab8c3bd1df625c7f3a58a0d8c93d6054e;hpb=86f5e3d826fc9059e110f07221cb1a30652ceac2;p=libsigrok.git diff --git a/hardware/alsa/alsa.c b/hardware/alsa/alsa.c index 95161b7a..d61246e4 100644 --- a/hardware/alsa/alsa.c +++ b/hardware/alsa/alsa.c @@ -108,21 +108,28 @@ static int hw_opendev(int device_index) return SR_OK; } -static void hw_closedev(int device_index) +static int hw_closedev(int device_index) { struct sr_device_instance *sdi; struct alsa *alsa; - if (!(sdi = sr_get_device_instance(device_instances, device_index))) - return; - alsa = sdi->priv; - if (!alsa) - return; + if (!(sdi = sr_get_device_instance(device_instances, device_index))) { + sr_err("alsa: %s: sdi was NULL", __func__); + return SR_ERR; /* TODO: SR_ERR_ARG? */ + } + if (!(alsa = sdi->priv)) { + sr_err("alsa: %s: sdi->priv was NULL", __func__); + return SR_ERR; /* TODO: SR_ERR_ARG? */ + } + + // TODO: Return values of snd_*? if (alsa->hw_params) snd_pcm_hw_params_free(alsa->hw_params); if (alsa->capture_handle) snd_pcm_close(alsa->capture_handle); + + return SR_OK; } static void hw_cleanup(void)