|
|
GNU OSKit-Mach
/*
* Mach Operating System
* Copyright (c) 1993 Carnegie Mellon University
* All Rights Reserved.
*
* Permission to use, copy, modify and distribute this software and its
* documentation is hereby granted, provided that both the copyright
* notice and this permission notice appear in all copies of the
* software, derivative works or modified versions, and any portions
* thereof, and that both notices appear in supporting documentation.
*
* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
* ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
*
* Carnegie Mellon requests users of this software to return to
*
* Software Distribution Coordinator or [email protected]
* School of Computer Science
* Carnegie Mellon University
* Pittsburgh PA 15213-3890
*
* any improvements or extensions that they make and grant Carnegie Mellon
* the rights to redistribute these changes.
*/
/*
* Copyright (c) 1991, 1992 The Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 4. The name of the Laboratory may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#ifndef _DEVICE_AUDIO_STATUS_H_
#define _DEVICE_AUDIO_STATUS_H_
/*
* Access to ADC devices, such as the AMD 79C30A/32A.
*/
/*
* Programmable gains, see tables in device drivers
* for detailed mapping to device specifics.
*/
#define AUDIO_MIN_GAIN (0)
#define AUDIO_MAX_GAIN (255)
/*
* Encoding of audio samples
*/
#define AUDIO_ENCODING_ULAW (1)
#define AUDIO_ENCODING_ALAW (2)
/*
* Selection of input/output jack
*/
#define AUDIO_MIKE 1
#define AUDIO_SPEAKER 1
#define AUDIO_HEADPHONE 2
/*
* Programming information from/to user application.
* Only portions of this might be available on any given chip.
*/
struct audio_prinfo {
unsigned int sample_rate;
unsigned int channels;
unsigned int precision;
unsigned int encoding;
unsigned int gain;
unsigned int port; /* input/output jack */
unsigned int seek; /* BSD extension */
unsigned int ispare[3];
unsigned int samples;
unsigned int eof;
unsigned char pause;
unsigned char error;
unsigned char waiting;
unsigned char cspare[3];
unsigned char open;
unsigned char active;
};
struct audio_info {
struct audio_prinfo play;
struct audio_prinfo record;
unsigned int monitor_gain;
/* BSD extensions */
unsigned int blocksize; /* input blocking threshold */
unsigned int hiwat; /* output high water mark */
unsigned int lowat; /* output low water mark */
unsigned int backlog; /* samples of output backlog to gen. */
};
typedef struct audio_info audio_info_t;
#define AUDIO_INITINFO(p)\
(void)memset((void *)(p), 0xff, sizeof(struct audio_info))
#define AUDIO_GETINFO _IOR('A', 21, audio_info_t)
#define AUDIO_SETINFO _IOWR('A', 22, audio_info_t)
#define AUDIO_DRAIN _IO('A', 23)
#define AUDIO_FLUSH _IO('A', 24)
#define AUDIO_WSEEK _IOR('A', 25, unsigned int)
#define AUDIO_RERROR _IOR('A', 26, int)
#define AUDIO_WERROR _IOR('A', 27, int)
/*
* Low level interface to the amd79c30.
* Internal registers of the MAP block,
* the Main Audio Processor.
*/
struct mapreg {
unsigned short mr_x[8];
unsigned short mr_r[8];
unsigned short mr_gx;
unsigned short mr_gr;
unsigned short mr_ger;
unsigned short mr_stgr;
unsigned short mr_ftgr;
unsigned short mr_atgr;
unsigned char mr_mmr1;
unsigned char mr_mmr2;
};
#define AUDIO_GETMAP _IOR('A', 27, struct mapreg)
#define AUDIO_SETMAP _IOW('A', 28, struct mapreg)
/*
* Compatibility with Sun interface
*/
struct audio_ioctl {
short control;
unsigned char data[46];
};
#define AUDIOGETREG _IOWR('i',1,struct audio_ioctl)
#define AUDIOSETREG _IOW('i',2,struct audio_ioctl)
#endif /* _DEVICE_AUDIO_STATUS_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.