xref: /netbsd-src/sys/dev/hdaudio/hdaudio_mixer.h (revision 8a9ff04ba8402032638682bf30b93a2c8bd672e1)
1 /* $NetBSD: hdaudio_mixer.h,v 1.1 2015/03/28 14:09:59 jmcneill Exp $ */
2 
3 /*
4  * Copyright (c) 2009 Precedence Technologies Ltd <support@precedence.co.uk>
5  * Copyright (c) 2009 Jared D. McNeill <jmcneill@invisible.ca>
6  * All rights reserved.
7  *
8  * This code is derived from software contributed to The NetBSD Foundation
9  * by Precedence Technologies Ltd
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions and the following disclaimer.
16  * 2. The name of the author may not be used to endorse or promote products
17  *    derived from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29  * SUCH DAMAGE.
30  */
31 
32 #ifndef _HDAUDIO_MIXER_H
33 #define _HDAUDIO_MIXER_H
34 
35 /* From src/lib/libossaudio/soundcard.h */
36 
37 #define	HDAUDIO_MIXER_NRDEVICES	25
38 #define	HDAUDIO_MIXER_VOLUME	0
39 #define	HDAUDIO_MIXER_BASS	1
40 #define	HDAUDIO_MIXER_TREBLE	2
41 #define	HDAUDIO_MIXER_SYNTH	3
42 #define	HDAUDIO_MIXER_PCM	4
43 #define	HDAUDIO_MIXER_SPEAKER	5
44 #define	HDAUDIO_MIXER_LINE	6
45 #define	HDAUDIO_MIXER_MIC	7
46 #define	HDAUDIO_MIXER_CD	8
47 #define	HDAUDIO_MIXER_IMIX	9
48 #define	HDAUDIO_MIXER_ALTPCM	10
49 #define	HDAUDIO_MIXER_RECLEV	11
50 #define	HDAUDIO_MIXER_IGAIN	12
51 #define	HDAUDIO_MIXER_OGAIN	13
52 #define	HDAUDIO_MIXER_LINE1	14
53 #define	HDAUDIO_MIXER_LINE2	15
54 #define	HDAUDIO_MIXER_LINE3	16
55 #define	HDAUDIO_MIXER_DIGITAL1	17
56 #define	HDAUDIO_MIXER_DIGITAL2	18
57 #define	HDAUDIO_MIXER_DIGITAL3	19
58 #define	HDAUDIO_MIXER_PHONEIN	20
59 #define	HDAUDIO_MIXER_PHONEOUT	21
60 #define	HDAUDIO_MIXER_VIDEO	22
61 #define	HDAUDIO_MIXER_RADIO	23
62 #define	HDAUDIO_MIXER_MONITOR	24
63 
64 #define	HDAUDIO_MASK(x)		(1 << (HDAUDIO_MIXER_##x))
65 
66 #define	HDAUDIO_DEVICE_NAMES	{					   \
67 	AudioNmaster, AudioNbass, AudioNtreble, AudioNfmsynth, AudioNdac,  \
68 	"beep", AudioNline, AudioNmicrophone, AudioNcd,		   	   \
69 	AudioNrecord, AudioNdac"2", "reclvl", AudioNinput, AudioNoutput,   \
70 	AudioNline"1", AudioNline"2", AudioNline"3",			   \
71 	"dig1", "dig2", "dig3", "phin", "phout",			   \
72 	AudioNvideo, "radio", AudioNmonitor				   \
73 				}
74 
75 #endif /* !_HDAUDIO_MIXER_H */
76