|
|
1.1 ! root 1: /* ! 2: * Mach Operating System ! 3: * Copyright (c) 1993 Carnegie Mellon University ! 4: * All Rights Reserved. ! 5: * ! 6: * Permission to use, copy, modify and distribute this software and its ! 7: * documentation is hereby granted, provided that both the copyright ! 8: * notice and this permission notice appear in all copies of the ! 9: * software, derivative works or modified versions, and any portions ! 10: * thereof, and that both notices appear in supporting documentation. ! 11: * ! 12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" ! 13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ! 14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ! 15: * ! 16: * Carnegie Mellon requests users of this software to return to ! 17: * ! 18: * Software Distribution Coordinator or [email protected] ! 19: * School of Computer Science ! 20: * Carnegie Mellon University ! 21: * Pittsburgh PA 15213-3890 ! 22: * ! 23: * any improvements or extensions that they make and grant Carnegie Mellon ! 24: * the rights to redistribute these changes. ! 25: */ ! 26: /* ! 27: * Copyright (c) 1991, 1992 The Regents of the University of California. ! 28: * All rights reserved. ! 29: * ! 30: * Redistribution and use in source and binary forms, with or without ! 31: * modification, are permitted provided that the following conditions ! 32: * are met: ! 33: * 1. Redistributions of source code must retain the above copyright ! 34: * notice, this list of conditions and the following disclaimer. ! 35: * 2. Redistributions in binary form must reproduce the above copyright ! 36: * notice, this list of conditions and the following disclaimer in the ! 37: * documentation and/or other materials provided with the distribution. ! 38: * 3. All advertising materials mentioning features or use of this software ! 39: * must display the following acknowledgement: ! 40: * This product includes software developed by the Computer Systems ! 41: * Engineering Group at Lawrence Berkeley Laboratory. ! 42: * 4. The name of the Laboratory may not be used to endorse or promote ! 43: * products derived from this software without specific prior written ! 44: * permission. ! 45: * ! 46: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ! 47: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 48: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 49: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ! 50: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 51: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 52: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 53: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 54: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 55: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 56: * SUCH DAMAGE. ! 57: */ ! 58: ! 59: #ifndef _DEVICE_AUDIO_STATUS_H_ ! 60: #define _DEVICE_AUDIO_STATUS_H_ ! 61: ! 62: /* ! 63: * Access to ADC devices, such as the AMD 79C30A/32A. ! 64: */ ! 65: ! 66: /* ! 67: * Programmable gains, see tables in device drivers ! 68: * for detailed mapping to device specifics. ! 69: */ ! 70: #define AUDIO_MIN_GAIN (0) ! 71: #define AUDIO_MAX_GAIN (255) ! 72: ! 73: /* ! 74: * Encoding of audio samples ! 75: */ ! 76: #define AUDIO_ENCODING_ULAW (1) ! 77: #define AUDIO_ENCODING_ALAW (2) ! 78: ! 79: /* ! 80: * Selection of input/output jack ! 81: */ ! 82: #define AUDIO_MIKE 1 ! 83: ! 84: #define AUDIO_SPEAKER 1 ! 85: #define AUDIO_HEADPHONE 2 ! 86: ! 87: /* ! 88: * Programming information from/to user application. ! 89: * Only portions of this might be available on any given chip. ! 90: */ ! 91: struct audio_prinfo { ! 92: unsigned int sample_rate; ! 93: unsigned int channels; ! 94: unsigned int precision; ! 95: unsigned int encoding; ! 96: unsigned int gain; ! 97: unsigned int port; /* input/output jack */ ! 98: unsigned int seek; /* BSD extension */ ! 99: unsigned int ispare[3]; ! 100: unsigned int samples; ! 101: unsigned int eof; ! 102: ! 103: unsigned char pause; ! 104: unsigned char error; ! 105: unsigned char waiting; ! 106: unsigned char cspare[3]; ! 107: unsigned char open; ! 108: unsigned char active; ! 109: ! 110: }; ! 111: ! 112: struct audio_info { ! 113: struct audio_prinfo play; ! 114: struct audio_prinfo record; ! 115: unsigned int monitor_gain; ! 116: /* BSD extensions */ ! 117: unsigned int blocksize; /* input blocking threshold */ ! 118: unsigned int hiwat; /* output high water mark */ ! 119: unsigned int lowat; /* output low water mark */ ! 120: unsigned int backlog; /* samples of output backlog to gen. */ ! 121: }; ! 122: ! 123: typedef struct audio_info audio_info_t; ! 124: ! 125: #define AUDIO_INITINFO(p)\ ! 126: (void)memset((void *)(p), 0xff, sizeof(struct audio_info)) ! 127: ! 128: #define AUDIO_GETINFO _IOR('A', 21, audio_info_t) ! 129: #define AUDIO_SETINFO _IOWR('A', 22, audio_info_t) ! 130: #define AUDIO_DRAIN _IO('A', 23) ! 131: #define AUDIO_FLUSH _IO('A', 24) ! 132: #define AUDIO_WSEEK _IOR('A', 25, unsigned int) ! 133: #define AUDIO_RERROR _IOR('A', 26, int) ! 134: #define AUDIO_WERROR _IOR('A', 27, int) ! 135: ! 136: /* ! 137: * Low level interface to the amd79c30. ! 138: * Internal registers of the MAP block, ! 139: * the Main Audio Processor. ! 140: */ ! 141: struct mapreg { ! 142: unsigned short mr_x[8]; ! 143: unsigned short mr_r[8]; ! 144: unsigned short mr_gx; ! 145: unsigned short mr_gr; ! 146: unsigned short mr_ger; ! 147: unsigned short mr_stgr; ! 148: unsigned short mr_ftgr; ! 149: unsigned short mr_atgr; ! 150: unsigned char mr_mmr1; ! 151: unsigned char mr_mmr2; ! 152: }; ! 153: ! 154: #define AUDIO_GETMAP _IOR('A', 27, struct mapreg) ! 155: #define AUDIO_SETMAP _IOW('A', 28, struct mapreg) ! 156: ! 157: /* ! 158: * Compatibility with Sun interface ! 159: */ ! 160: struct audio_ioctl { ! 161: short control; ! 162: unsigned char data[46]; ! 163: }; ! 164: ! 165: #define AUDIOGETREG _IOWR('i',1,struct audio_ioctl) ! 166: #define AUDIOSETREG _IOW('i',2,struct audio_ioctl) ! 167: ! 168: #endif /* _DEVICE_AUDIO_STATUS_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.