1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /* |
3 | * |
4 | * Copyright (c) 2003 by Karsten Wiese <annabellesgarden@yahoo.de> |
5 | */ |
6 | |
7 | enum 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 | |
41 | struct 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 | |
53 | struct us428_set_byte { |
54 | unsigned char offset, |
55 | value; |
56 | }; |
57 | |
58 | enum { |
59 | ELT_VOLUME = 0, |
60 | ELT_LIGHT |
61 | }; |
62 | |
63 | struct usx2y_volume { |
64 | unsigned char channel, |
65 | lh, |
66 | ll, |
67 | rh, |
68 | rl; |
69 | }; |
70 | |
71 | struct us428_lights { |
72 | struct us428_set_byte light[7]; |
73 | }; |
74 | |
75 | struct 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 |
85 | struct 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)) |
94 | |