Jack2 1.9.6

ice1712.h

00001 /*
00002     Copyright (C) 2002 Anthony Van Groningen
00003 
00004     Parts based on source code taken from the
00005     "Env24 chipset (ICE1712) control utility" that is
00006 
00007     Copyright (C) 2000 by Jaroslav Kysela <perex@suse.cz>
00008 
00009     This program is free software; you can redistribute it and/or modify
00010     it under the terms of the GNU General Public License as published by
00011     the Free Software Foundation; either version 2 of the License, or
00012     (at your option) any later version.
00013 
00014     This program is distributed in the hope that it will be useful,
00015     but WITHOUT ANY WARRANTY; without even the implied warranty of
00016     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017     GNU General Public License for more details.
00018 
00019     You should have received a copy of the GNU General Public License
00020     along with this program; if not, write to the Free Software
00021     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00022 
00023 */
00024 
00025 #ifndef __jack_ice1712_h__
00026 #define __jack_ice1712_h__
00027 
00028 #define ICE1712_SUBDEVICE_DELTA44       0x121433d6
00029 #define ICE1712_SUBDEVICE_DELTA66       0x121432d6
00030 #define ICE1712_SUBDEVICE_DELTA1010     0x121430d6
00031 #define ICE1712_SUBDEVICE_DELTADIO2496  0x121431d6
00032 #define ICE1712_SUBDEVICE_AUDIOPHILE    0x121434d6
00033 
00034 #define SPDIF_PLAYBACK_ROUTE_NAME       "IEC958 Playback Route"
00035 #define ANALOG_PLAYBACK_ROUTE_NAME      "H/W Playback Route"
00036 #define MULTITRACK_PEAK_NAME            "Multi Track Peak"
00037 
00038 typedef struct
00039 {
00040     unsigned int subvendor; /* PCI[2c-2f] */
00041     unsigned char size;     /* size of EEPROM image in bytes */
00042     unsigned char version;  /* must be 1 */
00043     unsigned char codec;    /* codec configuration PCI[60] */
00044     unsigned char aclink;   /* ACLink configuration PCI[61] */
00045     unsigned char i2sID;    /* PCI[62] */
00046     unsigned char spdif;    /* S/PDIF configuration PCI[63] */
00047     unsigned char gpiomask; /* GPIO initial mask, 0 = write, 1 = don't */
00048     unsigned char gpiostate; /* GPIO initial state */
00049     unsigned char gpiodir;  /* GPIO direction state */
00050     unsigned short ac97main;
00051     unsigned short ac97pcm;
00052     unsigned short ac97rec;
00053     unsigned char ac97recsrc;
00054     unsigned char dacID[4]; /* I2S IDs for DACs */
00055     unsigned char adcID[4]; /* I2S IDs for ADCs */
00056     unsigned char extra[4];
00057 }
00058 ice1712_eeprom_t;
00059 
00060 typedef struct
00061 {
00062     alsa_driver_t *driver;
00063     ice1712_eeprom_t *eeprom;
00064     unsigned long active_channels;
00065 }
00066 ice1712_t;
00067 
00068 #ifdef __cplusplus
00069 extern "C"
00070 {
00071 #endif
00072 
00073     jack_hardware_t *jack_alsa_ice1712_hw_new (alsa_driver_t *driver);
00074 
00075 #ifdef __cplusplus
00076 }
00077 #endif
00078 
00079 #endif /* __jack_ice1712_h__*/