0001
0002
0003
0004
0005
0006
0007 enum E_IN84 {
0008 E_FADER_0 = 0,
0009 E_FADER_1,
0010 E_FADER_2,
0011 E_FADER_3,
0012 E_FADER_4,
0013 E_FADER_5,
0014 E_FADER_6,
0015 E_FADER_7,
0016 E_FADER_M,
0017 E_TRANSPORT,
0018 E_MODIFIER = 10,
0019 E_FILTER_SELECT,
0020 E_SELECT,
0021 E_MUTE,
0022
0023 E_SWITCH = 15,
0024 E_WHEEL_GAIN,
0025 E_WHEEL_FREQ,
0026 E_WHEEL_Q,
0027 E_WHEEL_PAN,
0028 E_WHEEL = 20
0029 };
0030
0031 #define T_RECORD 1
0032 #define T_PLAY 2
0033 #define T_STOP 4
0034 #define T_F_FWD 8
0035 #define T_REW 0x10
0036 #define T_SOLO 0x20
0037 #define T_REC 0x40
0038 #define T_NULL 0x80
0039
0040
0041 struct us428_ctls {
0042 unsigned char fader[9];
0043 unsigned char transport;
0044 unsigned char modifier;
0045 unsigned char filters_elect;
0046 unsigned char select;
0047 unsigned char mute;
0048 unsigned char unknown;
0049 unsigned char wswitch;
0050 unsigned char wheel[5];
0051 };
0052
0053 struct us428_set_byte {
0054 unsigned char offset,
0055 value;
0056 };
0057
0058 enum {
0059 ELT_VOLUME = 0,
0060 ELT_LIGHT
0061 };
0062
0063 struct usx2y_volume {
0064 unsigned char channel,
0065 lh,
0066 ll,
0067 rh,
0068 rl;
0069 };
0070
0071 struct us428_lights {
0072 struct us428_set_byte light[7];
0073 };
0074
0075 struct us428_p4out {
0076 char type;
0077 union {
0078 struct usx2y_volume vol;
0079 struct us428_lights lights;
0080 } val;
0081 };
0082
0083 #define N_US428_CTL_BUFS 16
0084 #define N_US428_P4OUT_BUFS 16
0085 struct us428ctls_sharedmem {
0086 struct us428_ctls ctl_snapshot[N_US428_CTL_BUFS];
0087 int ctl_snapshot_differs_at[N_US428_CTL_BUFS];
0088 int ctl_snapshot_last, ctl_snapshot_red;
0089 struct us428_p4out p4out[N_US428_P4OUT_BUFS];
0090 int p4out_last, p4out_sent;
0091 };
0092
0093 #define US428_SHAREDMEM_PAGES PAGE_ALIGN(sizeof(struct us428ctls_sharedmem))