Xinqi Bao's Git
1 /* See LICENSE file for copyright and license details. */
5 #if defined(__OpenBSD__)
8 #include <sys/soundcard.h>
10 #include <sys/ioctl.h>
16 vol_perc(const char *card
)
20 char *vnames
[] = SOUND_DEVICE_NAMES
;
22 if ((afd
= open(card
, O_RDONLY
| O_NONBLOCK
)) < 0) {
23 warn("open '%s':", card
);
27 if (ioctl(afd
, (int)SOUND_MIXER_READ_DEVMASK
, &devmask
) < 0) {
28 warn("ioctl 'SOUND_MIXER_READ_DEVMASK':");
32 for (i
= 0; i
< LEN(vnames
); i
++) {
33 if (devmask
& (1 << i
) && !strcmp("vol", vnames
[i
])) {
34 if (ioctl(afd
, MIXER_READ(i
), &v
) < 0) {
35 warn("ioctl 'MIXER_READ(%ld)':", i
);
44 return bprintf("%d", v
& 0xff);