Module Name: src
Committed By: nia
Date: Wed Jun 9 14:49:13 UTC 2021
Modified Files:
src/lib/libossaudio: oss_caps.c
Log Message:
ossaudio(3): continue getting capabilities if AUDIO_GETFORMAT fails
we want this to work on mixer devices too
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/lib/libossaudio/oss_caps.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libossaudio/oss_caps.c
diff -u src/lib/libossaudio/oss_caps.c:1.1 src/lib/libossaudio/oss_caps.c:1.2
--- src/lib/libossaudio/oss_caps.c:1.1 Tue Jun 8 18:43:54 2021
+++ src/lib/libossaudio/oss_caps.c Wed Jun 9 14:49:13 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: oss_caps.c,v 1.1 2021/06/08 18:43:54 nia Exp $ */
+/* $NetBSD: oss_caps.c,v 1.2 2021/06/09 14:49:13 nia Exp $ */
/*-
* Copyright (c) 2021 The NetBSD Foundation, Inc.
@@ -41,27 +41,26 @@ _oss_get_caps(int fd, int *out)
if (ioctl(fd, AUDIO_GETPROPS, &props) < 0)
return -1;
- if (ioctl(fd, AUDIO_GETFORMAT, &info) < 0)
- return -1;
-
caps = 0;
caps |= PCM_CAP_TRIGGER;
caps |= PCM_CAP_MULTI;
caps |= PCM_CAP_FREERATE;
- nchannels = (props & AUDIO_PROP_PLAYBACK) ?
- info.play.channels : info.record.channels;
-
- switch (nchannels) {
- case 2:
- caps |= DSP_CH_STEREO;
- break;
- case 1:
- caps |= DSP_CH_MONO;
- break;
- default:
- caps |= DSP_CH_MULTI;
- break;
+ if (ioctl(fd, AUDIO_GETFORMAT, &info) != -1) {
+ nchannels = (props & AUDIO_PROP_PLAYBACK) ?
+ info.play.channels : info.record.channels;
+
+ switch (nchannels) {
+ case 2:
+ caps |= DSP_CH_STEREO;
+ break;
+ case 1:
+ caps |= DSP_CH_MONO;
+ break;
+ default:
+ caps |= DSP_CH_MULTI;
+ break;
+ }
}
if (props & AUDIO_PROP_FULLDUPLEX)