Jack2  1.9.9
ice1712.h
1 /*
2  Copyright (C) 2002 Anthony Van Groningen
3 
4  Parts based on source code taken from the
5  "Env24 chipset (ICE1712) control utility" that is
6 
7  Copyright (C) 2000 by Jaroslav Kysela <perex@suse.cz>
8 
9  This program is free software; you can redistribute it and/or modify
10  it under the terms of the GNU General Public License as published by
11  the Free Software Foundation; either version 2 of the License, or
12  (at your option) any later version.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program; if not, write to the Free Software
21  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 
23 */
24 
25 #ifndef __jack_ice1712_h__
26 #define __jack_ice1712_h__
27 
28 #define ICE1712_SUBDEVICE_DELTA44 0x121433d6
29 #define ICE1712_SUBDEVICE_DELTA66 0x121432d6
30 #define ICE1712_SUBDEVICE_DELTA1010 0x121430d6
31 #define ICE1712_SUBDEVICE_DELTADIO2496 0x121431d6
32 #define ICE1712_SUBDEVICE_AUDIOPHILE 0x121434d6
33 
34 #define SPDIF_PLAYBACK_ROUTE_NAME "IEC958 Playback Route"
35 #define ANALOG_PLAYBACK_ROUTE_NAME "H/W Playback Route"
36 #define MULTITRACK_PEAK_NAME "Multi Track Peak"
37 
38 typedef struct
39 {
40  unsigned int subvendor; /* PCI[2c-2f] */
41  unsigned char size; /* size of EEPROM image in bytes */
42  unsigned char version; /* must be 1 */
43  unsigned char codec; /* codec configuration PCI[60] */
44  unsigned char aclink; /* ACLink configuration PCI[61] */
45  unsigned char i2sID; /* PCI[62] */
46  unsigned char spdif; /* S/PDIF configuration PCI[63] */
47  unsigned char gpiomask; /* GPIO initial mask, 0 = write, 1 = don't */
48  unsigned char gpiostate; /* GPIO initial state */
49  unsigned char gpiodir; /* GPIO direction state */
50  unsigned short ac97main;
51  unsigned short ac97pcm;
52  unsigned short ac97rec;
53  unsigned char ac97recsrc;
54  unsigned char dacID[4]; /* I2S IDs for DACs */
55  unsigned char adcID[4]; /* I2S IDs for ADCs */
56  unsigned char extra[4];
57 }
59 
60 typedef struct
61 {
62  alsa_driver_t *driver;
63  ice1712_eeprom_t *eeprom;
64  unsigned long active_channels;
65 }
66 ice1712_t;
67 
68 #ifdef __cplusplus
69 extern "C"
70 {
71 #endif
72 
73  jack_hardware_t *jack_alsa_ice1712_hw_new (alsa_driver_t *driver);
74 
75 #ifdef __cplusplus
76 }
77 #endif
78 
79 #endif /* __jack_ice1712_h__*/