diff options
| author | brezak <brezak@NetBSD.org> | 1995-05-05 22:36:14 +0000 |
|---|---|---|
| committer | brezak <brezak@NetBSD.org> | 1995-05-05 22:36:14 +0000 |
| commit | 8951a20fe28b3ffa551fbb5455bbc76bc6654edf (patch) | |
| tree | 1bb65fe8682c6427bcc81008804babb67d5c4f97 /sys/dev | |
| parent | 524c9c7f2ab0847d6360de8f56a95f48604c5e45 (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.c | 18 |
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); } |
