]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - sound/usb/usx2y/usbus428ctldefs.h
Linux-2.6.12-rc2
[mirror_ubuntu-artful-kernel.git] / sound / usb / usx2y / usbus428ctldefs.h
1 /*
2 *
3 * Copyright (c) 2003 by Karsten Wiese <annabellesgarden@yahoo.de>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19
20 enum E_In84{
21 eFader0 = 0,
22 eFader1,
23 eFader2,
24 eFader3,
25 eFader4,
26 eFader5,
27 eFader6,
28 eFader7,
29 eFaderM,
30 eTransport,
31 eModifier = 10,
32 eFilterSelect,
33 eSelect,
34 eMute,
35
36 eSwitch = 15,
37 eWheelGain,
38 eWheelFreq,
39 eWheelQ,
40 eWheelPan,
41 eWheel = 20
42 };
43
44 #define T_RECORD 1
45 #define T_PLAY 2
46 #define T_STOP 4
47 #define T_F_FWD 8
48 #define T_REW 0x10
49 #define T_SOLO 0x20
50 #define T_REC 0x40
51 #define T_NULL 0x80
52
53
54 struct us428_ctls{
55 unsigned char Fader[9];
56 unsigned char Transport;
57 unsigned char Modifier;
58 unsigned char FilterSelect;
59 unsigned char Select;
60 unsigned char Mute;
61 unsigned char UNKNOWN;
62 unsigned char Switch;
63 unsigned char Wheel[5];
64 };
65
66 typedef struct us428_ctls us428_ctls_t;
67
68 typedef struct us428_setByte{
69 unsigned char Offset,
70 Value;
71 }us428_setByte_t;
72
73 enum {
74 eLT_Volume = 0,
75 eLT_Light
76 };
77
78 typedef struct usX2Y_volume {
79 unsigned char Channel,
80 LH,
81 LL,
82 RH,
83 RL;
84 } usX2Y_volume_t;
85
86 struct us428_lights{
87 us428_setByte_t Light[7];
88 };
89 typedef struct us428_lights us428_lights_t;
90
91 typedef struct {
92 char type;
93 union {
94 usX2Y_volume_t vol;
95 us428_lights_t lights;
96 } val;
97 } us428_p4out_t;
98
99 #define N_us428_ctl_BUFS 16
100 #define N_us428_p4out_BUFS 16
101 struct us428ctls_sharedmem{
102 us428_ctls_t CtlSnapShot[N_us428_ctl_BUFS];
103 int CtlSnapShotDiffersAt[N_us428_ctl_BUFS];
104 int CtlSnapShotLast, CtlSnapShotRed;
105 us428_p4out_t p4out[N_us428_p4out_BUFS];
106 int p4outLast, p4outSent;
107 };
108 typedef struct us428ctls_sharedmem us428ctls_sharedmem_t;