usbus428ctldefs.h (1569B)
1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2/* 3 * 4 * Copyright (c) 2003 by Karsten Wiese <annabellesgarden@yahoo.de> 5 */ 6 7enum E_IN84 { 8 E_FADER_0 = 0, 9 E_FADER_1, 10 E_FADER_2, 11 E_FADER_3, 12 E_FADER_4, 13 E_FADER_5, 14 E_FADER_6, 15 E_FADER_7, 16 E_FADER_M, 17 E_TRANSPORT, 18 E_MODIFIER = 10, 19 E_FILTER_SELECT, 20 E_SELECT, 21 E_MUTE, 22 23 E_SWITCH = 15, 24 E_WHEEL_GAIN, 25 E_WHEEL_FREQ, 26 E_WHEEL_Q, 27 E_WHEEL_PAN, 28 E_WHEEL = 20 29}; 30 31#define T_RECORD 1 32#define T_PLAY 2 33#define T_STOP 4 34#define T_F_FWD 8 35#define T_REW 0x10 36#define T_SOLO 0x20 37#define T_REC 0x40 38#define T_NULL 0x80 39 40 41struct us428_ctls { 42 unsigned char fader[9]; 43 unsigned char transport; 44 unsigned char modifier; 45 unsigned char filters_elect; 46 unsigned char select; 47 unsigned char mute; 48 unsigned char unknown; 49 unsigned char wswitch; 50 unsigned char wheel[5]; 51}; 52 53struct us428_set_byte { 54 unsigned char offset, 55 value; 56}; 57 58enum { 59 ELT_VOLUME = 0, 60 ELT_LIGHT 61}; 62 63struct usx2y_volume { 64 unsigned char channel, 65 lh, 66 ll, 67 rh, 68 rl; 69}; 70 71struct us428_lights { 72 struct us428_set_byte light[7]; 73}; 74 75struct us428_p4out { 76 char type; 77 union { 78 struct usx2y_volume vol; 79 struct us428_lights lights; 80 } val; 81}; 82 83#define N_US428_CTL_BUFS 16 84#define N_US428_P4OUT_BUFS 16 85struct us428ctls_sharedmem { 86 struct us428_ctls ctl_snapshot[N_US428_CTL_BUFS]; 87 int ctl_snapshot_differs_at[N_US428_CTL_BUFS]; 88 int ctl_snapshot_last, ctl_snapshot_red; 89 struct us428_p4out p4out[N_US428_P4OUT_BUFS]; 90 int p4out_last, p4out_sent; 91}; 92 93#define US428_SHAREDMEM_PAGES PAGE_ALIGN(sizeof(struct us428ctls_sharedmem))