Xinqi Bao's Git
1 /* See LICENSE file for copyright and license details. */
6 #if defined(__OpenBSD__)
9 #include <sys/soundcard.h>
11 #include <sys/ioctl.h>
17 vol_perc(const char *card
)
21 char *vnames
[] = SOUND_DEVICE_NAMES
;
23 if ((afd
= open(card
, O_RDONLY
| O_NONBLOCK
)) < 0) {
24 fprintf(stderr
, "open '%s': %s\n", card
, strerror(errno
));
28 if (ioctl(afd
, (int)SOUND_MIXER_READ_DEVMASK
, &devmask
) < 0) {
29 fprintf(stderr
, "ioctl 'SOUND_MIXER_READ_DEVMASK': %s\n",
34 for (i
= 0; i
< LEN(vnames
); i
++) {
35 if (devmask
& (1 << i
) && !strcmp("vol", vnames
[i
])) {
36 if (ioctl(afd
, MIXER_READ(i
), &v
) < 0) {
37 fprintf(stderr
, "ioctl 'MIXER_READ(%ld)': %s\n", i
,
47 return bprintf("%d", v
& 0xff);