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; 109