X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/ba70caca3f9debf14c9f551ff4dcaddd1eb07d3d..985bb670b4e07d35cb1580780253ded2524a342e:/lib/uaudio-oss.c diff --git a/lib/uaudio-oss.c b/lib/uaudio-oss.c index adb227b..6d902cb 100644 --- a/lib/uaudio-oss.c +++ b/lib/uaudio-oss.c @@ -128,13 +128,15 @@ static void oss_start(uaudio_callback *callback, /* Very specific buffer size requirements here apparently */ uaudio_thread_start(callback, userdata, oss_play, 4608 / uaudio_sample_size, - 4608 / uaudio_sample_size); + 4608 / uaudio_sample_size, + 0); #else /* We could SNDCTL_DSP_GETBLKSIZE but only when the device is already open, * which is kind of inconvenient. We go with 1-4Kbyte for now. */ uaudio_thread_start(callback, userdata, oss_play, 32 / uaudio_sample_size, - 4096 / uaudio_sample_size); + 4096 / uaudio_sample_size, + 0); #endif } @@ -146,11 +148,11 @@ static void oss_stop(void) { static const char *oss_channels[] = SOUND_DEVICE_NAMES; static int oss_mixer_find_channel(const char *channel) { - if(!channel[strspn(c, "0123456789")]) + if(!channel[strspn(channel, "0123456789")]) return atoi(channel); else { - for(int n = 0; n < sizeof oss_channels / sizeof *oss_channels; ++n) - if(!strcmp(oss_channels[n], channels)) + for(unsigned n = 0; n < sizeof oss_channels / sizeof *oss_channels; ++n) + if(!strcmp(oss_channels[n], channel)) return n; return -1; } @@ -176,7 +178,7 @@ static void oss_get_volume(int *left, int *right) { int r; *left = *right = 0; - if(ioctl(oss_mixer_fd, SOUND_MIXER_READ(ch), &r) < 0) + if(ioctl(oss_mixer_fd, SOUND_MIXER_READ(oss_mixer_channel), &r) < 0) error(errno, "error getting volume"); else { *left = r & 0xff; @@ -186,9 +188,9 @@ static void oss_get_volume(int *left, int *right) { static void oss_set_volume(int *left, int *right) { int r = (*left & 0xff) + (*right & 0xff) * 256; - if(ioctl(fd, SOUND_MIXER_WRITE(ch), &r) == -1) + if(ioctl(oss_mixer_fd, SOUND_MIXER_WRITE(oss_mixer_channel), &r) == -1) error(errno, "error setting volume"); - else if(ioctl(oss_mixer_fd, SOUND_MIXER_READ(ch), &r) < 0) + else if(ioctl(oss_mixer_fd, SOUND_MIXER_READ(oss_mixer_channel), &r) < 0) error(errno, "error getting volume"); else { *left = r & 0xff;