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