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)