Annotation of OSKit-Mach/include/device/audio_status.h, revision 1.1.1.1

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:  * 4. The name of the Laboratory may not be used to endorse or promote
                     39:  *    products derived from this software without specific prior written
                     40:  *    permission.
                     41:  *
                     42:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     43:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     44:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     45:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     46:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     47:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     48:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     49:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     50:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     51:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     52:  * SUCH DAMAGE.
                     53:  */
                     54: 
                     55: #ifndef _DEVICE_AUDIO_STATUS_H_
                     56: #define _DEVICE_AUDIO_STATUS_H_
                     57: 
                     58: /*
                     59:  *     Access to ADC devices, such as the AMD 79C30A/32A.
                     60:  */
                     61: 
                     62: /*
                     63:  * Programmable gains, see tables in device drivers
                     64:  * for detailed mapping to device specifics.
                     65:  */
                     66: #define AUDIO_MIN_GAIN (0)
                     67: #define AUDIO_MAX_GAIN (255)
                     68: 
                     69: /*
                     70:  * Encoding of audio samples
                     71:  */
                     72: #define AUDIO_ENCODING_ULAW (1)
                     73: #define AUDIO_ENCODING_ALAW (2)
                     74: 
                     75: /*
                     76:  * Selection of input/output jack
                     77:  */
                     78: #define        AUDIO_MIKE              1
                     79: 
                     80: #define AUDIO_SPEAKER          1
                     81: #define AUDIO_HEADPHONE                2
                     82: 
                     83: /*
                     84:  * Programming information from/to user application.
                     85:  * Only portions of this might be available on any given chip.
                     86:  */
                     87: struct audio_prinfo {
                     88:        unsigned int    sample_rate;
                     89:        unsigned int    channels;
                     90:        unsigned int    precision;
                     91:        unsigned int    encoding;
                     92:        unsigned int    gain;
                     93:        unsigned int    port;           /* input/output jack */
                     94:        unsigned int    seek;           /* BSD extension */
                     95:        unsigned int    ispare[3];
                     96:        unsigned int    samples;
                     97:        unsigned int    eof;
                     98: 
                     99:        unsigned char   pause;
                    100:        unsigned char   error;
                    101:        unsigned char   waiting;
                    102:        unsigned char   cspare[3];
                    103:        unsigned char   open;
                    104:        unsigned char   active;
                    105: 
                    106: };
                    107: 
                    108: struct audio_info {
                    109:        struct  audio_prinfo play;
                    110:        struct  audio_prinfo record;
                    111:        unsigned int    monitor_gain;
                    112:        /* BSD extensions */
                    113:        unsigned int    blocksize;      /* input blocking threshold */
                    114:        unsigned int    hiwat;          /* output high water mark */
                    115:        unsigned int    lowat;          /* output low water mark */
                    116:        unsigned int    backlog;        /* samples of output backlog to gen. */
                    117: };
                    118: 
                    119: typedef struct audio_info audio_info_t;
                    120: 
                    121: #define AUDIO_INITINFO(p)\
                    122:        (void)memset((void *)(p), 0xff, sizeof(struct audio_info))
                    123: 
                    124: #define AUDIO_GETINFO  _IOR('A', 21, audio_info_t)
                    125: #define AUDIO_SETINFO  _IOWR('A', 22, audio_info_t)
                    126: #define AUDIO_DRAIN    _IO('A', 23)
                    127: #define AUDIO_FLUSH    _IO('A', 24)
                    128: #define AUDIO_WSEEK    _IOR('A', 25, unsigned int)
                    129: #define AUDIO_RERROR   _IOR('A', 26, int)
                    130: #define AUDIO_WERROR   _IOR('A', 27, int)
                    131: 
                    132: /*
                    133:  * Low level interface to the amd79c30.
                    134:  * Internal registers of the MAP block,
                    135:  * the Main Audio Processor.
                    136:  */
                    137: struct mapreg {
                    138:        unsigned short  mr_x[8];
                    139:        unsigned short  mr_r[8];
                    140:        unsigned short  mr_gx;
                    141:        unsigned short  mr_gr;
                    142:        unsigned short  mr_ger;
                    143:        unsigned short  mr_stgr;
                    144:        unsigned short  mr_ftgr;
                    145:        unsigned short  mr_atgr;
                    146:        unsigned char   mr_mmr1;
                    147:        unsigned char   mr_mmr2;
                    148: };
                    149: 
                    150: #define AUDIO_GETMAP   _IOR('A', 27, struct mapreg)
                    151: #define        AUDIO_SETMAP    _IOW('A', 28, struct mapreg)
                    152: 
                    153: /*
                    154:  * Compatibility with Sun interface
                    155:  */
                    156: struct audio_ioctl {
                    157:        short   control;
                    158:        unsigned char   data[46];
                    159: };
                    160: 
                    161: #define AUDIOGETREG            _IOWR('i',1,struct audio_ioctl)
                    162: #define AUDIOSETREG            _IOW('i',2,struct audio_ioctl)
                    163: 
                    164: #endif /* _DEVICE_AUDIO_STATUS_H_ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.