summaryrefslogtreecommitdiffstats
path: root/sound/usb/usx2y/usbus428ctldefs.h
blob: 5a7518ea3aeb4a6532b54224b730c1ffcae51ca9 (plain)
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{
	eFader0 = 0,
	eFader1,
	eFader2,
	eFader3,
	eFader4,
	eFader5,
	eFader6,
	eFader7,
	eFaderM,
	eTransport,
	eModifier = 10,
	eFilterSelect,
	eSelect,
	eMute,

	eSwitch   = 15,
	eWheelGain,
	eWheelFreq,
	eWheelQ,
	eWheelPan,
	eWheel    = 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 	FilterSelect;
	unsigned char 	Select;
	unsigned char   Mute;
	unsigned char   UNKNOWN;
	unsigned char   Switch;	     
	unsigned char   Wheel[5];
};

struct us428_setByte {
	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_setByte 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	CtlSnapShot[N_us428_ctl_BUFS];
	int			CtlSnapShotDiffersAt[N_us428_ctl_BUFS];
	int			CtlSnapShotLast, CtlSnapShotRed;
	struct us428_p4out	p4out[N_us428_p4out_BUFS];
	int			p4outLast, p4outSent;
};