More generic support for poll descriptors

This commit is contained in:
Abramo Bagnara 2001-02-12 23:51:53 +00:00
parent abd8b9f9e8
commit 0b01722266
2 changed files with 10 additions and 13 deletions

View file

@ -1041,12 +1041,8 @@ static int events(int argc ATTRIBUTE_UNUSED, char *argv[] ATTRIBUTE_UNUSED)
}
printf("Ready to listen...\n");
while (1) {
struct pollfd ctl_poll;
int res;
ctl_poll.fd = snd_hctl_poll_descriptor(handle);
ctl_poll.events = POLLIN;
ctl_poll.revents = 0;
if ((res = poll(&ctl_poll, 1, -1)) > 0) {
int res = snd_hctl_wait(handle, -1);
if (res >= 0) {
printf("Poll ok: %i\n", res);
res = snd_hctl_handle_events(handle);
assert(res > 0);
@ -1152,13 +1148,9 @@ static int sevents(int argc ATTRIBUTE_UNUSED, char *argv[] ATTRIBUTE_UNUSED)
printf("Ready to listen...\n");
while (1) {
struct pollfd mixer_poll;
int res;
mixer_poll.fd = snd_mixer_poll_descriptor(handle, card);
assert(mixer_poll.fd >= 0);
mixer_poll.events = POLLIN;
mixer_poll.revents = 0;
if ((res = poll(&mixer_poll, 1, -1)) > 0) {
res = snd_mixer_wait(handle, -1);
if (res >= 0) {
printf("Poll ok: %i\n", res);
res = snd_mixer_handle_events(handle);
assert(res >= 0);

View file

@ -232,12 +232,17 @@ static void close_files(void)
static void init_seq(char *source, char *dest)
{
snd_seq_addr_t addr;
int err;
struct pollfd pfd;
if (snd_seq_open(&handle, "hw", SND_SEQ_OPEN_DUPLEX, 0) < 0) {
perror("snd_seq_open");
exit(1);
}
seqfd = snd_seq_poll_descriptor(handle);
err = snd_seq_poll_descriptors(handle, &pfd, 1);
assert(err == 1);
seqfd = pfd.fd;
snd_seq_nonblock(handle, 0);
/* set client info */