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