Permit to PCM plug configuration to specify unchanged parameters. Added support for RT signals to async interface. Added ops for PCM mix.

This commit is contained in:
Abramo Bagnara 2001-07-07 15:53:20 +00:00
parent a5b77b03f6
commit fcd164e622
15 changed files with 492 additions and 158 deletions

View file

@ -131,6 +131,10 @@ int snd_ctl_new(snd_ctl_t **ctlp, snd_ctl_type_t type, const char *name)
int snd_ctl_async(snd_ctl_t *ctl, int sig, pid_t pid)
{
assert(ctl);
if (sig == 0)
sig = SIGIO;
if (pid == 0)
pid = getpid();
return ctl->ops->async(ctl, sig, pid);
}
#endif
@ -412,7 +416,7 @@ int snd_async_add_ctl_handler(snd_async_handler_t **handler, snd_ctl_t *ctl,
was_empty = list_empty(&ctl->async_handlers);
list_add_tail(&h->hlist, &ctl->async_handlers);
if (was_empty) {
err = snd_ctl_async(ctl, getpid(), SIGIO);
err = snd_ctl_async(ctl, getpid(), snd_async_signo);
if (err < 0) {
snd_async_del_handler(h);
return err;

View file

@ -90,14 +90,10 @@ static int snd_ctl_hw_async(snd_ctl_t *ctl, int sig, pid_t pid)
}
if (sig < 0)
return 0;
if (sig == 0)
sig = SIGIO;
if (fcntl(fd, F_SETSIG, sig) < 0) {
SYSERR("F_SETSIG failed");
return -errno;
}
if (pid == 0)
pid = getpid();
if (fcntl(fd, F_SETOWN, pid) < 0) {
SYSERR("F_SETOWN failed");
return -errno;