- snd_mixer_open(&handle, 0);
- snd_mixer_attach(handle, card);
- snd_mixer_selem_register(handle, NULL, NULL);
- snd_mixer_load(handle);
- snd_mixer_selem_id_malloc(&s_elem);
- snd_mixer_selem_id_set_name(s_elem, "Master");
- elem = snd_mixer_find_selem(handle, s_elem);
-
- if (elem == NULL) {
- snd_mixer_selem_id_free(s_elem);
- snd_mixer_close(handle);
- warn("Failed to get volume percentage for %s", card);
- return smprintf("%s", UNKNOWN_STR);
+ afd = open(card, O_RDONLY);
+ if (afd < 0) {
+ warn("Cannot open %s", card);
+ return smprintf(UNKNOWN_STR);