Linux 6.10-rc7
[linux-block.git] / sound / usb / usx2y / usbus428ctldefs.h
CommitLineData
1a59d1b8 1/* SPDX-License-Identifier: GPL-2.0-or-later */
1da177e4
LT
2/*
3 *
4 * Copyright (c) 2003 by Karsten Wiese <annabellesgarden@yahoo.de>
1da177e4
LT
5 */
6
bae3ce49
TI
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,
1da177e4 22
bae3ce49
TI
23 E_SWITCH = 15,
24 E_WHEEL_GAIN,
25 E_WHEEL_FREQ,
26 E_WHEEL_Q,
27 E_WHEEL_PAN,
28 E_WHEEL = 20
1da177e4
LT
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
bbe85bbd 41struct us428_ctls {
4c0a58ef
TI
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];
1da177e4
LT
51};
52
bae3ce49
TI
53struct us428_set_byte {
54 unsigned char offset,
55 value;
bbe85bbd 56};
1da177e4
LT
57
58enum {
bae3ce49
TI
59 ELT_VOLUME = 0,
60 ELT_LIGHT
1da177e4
LT
61};
62
bae3ce49
TI
63struct usx2y_volume {
64 unsigned char channel,
65 lh,
66 ll,
67 rh,
68 rl;
bbe85bbd 69};
1da177e4 70
bbe85bbd 71struct us428_lights {
bae3ce49 72 struct us428_set_byte light[7];
1da177e4 73};
1da177e4 74
bbe85bbd 75struct us428_p4out {
1da177e4
LT
76 char type;
77 union {
bae3ce49 78 struct usx2y_volume vol;
bbe85bbd 79 struct us428_lights lights;
1da177e4 80 } val;
bbe85bbd 81};
1da177e4 82
bae3ce49
TI
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;
1da177e4 91};
4e268db7
TI
92
93#define US428_SHAREDMEM_PAGES PAGE_ALIGN(sizeof(struct us428ctls_sharedmem))