summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorbrezak <brezak@NetBSD.org>1995-05-05 22:36:14 +0000
committerbrezak <brezak@NetBSD.org>1995-05-05 22:36:14 +0000
commit8951a20fe28b3ffa551fbb5455bbc76bc6654edf (patch)
tree1bb65fe8682c6427bcc81008804babb67d5c4f97 /sys/dev
parent524c9c7f2ab0847d6360de8f56a95f48604c5e45 (diff)
Auto-select open mode when opened half-duplex. From John Kohl. PR#1006
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/audio.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/sys/dev/audio.c b/sys/dev/audio.c
index d95c17a3888..3043dcdc257 100644
--- a/sys/dev/audio.c
+++ b/sys/dev/audio.c
@@ -1,4 +1,4 @@
-/* $NetBSD: audio.c,v 1.4 1995/04/24 19:13:52 pk Exp $ */
+/* $NetBSD: audio.c,v 1.5 1995/05/05 22:36:14 brezak Exp $ */
/*
* Copyright (c) 1991-1993 Regents of the University of California.
@@ -32,7 +32,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: audio.c,v 1.4 1995/04/24 19:13:52 pk Exp $
+ * $Id: audio.c,v 1.5 1995/05/05 22:36:14 brezak Exp $
*/
/*
@@ -574,6 +574,20 @@ audio_open(dev, flags, ifmt, p)
/* audiostartr(sc); don't start recording until read */
}
}
+ if (ISDEVAUDIO(dev)) {
+ /* if open only for read or only for write, then set specific mode */
+ if ((flags & (FWRITE|FREAD)) == FWRITE) {
+ sc->sc_mode = 1 << AUMODE_PLAY;
+ sc->pr.cb_pause = 0;
+ sc->rr.cb_pause = 1;
+ audiostartp(sc);
+ } else if ((flags & (FWRITE|FREAD)) == FREAD) {
+ sc->sc_mode = 1 << AUMODE_RECORD;
+ sc->rr.cb_pause = 0;
+ sc->pr.cb_pause = 1;
+ audiostartr(sc);
+ }
+ }
splx(s);
return (0);
}