linux/sound/usb/usx2y/usbus428ctldefs.h
<<
>>
Prefs
   1/*
   2 *
   3 * Copyright (c) 2003 by Karsten Wiese <annabellesgarden@yahoo.de>
   4 *
   5 *   This program is free software; you can redistribute it and/or modify
   6 *   it under the terms of the GNU General Public License as published by
   7 *   the Free Software Foundation; either version 2 of the License, or
   8 *   (at your option) any later version.
   9 *
  10 *   This program is distributed in the hope that it will be useful,
  11 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  12 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13 *   GNU General Public License for more details.
  14 *
  15 *   You should have received a copy of the GNU General Public License
  16 *   along with this program; if not, write to the Free Software
  17 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  18 */
  19
  20enum E_In84{
  21        eFader0 = 0,
  22        eFader1,
  23        eFader2,
  24        eFader3,
  25        eFader4,
  26        eFader5,
  27        eFader6,
  28        eFader7,
  29        eFaderM,
  30        eTransport,
  31        eModifier = 10,
  32        eFilterSelect,
  33        eSelect,
  34        eMute,
  35
  36        eSwitch   = 15,
  37        eWheelGain,
  38        eWheelFreq,
  39        eWheelQ,
  40        eWheelPan,
  41        eWheel    = 20
  42};
  43
  44#define T_RECORD   1
  45#define T_PLAY     2
  46#define T_STOP     4
  47#define T_F_FWD    8
  48#define T_REW   0x10
  49#define T_SOLO  0x20
  50#define T_REC   0x40
  51#define T_NULL  0x80
  52
  53
  54struct us428_ctls {
  55        unsigned char   Fader[9];
  56        unsigned char   Transport;
  57        unsigned char   Modifier;
  58        unsigned char   FilterSelect;
  59        unsigned char   Select;
  60        unsigned char   Mute;
  61        unsigned char   UNKNOWN;
  62        unsigned char   Switch;      
  63        unsigned char   Wheel[5];
  64};
  65
  66struct us428_setByte {
  67        unsigned char Offset,
  68                Value;
  69};
  70
  71enum {
  72        eLT_Volume = 0,
  73        eLT_Light
  74};
  75
  76struct usX2Y_volume {
  77        unsigned char Channel,
  78                LH,
  79                LL,
  80                RH,
  81                RL;
  82};
  83
  84struct us428_lights {
  85        struct us428_setByte Light[7];
  86};
  87
  88struct us428_p4out {
  89        char type;
  90        union {
  91                struct usX2Y_volume vol;
  92                struct us428_lights lights;
  93        } val;
  94};
  95
  96#define N_us428_ctl_BUFS 16
  97#define N_us428_p4out_BUFS 16
  98struct us428ctls_sharedmem{
  99        struct us428_ctls       CtlSnapShot[N_us428_ctl_BUFS];
 100        int                     CtlSnapShotDiffersAt[N_us428_ctl_BUFS];
 101        int                     CtlSnapShotLast, CtlSnapShotRed;
 102        struct us428_p4out      p4out[N_us428_p4out_BUFS];
 103        int                     p4outLast, p4outSent;
 104};
 105