Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  *
0004  * Copyright (c) 2003 by Karsten Wiese <annabellesgarden@yahoo.de>
0005  */
0006 
0007 enum E_IN84 {
0008     E_FADER_0 = 0,
0009     E_FADER_1,
0010     E_FADER_2,
0011     E_FADER_3,
0012     E_FADER_4,
0013     E_FADER_5,
0014     E_FADER_6,
0015     E_FADER_7,
0016     E_FADER_M,
0017     E_TRANSPORT,
0018     E_MODIFIER = 10,
0019     E_FILTER_SELECT,
0020     E_SELECT,
0021     E_MUTE,
0022 
0023     E_SWITCH   = 15,
0024     E_WHEEL_GAIN,
0025     E_WHEEL_FREQ,
0026     E_WHEEL_Q,
0027     E_WHEEL_PAN,
0028     E_WHEEL    = 20
0029 };
0030 
0031 #define T_RECORD   1
0032 #define T_PLAY     2
0033 #define T_STOP     4
0034 #define T_F_FWD    8
0035 #define T_REW   0x10
0036 #define T_SOLO  0x20
0037 #define T_REC   0x40
0038 #define T_NULL  0x80
0039 
0040 
0041 struct us428_ctls {
0042     unsigned char   fader[9];
0043     unsigned char   transport;
0044     unsigned char   modifier;
0045     unsigned char   filters_elect;
0046     unsigned char   select;
0047     unsigned char   mute;
0048     unsigned char   unknown;
0049     unsigned char   wswitch;
0050     unsigned char   wheel[5];
0051 };
0052 
0053 struct us428_set_byte {
0054     unsigned char offset,
0055         value;
0056 };
0057 
0058 enum {
0059     ELT_VOLUME = 0,
0060     ELT_LIGHT
0061 };
0062 
0063 struct usx2y_volume {
0064     unsigned char channel,
0065         lh,
0066         ll,
0067         rh,
0068         rl;
0069 };
0070 
0071 struct us428_lights {
0072     struct us428_set_byte light[7];
0073 };
0074 
0075 struct us428_p4out {
0076     char type;
0077     union {
0078         struct usx2y_volume vol;
0079         struct us428_lights lights;
0080     } val;
0081 };
0082 
0083 #define N_US428_CTL_BUFS 16
0084 #define N_US428_P4OUT_BUFS 16
0085 struct us428ctls_sharedmem {
0086     struct us428_ctls   ctl_snapshot[N_US428_CTL_BUFS];
0087     int         ctl_snapshot_differs_at[N_US428_CTL_BUFS];
0088     int         ctl_snapshot_last, ctl_snapshot_red;
0089     struct us428_p4out  p4out[N_US428_P4OUT_BUFS];
0090     int         p4out_last, p4out_sent;
0091 };
0092 
0093 #define US428_SHAREDMEM_PAGES   PAGE_ALIGN(sizeof(struct us428ctls_sharedmem))