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))
94

source code of linux/sound/usb/usx2y/usbus428ctldefs.h