alsactl: Fix REMOVE event handling in monitor command

SND_CTL_EVENT_MASK_REMOVE has to be checked at first and ignore the
rest if it matches.  Suggested by Clemens.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Takashi Iwai 2013-11-26 13:59:19 +01:00
parent d2d9b6fc8d
commit bb3293c76e

View file

@ -58,6 +58,10 @@ int monitor(const char *name)
snd_ctl_event_elem_get_index(event)); snd_ctl_event_elem_get_index(event));
mask = snd_ctl_event_elem_get_mask(event); mask = snd_ctl_event_elem_get_mask(event);
if (mask == SND_CTL_EVENT_MASK_REMOVE) {
printf(" REMOVE\n");
continue;
}
if (mask & SND_CTL_EVENT_MASK_VALUE) if (mask & SND_CTL_EVENT_MASK_VALUE)
printf(" VALUE"); printf(" VALUE");
if (mask & SND_CTL_EVENT_MASK_INFO) if (mask & SND_CTL_EVENT_MASK_INFO)
@ -66,8 +70,6 @@ int monitor(const char *name)
printf(" ADD"); printf(" ADD");
if (mask & SND_CTL_EVENT_MASK_TLV) if (mask & SND_CTL_EVENT_MASK_TLV)
printf(" TLV"); printf(" TLV");
if (mask == SND_CTL_EVENT_MASK_REMOVE)
printf(" REMOVE");
printf("\n"); printf("\n");
} }
snd_ctl_close(ctl); snd_ctl_close(ctl);