mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-01 22:58:49 -04:00
Changed control to use events mask. Added subscribe ioctl
This commit is contained in:
parent
fa51799255
commit
3e97ef3ea0
14 changed files with 225 additions and 205 deletions
|
|
@ -787,21 +787,27 @@ int simple_event_info(snd_mixer_elem_t *melem)
|
|||
return snd_mixer_elem_change(melem);
|
||||
}
|
||||
|
||||
int simple_event(snd_mixer_class_t *class, snd_ctl_event_type_t event,
|
||||
int simple_event(snd_mixer_class_t *class, unsigned int mask,
|
||||
snd_hctl_elem_t *helem, snd_mixer_elem_t *melem)
|
||||
{
|
||||
switch (event) {
|
||||
case SND_CTL_EVENT_ADD:
|
||||
return simple_event_add(class, helem);
|
||||
case SND_CTL_EVENT_INFO:
|
||||
return simple_event_info(melem);
|
||||
case SND_CTL_EVENT_VALUE:
|
||||
return snd_mixer_elem_throw_event(melem, event);
|
||||
case SND_CTL_EVENT_REMOVE:
|
||||
int err;
|
||||
if (mask == SND_CTL_EVENT_MASK_REMOVE)
|
||||
return simple_event_remove(helem, melem);
|
||||
default:
|
||||
assert(0);
|
||||
break;
|
||||
if (mask & SND_CTL_EVENT_MASK_ADD) {
|
||||
err = simple_event_add(class, helem);
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
if (mask & SND_CTL_EVENT_MASK_INFO) {
|
||||
err = simple_event_info(melem);
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
if (mask & SND_CTL_EVENT_MASK_VALUE) {
|
||||
/* FIXME */
|
||||
err = snd_mixer_elem_throw_event(melem, mask);
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue