Lines Matching +full:we +full:- +full:extra +full:- +full:delay

1 /*-
2 * Copyright (c) 2015-2019 Hans Petter Selasky
61 /* make sure we got the format we asked for */ in oss_set_format()
67 return (-1); in oss_set_format()
73 if (pbe->fd > -1) { in oss_close()
74 close(pbe->fd); in oss_close()
75 pbe->fd = -1; in oss_close()
86 pbe->fd = open(devname, attr); in oss_open()
87 if (pbe->fd < 0) { in oss_open()
89 return (-1); in oss_open()
91 err = ioctl(pbe->fd, FIONBIO, &fionbio); in oss_open()
96 err = oss_set_format(pbe->fd, pformat); in oss_open()
104 err = ioctl(pbe->fd, SOUND_PCM_WRITE_CHANNELS, &temp); in oss_open()
105 } while (err < 0 && --temp > 0); in oss_open()
107 err = ioctl(pbe->fd, SOUND_PCM_READ_CHANNELS, &temp); in oss_open()
115 err = ioctl(pbe->fd, SNDCTL_DSP_SPEED, &temp); in oss_open()
122 err = ioctl(pbe->fd, SNDCTL_DSP_SETBLKSIZE, &temp); in oss_open()
129 close(pbe->fd); in oss_open()
130 pbe->fd = -1; in oss_open()
131 return (-1); in oss_open()
145 bufsize *= 4; /* XXX allow extra space for jitter */ in oss_play_open()
152 struct pollfd fds = { .fd = pbe->fd, .events = POLLIN | POLLRDNORM }; in oss_rec_transfer()
158 return (-1); in oss_rec_transfer()
159 return (read(pbe->fd, ptr, len)); in oss_rec_transfer()
165 return (write(pbe->fd, ptr, len)); in oss_play_transfer()
171 if (ioctl(pbe->fd, FIONREAD, pdelay) != 0) in oss_rec_delay()
172 *pdelay = -1; in oss_rec_delay()
179 ioctl(pbe->fd, SNDCTL_DSP_GETODELAY, pdelay) != 0) in oss_play_delay()
180 *pdelay = -1; in oss_play_delay()
187 .delay = oss_rec_delay,
188 .fd = -1,
195 .delay = oss_play_delay,
196 .fd = -1,