Commit | Line | Data |
---|---|---|
90587a41 CT |
1 | /* |
2 | * Copyright (c) 1991, 1992 The Regents of the University of California. | |
3 | * All rights reserved. | |
4 | * | |
5 | * This software was developed by the Computer Systems Engineering group | |
6 | * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and | |
7 | * contributed to Berkeley. | |
8 | * | |
9 | * %sccs.include.redist.c% | |
10 | * | |
11 | * @(#)bsd_audioio.h 7.1 (Berkeley) %G% | |
12 | * | |
13 | * from: $Header: bsd_audioio.h,v 1.4 92/07/13 00:31:22 torek Exp $ (LBL) | |
14 | */ | |
15 | ||
16 | #ifndef _BSD_AUDIOIO_H_ | |
17 | #define _BSD_AUDIOIO_H_ | |
18 | ||
19 | /* | |
20 | * /dev/audio ioctls. needs comments! | |
21 | */ | |
22 | #define AUDIO_MIN_GAIN 0 | |
23 | #define AUDIO_MAX_GAIN 255 | |
24 | ||
25 | #define AUDIO_ENCODING_ULAW 1 | |
26 | #define AUDIO_ENCODING_ALAW 2 | |
27 | ||
28 | struct audio_prinfo { | |
29 | u_int sample_rate; | |
30 | u_int channels; | |
31 | u_int precision; | |
32 | u_int encoding; | |
33 | u_int gain; | |
34 | u_int port; | |
35 | u_int samples; | |
36 | ||
37 | u_char pause; | |
38 | u_char error; | |
39 | u_char waiting; | |
40 | u_char open; | |
41 | ||
42 | /* BSD extensions */ | |
43 | u_long seek; | |
44 | }; | |
45 | ||
46 | struct audio_info { | |
47 | struct audio_prinfo play; | |
48 | struct audio_prinfo record; | |
49 | u_int monitor_gain; | |
50 | /* BSD extensions */ | |
51 | u_int blocksize; /* input blocking threshold */ | |
52 | u_int hiwat; /* output high water mark */ | |
53 | u_int lowat; /* output low water mark */ | |
54 | }; | |
55 | typedef struct audio_info audio_info_t; | |
56 | ||
57 | #define AUDIO_INITINFO(p)\ | |
58 | (void)memset((void *)(p), 0xff, sizeof(struct audio_info)) | |
59 | ||
60 | #if (defined(sun) || defined(ibm032)) && !defined(__GNUC__) | |
61 | #define AUDIO_GETINFO _IOR(A, 1, struct audio_info) | |
62 | #define AUDIO_SETINFO _IOWR(A, 2, struct audio_info) | |
63 | #define AUDIO_DRAIN _IO(A, 3) | |
64 | #define AUDIO_FLUSH _IO(A, 4) | |
65 | #define AUDIO_WSEEK _IOR(A, 5, u_long) | |
66 | #define AUDIO_RERROR _IOR(A, 6, int) | |
67 | #define AUDIO_GETMAP _IOR(A, 20, struct mapreg) | |
68 | #define AUDIO_SETMAP _IOW(A, 21, struct mapreg) | |
69 | #else | |
70 | #define AUDIO_GETINFO _IOR('A', 1, struct audio_info) | |
71 | #define AUDIO_SETINFO _IOWR('A', 2, struct audio_info) | |
72 | #define AUDIO_DRAIN _IO('A', 3) | |
73 | #define AUDIO_FLUSH _IO('A', 4) | |
74 | #define AUDIO_WSEEK _IOR('A', 5, u_long) | |
75 | #define AUDIO_RERROR _IOR('A', 6, int) | |
76 | #define AUDIO_GETMAP _IOR('A', 20, struct mapreg) | |
77 | #define AUDIO_SETMAP _IOW('A', 21, struct mapreg) | |
78 | #endif | |
79 | ||
80 | #define AUDIO_SPEAKER 1 | |
81 | #define AUDIO_HEADPHONE 2 | |
82 | ||
83 | /* | |
84 | * Low level interface. | |
85 | */ | |
86 | struct mapreg { | |
87 | u_short mr_x[8]; | |
88 | u_short mr_r[8]; | |
89 | u_short mr_gx; | |
90 | u_short mr_gr; | |
91 | u_short mr_ger; | |
92 | u_short mr_stgr; | |
93 | u_short mr_ftgr; | |
94 | u_short mr_atgr; | |
95 | u_char mr_mmr1; | |
96 | u_char mr_mmr2; | |
97 | }; | |
98 | ||
99 | #endif /* _BSD_AUDIOIO_H_ */ |