xref: /openbmc/linux/sound/usb/usx2y/usbus428ctldefs.h (revision 1a59d1b8e05ea6ab45f7e18897de1ef0e6bc3da6)
1*1a59d1b8SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
21da177e4SLinus Torvalds /*
31da177e4SLinus Torvalds  *
41da177e4SLinus Torvalds  * Copyright (c) 2003 by Karsten Wiese <annabellesgarden@yahoo.de>
51da177e4SLinus Torvalds  */
61da177e4SLinus Torvalds 
71da177e4SLinus Torvalds enum E_In84{
81da177e4SLinus Torvalds 	eFader0 = 0,
91da177e4SLinus Torvalds 	eFader1,
101da177e4SLinus Torvalds 	eFader2,
111da177e4SLinus Torvalds 	eFader3,
121da177e4SLinus Torvalds 	eFader4,
131da177e4SLinus Torvalds 	eFader5,
141da177e4SLinus Torvalds 	eFader6,
151da177e4SLinus Torvalds 	eFader7,
161da177e4SLinus Torvalds 	eFaderM,
171da177e4SLinus Torvalds 	eTransport,
181da177e4SLinus Torvalds 	eModifier = 10,
191da177e4SLinus Torvalds 	eFilterSelect,
201da177e4SLinus Torvalds 	eSelect,
211da177e4SLinus Torvalds 	eMute,
221da177e4SLinus Torvalds 
231da177e4SLinus Torvalds 	eSwitch   = 15,
241da177e4SLinus Torvalds 	eWheelGain,
251da177e4SLinus Torvalds 	eWheelFreq,
261da177e4SLinus Torvalds 	eWheelQ,
271da177e4SLinus Torvalds 	eWheelPan,
281da177e4SLinus Torvalds 	eWheel    = 20
291da177e4SLinus Torvalds };
301da177e4SLinus Torvalds 
311da177e4SLinus Torvalds #define T_RECORD   1
321da177e4SLinus Torvalds #define T_PLAY     2
331da177e4SLinus Torvalds #define T_STOP     4
341da177e4SLinus Torvalds #define T_F_FWD    8
351da177e4SLinus Torvalds #define T_REW   0x10
361da177e4SLinus Torvalds #define T_SOLO  0x20
371da177e4SLinus Torvalds #define T_REC   0x40
381da177e4SLinus Torvalds #define T_NULL  0x80
391da177e4SLinus Torvalds 
401da177e4SLinus Torvalds 
411da177e4SLinus Torvalds struct us428_ctls {
421da177e4SLinus Torvalds 	unsigned char   Fader[9];
431da177e4SLinus Torvalds 	unsigned char 	Transport;
441da177e4SLinus Torvalds 	unsigned char 	Modifier;
451da177e4SLinus Torvalds 	unsigned char 	FilterSelect;
461da177e4SLinus Torvalds 	unsigned char 	Select;
471da177e4SLinus Torvalds 	unsigned char   Mute;
481da177e4SLinus Torvalds 	unsigned char   UNKNOWN;
491da177e4SLinus Torvalds 	unsigned char   Switch;
501da177e4SLinus Torvalds 	unsigned char   Wheel[5];
511da177e4SLinus Torvalds };
521da177e4SLinus Torvalds 
53bbe85bbdSTakashi Iwai struct us428_setByte {
541da177e4SLinus Torvalds 	unsigned char Offset,
551da177e4SLinus Torvalds 		Value;
56bbe85bbdSTakashi Iwai };
571da177e4SLinus Torvalds 
581da177e4SLinus Torvalds enum {
591da177e4SLinus Torvalds 	eLT_Volume = 0,
601da177e4SLinus Torvalds 	eLT_Light
611da177e4SLinus Torvalds };
621da177e4SLinus Torvalds 
63bbe85bbdSTakashi Iwai struct usX2Y_volume {
641da177e4SLinus Torvalds 	unsigned char Channel,
651da177e4SLinus Torvalds 		LH,
661da177e4SLinus Torvalds 		LL,
671da177e4SLinus Torvalds 		RH,
681da177e4SLinus Torvalds 		RL;
69bbe85bbdSTakashi Iwai };
701da177e4SLinus Torvalds 
711da177e4SLinus Torvalds struct us428_lights {
72bbe85bbdSTakashi Iwai 	struct us428_setByte Light[7];
731da177e4SLinus Torvalds };
741da177e4SLinus Torvalds 
75bbe85bbdSTakashi Iwai struct us428_p4out {
761da177e4SLinus Torvalds 	char type;
771da177e4SLinus Torvalds 	union {
78bbe85bbdSTakashi Iwai 		struct usX2Y_volume vol;
79bbe85bbdSTakashi Iwai 		struct us428_lights lights;
801da177e4SLinus Torvalds 	} val;
81bbe85bbdSTakashi Iwai };
821da177e4SLinus Torvalds 
831da177e4SLinus Torvalds #define N_us428_ctl_BUFS 16
841da177e4SLinus Torvalds #define N_us428_p4out_BUFS 16
851da177e4SLinus Torvalds struct us428ctls_sharedmem{
86bbe85bbdSTakashi Iwai 	struct us428_ctls	CtlSnapShot[N_us428_ctl_BUFS];
871da177e4SLinus Torvalds 	int			CtlSnapShotDiffersAt[N_us428_ctl_BUFS];
881da177e4SLinus Torvalds 	int			CtlSnapShotLast, CtlSnapShotRed;
89bbe85bbdSTakashi Iwai 	struct us428_p4out	p4out[N_us428_p4out_BUFS];
901da177e4SLinus Torvalds 	int			p4outLast, p4outSent;
911da177e4SLinus Torvalds };
92