| /* 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; |
| }; |
| |
| #define US428_SHAREDMEM_PAGES PAGE_ALIGN(sizeof(struct us428ctls_sharedmem)) |