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 20enum 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 54struct 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 66struct us428_setByte { 67 unsigned char Offset, 68 Value; 69}; 70 71enum { 72 eLT_Volume = 0, 73 eLT_Light 74}; 75 76struct usX2Y_volume { 77 unsigned char Channel, 78 LH, 79 LL, 80 RH, 81 RL; 82}; 83 84struct us428_lights { 85 struct us428_setByte Light[7]; 86}; 87 88struct us428_p4out { 89 char type; 90 union { 91 struct usX2Y_volume vol; 92 struct us428_lights lights; 93 } val; 94}; 95 96#define N_us428_ctl_BUFS 16 97#define N_us428_p4out_BUFS 16 98struct us428ctls_sharedmem{ 99 struct us428_ctls CtlSnapShot[N_us428_ctl_BUFS]; 100 int CtlSnapShotDiffersAt[N_us428_ctl_BUFS]; 101 int CtlSnapShotLast, CtlSnapShotRed; 102 struct us428_p4out p4out[N_us428_p4out_BUFS]; 103 int p4outLast, p4outSent; 104}; 105