Home | History | Annotate | Line # | Download | only in usb
uaudioreg.h revision 1.7.2.4
      1  1.7.2.1   nathanw /*	$NetBSD: uaudioreg.h,v 1.7.2.4 2002/11/11 22:12:49 nathanw Exp $	*/
      2      1.1  augustss 
      3      1.1  augustss /*
      4      1.1  augustss  * Copyright (c) 1999 The NetBSD Foundation, Inc.
      5      1.1  augustss  * All rights reserved.
      6      1.1  augustss  *
      7      1.5  augustss  * This code is derived from software contributed to The NetBSD Foundation
      8      1.5  augustss  * by Lennart Augustsson (lennart (at) augustsson.net) at
      9      1.5  augustss  * Carlstedt Research & Technology.
     10      1.1  augustss  *
     11      1.1  augustss  * Redistribution and use in source and binary forms, with or without
     12      1.1  augustss  * modification, are permitted provided that the following conditions
     13      1.1  augustss  * are met:
     14      1.1  augustss  * 1. Redistributions of source code must retain the above copyright
     15      1.1  augustss  *    notice, this list of conditions and the following disclaimer.
     16      1.1  augustss  * 2. Redistributions in binary form must reproduce the above copyright
     17      1.1  augustss  *    notice, this list of conditions and the following disclaimer in the
     18      1.1  augustss  *    documentation and/or other materials provided with the distribution.
     19      1.1  augustss  * 3. All advertising materials mentioning features or use of this software
     20      1.1  augustss  *    must display the following acknowledgement:
     21      1.1  augustss  *        This product includes software developed by the NetBSD
     22      1.1  augustss  *        Foundation, Inc. and its contributors.
     23      1.1  augustss  * 4. Neither the name of The NetBSD Foundation nor the names of its
     24      1.1  augustss  *    contributors may be used to endorse or promote products derived
     25      1.1  augustss  *    from this software without specific prior written permission.
     26      1.1  augustss  *
     27      1.1  augustss  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     28      1.1  augustss  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     29      1.1  augustss  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     30      1.1  augustss  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     31      1.1  augustss  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     32      1.1  augustss  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     33      1.1  augustss  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     34      1.1  augustss  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     35      1.1  augustss  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     36      1.1  augustss  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     37      1.1  augustss  * POSSIBILITY OF SUCH DAMAGE.
     38      1.1  augustss  */
     39      1.1  augustss 
     40      1.1  augustss #define UAUDIO_VERSION		0x100
     41      1.1  augustss 
     42      1.1  augustss #define UDESC_CS_CONFIG		0x22
     43      1.1  augustss #define UDESC_CS_STRING		0x23
     44      1.1  augustss #define UDESC_CS_INTERFACE	0x24
     45      1.1  augustss #define UDESC_CS_ENDPOINT	0x25
     46      1.1  augustss 
     47      1.1  augustss #define UDESCSUB_AC_HEADER	1
     48      1.1  augustss #define UDESCSUB_AC_INPUT	2
     49      1.1  augustss #define UDESCSUB_AC_OUTPUT	3
     50      1.1  augustss #define UDESCSUB_AC_MIXER	4
     51      1.1  augustss #define UDESCSUB_AC_SELECTOR	5
     52      1.1  augustss #define UDESCSUB_AC_FEATURE	6
     53      1.1  augustss #define UDESCSUB_AC_PROCESSING	7
     54      1.1  augustss #define UDESCSUB_AC_EXTENSION	8
     55      1.1  augustss 
     56      1.1  augustss /* The first fields are identical to usb_endpoint_descriptor_t */
     57      1.1  augustss typedef struct {
     58      1.1  augustss 	uByte		bLength;
     59      1.1  augustss 	uByte		bDescriptorType;
     60      1.1  augustss 	uByte		bEndpointAddress;
     61      1.1  augustss 	uByte		bmAttributes;
     62      1.1  augustss 	uWord		wMaxPacketSize;
     63      1.1  augustss 	uByte		bInterval;
     64  1.7.2.2   nathanw 	/*
     65      1.1  augustss 	 * The following two entries are only used by the Audio Class.
     66      1.1  augustss 	 * And according to the specs the Audio Class is the only one
     67      1.1  augustss 	 * allowed to extend the endpoint descriptor.
     68      1.1  augustss 	 * Who knows what goes on in the minds of the people in the USB
     69      1.1  augustss 	 * standardization?  :-(
     70      1.1  augustss 	 */
     71      1.1  augustss 	uByte		bRefresh;
     72      1.1  augustss 	uByte		bSynchAddress;
     73      1.6  augustss } UPACKED usb_endpoint_descriptor_audio_t;
     74      1.1  augustss 
     75      1.1  augustss struct usb_audio_control_descriptor {
     76      1.1  augustss 	uByte		bLength;
     77      1.1  augustss 	uByte		bDescriptorType;
     78      1.1  augustss 	uByte		bDescriptorSubtype;
     79      1.1  augustss 	uWord		bcdADC;
     80      1.1  augustss 	uWord		wTotalLength;
     81      1.1  augustss 	uByte		bInCollection;
     82      1.1  augustss 	uByte		baInterfaceNr[1];
     83      1.6  augustss } UPACKED;
     84      1.1  augustss 
     85      1.1  augustss struct usb_audio_streaming_interface_descriptor {
     86      1.1  augustss 	uByte		bLength;
     87      1.1  augustss 	uByte		bDescriptorType;
     88      1.1  augustss 	uByte		bDescriptorSubtype;
     89      1.1  augustss 	uByte		bTerminalLink;
     90      1.1  augustss 	uByte		bDelay;
     91      1.1  augustss 	uWord		wFormatTag;
     92      1.6  augustss } UPACKED;
     93      1.1  augustss 
     94      1.1  augustss struct usb_audio_streaming_endpoint_descriptor {
     95      1.1  augustss 	uByte		bLength;
     96      1.1  augustss 	uByte		bDescriptorType;
     97      1.1  augustss 	uByte		bDescriptorSubtype;
     98      1.1  augustss 	uByte		bmAttributes;
     99  1.7.2.1   nathanw #define UA_SED_FREQ_CONTROL	0x01
    100  1.7.2.1   nathanw #define UA_SED_PITCH_CONTROL	0x02
    101  1.7.2.1   nathanw #define UA_SED_MAXPACKETSONLY	0x80
    102      1.1  augustss 	uByte		bLockDelayUnits;
    103      1.1  augustss 	uWord		wLockDelay;
    104      1.6  augustss } UPACKED;
    105      1.1  augustss 
    106      1.1  augustss struct usb_audio_streaming_type1_descriptor {
    107      1.1  augustss 	uByte		bLength;
    108      1.1  augustss 	uByte		bDescriptorType;
    109      1.1  augustss 	uByte		bDescriptorSubtype;
    110      1.1  augustss 	uByte		bFormatType;
    111      1.1  augustss 	uByte		bNrChannels;
    112      1.1  augustss 	uByte		bSubFrameSize;
    113      1.1  augustss 	uByte		bBitResolution;
    114      1.1  augustss 	uByte		bSamFreqType;
    115      1.1  augustss #define UA_SAMP_CONTNUOUS 0
    116      1.1  augustss 	uByte		tSamFreq[3*2]; /* room for low and high */
    117      1.1  augustss #define UA_GETSAMP(p, n) ((p)->tSamFreq[(n)*3+0] | ((p)->tSamFreq[(n)*3+1] << 8) | ((p)->tSamFreq[(n)*3+2] << 16))
    118      1.1  augustss #define UA_SAMP_LO(p) UA_GETSAMP(p, 0)
    119      1.1  augustss #define UA_SAMP_HI(p) UA_GETSAMP(p, 1)
    120      1.6  augustss } UPACKED;
    121      1.1  augustss 
    122      1.1  augustss struct usb_audio_cluster {
    123      1.1  augustss 	uByte		bNrChannels;
    124      1.1  augustss 	uWord		wChannelConfig;
    125      1.1  augustss 	uByte		iChannelNames;
    126      1.6  augustss } UPACKED;
    127      1.1  augustss 
    128  1.7.2.3   nathanw /* Shared by all units and terminals */
    129  1.7.2.3   nathanw struct usb_audio_unit {
    130  1.7.2.3   nathanw 	uByte		bLength;
    131  1.7.2.3   nathanw 	uByte		bDescriptorType;
    132  1.7.2.3   nathanw 	uByte		bDescriptorSubtype;
    133  1.7.2.3   nathanw 	uByte		bUnitId;
    134  1.7.2.3   nathanw };
    135  1.7.2.3   nathanw 
    136      1.1  augustss /* UDESCSUB_AC_INPUT */
    137      1.1  augustss struct usb_audio_input_terminal {
    138      1.1  augustss 	uByte		bLength;
    139      1.1  augustss 	uByte		bDescriptorType;
    140      1.1  augustss 	uByte		bDescriptorSubtype;
    141      1.1  augustss 	uByte		bTerminalId;
    142      1.1  augustss 	uWord		wTerminalType;
    143      1.1  augustss 	uByte		bAssocTerminal;
    144      1.1  augustss 	uByte		bNrChannels;
    145      1.1  augustss 	uWord		wChannelConfig;
    146      1.1  augustss 	uByte		iChannelNames;
    147      1.1  augustss 	uByte		iTerminal;
    148      1.6  augustss } UPACKED;
    149      1.1  augustss 
    150      1.1  augustss /* UDESCSUB_AC_OUTPUT */
    151      1.1  augustss struct usb_audio_output_terminal {
    152      1.1  augustss 	uByte		bLength;
    153      1.1  augustss 	uByte		bDescriptorType;
    154      1.1  augustss 	uByte		bDescriptorSubtype;
    155      1.1  augustss 	uByte		bTerminalId;
    156      1.1  augustss 	uWord		wTerminalType;
    157      1.1  augustss 	uByte		bAssocTerminal;
    158      1.1  augustss 	uByte		bSourceId;
    159      1.1  augustss 	uByte		iTerminal;
    160      1.6  augustss } UPACKED;
    161      1.1  augustss 
    162      1.1  augustss /* UDESCSUB_AC_MIXER */
    163      1.1  augustss struct usb_audio_mixer_unit {
    164      1.1  augustss 	uByte		bLength;
    165      1.1  augustss 	uByte		bDescriptorType;
    166      1.1  augustss 	uByte		bDescriptorSubtype;
    167      1.1  augustss 	uByte		bUnitId;
    168      1.1  augustss 	uByte		bNrInPins;
    169      1.4  augustss 	uByte		baSourceId[255]; /* [bNrInPins] */
    170      1.1  augustss 	/* struct usb_audio_mixer_unit_1 */
    171      1.6  augustss } UPACKED;
    172      1.1  augustss struct usb_audio_mixer_unit_1 {
    173      1.1  augustss 	uByte		bNrChannels;
    174      1.1  augustss 	uWord		wChannelConfig;
    175      1.1  augustss 	uByte		iChannelNames;
    176      1.4  augustss 	uByte		bmControls[255]; /* [bNrChannels] */
    177      1.1  augustss 	/*uByte		iMixer;*/
    178      1.6  augustss } UPACKED;
    179      1.1  augustss 
    180      1.1  augustss /* UDESCSUB_AC_SELECTOR */
    181      1.1  augustss struct usb_audio_selector_unit {
    182      1.1  augustss 	uByte		bLength;
    183      1.1  augustss 	uByte		bDescriptorType;
    184      1.1  augustss 	uByte		bDescriptorSubtype;
    185      1.1  augustss 	uByte		bUnitId;
    186      1.1  augustss 	uByte		bNrInPins;
    187      1.4  augustss 	uByte		baSourceId[255]; /* [bNrInPins] */
    188      1.1  augustss 	/* uByte	iSelector; */
    189      1.6  augustss } UPACKED;
    190      1.1  augustss 
    191      1.1  augustss /* UDESCSUB_AC_FEATURE */
    192      1.1  augustss struct usb_audio_feature_unit {
    193      1.1  augustss 	uByte		bLength;
    194      1.1  augustss 	uByte		bDescriptorType;
    195      1.1  augustss 	uByte		bDescriptorSubtype;
    196      1.1  augustss 	uByte		bUnitId;
    197      1.1  augustss 	uByte		bSourceId;
    198      1.1  augustss 	uByte		bControlSize;
    199      1.1  augustss 	uByte		bmaControls[255]; /* size for more than enough */
    200      1.1  augustss 	/* uByte	iFeature; */
    201      1.6  augustss } UPACKED;
    202      1.1  augustss 
    203      1.1  augustss /* UDESCSUB_AC_PROCESSING */
    204      1.1  augustss struct usb_audio_processing_unit {
    205      1.1  augustss 	uByte		bLength;
    206      1.1  augustss 	uByte		bDescriptorType;
    207      1.1  augustss 	uByte		bDescriptorSubtype;
    208      1.1  augustss 	uByte		bUnitId;
    209      1.1  augustss 	uWord		wProcessType;
    210      1.1  augustss 	uByte		bNrInPins;
    211      1.4  augustss 	uByte		baSourceId[255]; /* [bNrInPins] */
    212      1.1  augustss 	/* struct usb_audio_processing_unit_1 */
    213      1.6  augustss } UPACKED;
    214      1.1  augustss struct usb_audio_processing_unit_1{
    215      1.1  augustss 	uByte		bNrChannels;
    216      1.1  augustss 	uWord		wChannelConfig;
    217      1.1  augustss 	uByte		iChannelNames;
    218      1.1  augustss 	uByte		bControlSize;
    219      1.4  augustss 	uByte		bmControls[255]; /* [bControlSize] */
    220      1.3  augustss #define UA_PROC_ENABLE_MASK 1
    221      1.6  augustss } UPACKED;
    222      1.4  augustss 
    223      1.4  augustss struct usb_audio_processing_unit_updown {
    224      1.4  augustss 	uByte		iProcessing;
    225      1.4  augustss 	uByte		bNrModes;
    226      1.4  augustss 	uWord		waModes[255]; /* [bNrModes] */
    227      1.6  augustss } UPACKED;
    228      1.1  augustss 
    229      1.1  augustss /* UDESCSUB_AC_EXTENSION */
    230      1.1  augustss struct usb_audio_extension_unit {
    231      1.1  augustss 	uByte		bLength;
    232      1.1  augustss 	uByte		bDescriptorType;
    233      1.1  augustss 	uByte		bDescriptorSubtype;
    234      1.1  augustss 	uByte		bUnitId;
    235      1.1  augustss 	uWord		wExtensionCode;
    236      1.1  augustss 	uByte		bNrInPins;
    237      1.4  augustss 	uByte		baSourceId[255]; /* [bNrInPins] */
    238      1.1  augustss 	/* struct usb_audio_extension_unit_1 */
    239      1.6  augustss } UPACKED;
    240      1.1  augustss struct usb_audio_extension_unit_1 {
    241      1.1  augustss 	uByte		bNrChannels;
    242      1.1  augustss 	uWord		wChannelConfig;
    243      1.1  augustss 	uByte		iChannelNames;
    244      1.1  augustss 	uByte		bControlSize;
    245      1.4  augustss 	uByte		bmControls[255]; /* [bControlSize] */
    246      1.3  augustss #define UA_EXT_ENABLE_MASK 1
    247      1.3  augustss #define UA_EXT_ENABLE 1
    248      1.1  augustss 	/*uByte		iExtension;*/
    249      1.6  augustss } UPACKED;
    250      1.1  augustss 
    251      1.7  augustss /* USB terminal types */
    252      1.7  augustss #define UAT_UNDEFINED		0x0100
    253      1.7  augustss #define UAT_STREAM		0x0101
    254      1.7  augustss #define UAT_VENDOR		0x01ff
    255      1.7  augustss /* input terminal types */
    256      1.7  augustss #define UATI_UNDEFINED		0x0200
    257      1.7  augustss #define UATI_MICROPHONE		0x0201
    258      1.7  augustss #define UATI_DESKMICROPHONE	0x0202
    259      1.7  augustss #define UATI_PERSONALMICROPHONE	0x0203
    260      1.7  augustss #define UATI_OMNIMICROPHONE	0x0204
    261      1.7  augustss #define UATI_MICROPHONEARRAY	0x0205
    262      1.7  augustss #define UATI_PROCMICROPHONEARR	0x0206
    263      1.7  augustss /* output terminal types */
    264      1.7  augustss #define UATO_UNDEFINED		0x0300
    265      1.7  augustss #define UATO_SPEAKER		0x0301
    266      1.7  augustss #define UATO_HEADPHONES		0x0302
    267      1.7  augustss #define UATO_DISPLAYAUDIO	0x0303
    268      1.7  augustss #define UATO_DESKTOPSPEAKER	0x0304
    269      1.7  augustss #define UATO_ROOMSPEAKER	0x0305
    270      1.7  augustss #define UATO_COMMSPEAKER	0x0306
    271      1.7  augustss #define UATO_SUBWOOFER		0x0307
    272      1.7  augustss /* bidir terminal types */
    273      1.7  augustss #define UATB_UNDEFINED		0x0400
    274      1.7  augustss #define UATB_HANDSET		0x0401
    275      1.7  augustss #define UATB_HEADSET		0x0402
    276      1.7  augustss #define UATB_SPEAKERPHONE	0x0403
    277      1.7  augustss #define UATB_SPEAKERPHONEESUP	0x0404
    278      1.7  augustss #define UATB_SPEAKERPHONEECANC	0x0405
    279      1.7  augustss /* telephony terminal types */
    280      1.7  augustss #define UATT_UNDEFINED		0x0500
    281      1.7  augustss #define UATT_PHONELINE		0x0501
    282      1.7  augustss #define UATT_TELEPHONE		0x0502
    283      1.7  augustss #define UATT_DOWNLINEPHONE	0x0503
    284      1.7  augustss /* external terminal types */
    285      1.7  augustss #define UATE_UNDEFINED		0x0600
    286      1.7  augustss #define UATE_ANALOGCONN		0x0601
    287      1.7  augustss #define UATE_DIGITALAUIFC	0x0602
    288      1.7  augustss #define UATE_LINECONN		0x0603
    289      1.7  augustss #define UATE_LEGACYCONN		0x0604
    290      1.7  augustss #define UATE_SPDIF		0x0605
    291      1.7  augustss #define UATE_1394DA		0x0606
    292      1.7  augustss #define UATE_1394DV		0x0607
    293      1.7  augustss /* embedded function terminal types */
    294      1.7  augustss #define UATF_UNDEFINED		0x0700
    295      1.7  augustss #define UATF_CALIBNOISE		0x0701
    296      1.7  augustss #define UATF_EQUNOISE		0x0702
    297      1.7  augustss #define UATF_CDPLAYER		0x0703
    298      1.7  augustss #define UATF_DAT		0x0704
    299      1.7  augustss #define UATF_DCC		0x0705
    300      1.7  augustss #define UATF_MINIDISK		0x0706
    301      1.7  augustss #define UATF_ANALOGTAPE		0x0707
    302      1.7  augustss #define UATF_PHONOGRAPH		0x0708
    303      1.7  augustss #define UATF_VCRAUDIO		0x0709
    304      1.7  augustss #define UATF_VIDEODISCAUDIO	0x070a
    305      1.7  augustss #define UATF_DVDAUDIO		0x070b
    306      1.7  augustss #define UATF_TVTUNERAUDIO	0x070c
    307      1.7  augustss #define UATF_SATELLITE		0x070d
    308      1.7  augustss #define UATF_CABLETUNER		0x070e
    309      1.7  augustss #define UATF_DSS		0x070f
    310      1.7  augustss #define UATF_RADIORECV		0x0710
    311      1.7  augustss #define UATF_RADIOXMIT		0x0711
    312      1.7  augustss #define UATF_MULTITRACK		0x0712
    313      1.7  augustss #define UATF_SYNTHESIZER	0x0713
    314      1.7  augustss 
    315      1.1  augustss 
    316      1.1  augustss #define SET_CUR 0x01
    317      1.1  augustss #define GET_CUR 0x81
    318      1.1  augustss #define SET_MIN 0x02
    319      1.1  augustss #define GET_MIN 0x82
    320      1.1  augustss #define SET_MAX 0x03
    321      1.1  augustss #define GET_MAX 0x83
    322      1.1  augustss #define SET_RES 0x04
    323      1.1  augustss #define GET_RES 0x84
    324      1.1  augustss #define SET_MEM 0x05
    325      1.1  augustss #define GET_MEM 0x85
    326      1.1  augustss #define GET_STAT 0xff
    327      1.1  augustss 
    328      1.1  augustss #define MUTE_CONTROL	0x01
    329      1.1  augustss #define VOLUME_CONTROL	0x02
    330      1.1  augustss #define BASS_CONTROL	0x03
    331      1.1  augustss #define MID_CONTROL	0x04
    332      1.1  augustss #define TREBLE_CONTROL	0x05
    333      1.1  augustss #define GRAPHIC_EQUALIZER_CONTROL	0x06
    334      1.1  augustss #define AGC_CONTROL	0x07
    335      1.1  augustss #define DELAY_CONTROL	0x08
    336      1.1  augustss #define BASS_BOOST_CONTROL 0x09
    337      1.1  augustss #define LOUDNESS_CONTROL 0x0a
    338      1.1  augustss 
    339      1.1  augustss #define FU_MASK(u) (1 << ((u)-1))
    340      1.1  augustss 
    341      1.2  augustss #define MASTER_CHAN	0
    342      1.1  augustss 
    343      1.2  augustss #define AS_GENERAL	1
    344      1.2  augustss #define FORMAT_TYPE	2
    345      1.1  augustss #define FORMAT_SPECIFIC 3
    346      1.1  augustss 
    347      1.2  augustss #define UA_FMT_PCM	1
    348      1.2  augustss #define UA_FMT_PCM8	2
    349      1.2  augustss #define UA_FMT_IEEE_FLOAT 3
    350      1.2  augustss #define UA_FMT_ALAW	4
    351      1.2  augustss #define UA_FMT_MULAW	5
    352  1.7.2.1   nathanw #define UA_FMT_MPEG	0x1001
    353  1.7.2.1   nathanw #define UA_FMT_AC3	0x1002
    354      1.1  augustss 
    355  1.7.2.1   nathanw #define SAMPLING_FREQ_CONTROL	0x01
    356  1.7.2.1   nathanw #define PITCH_CONTROL		0x02
    357      1.2  augustss 
    358      1.2  augustss #define FORMAT_TYPE_UNDEFINED 0
    359      1.2  augustss #define FORMAT_TYPE_I 1
    360      1.2  augustss #define FORMAT_TYPE_II 2
    361      1.2  augustss #define FORMAT_TYPE_III 3
    362      1.3  augustss 
    363      1.4  augustss #define UA_PROC_MASK(n) (1<< ((n)-1))
    364      1.3  augustss #define PROCESS_UNDEFINED		0
    365      1.3  augustss #define  XX_ENABLE_CONTROL			1
    366      1.3  augustss #define UPDOWNMIX_PROCESS		1
    367      1.3  augustss #define  UD_ENABLE_CONTROL			1
    368      1.3  augustss #define  UD_MODE_SELECT_CONTROL			2
    369      1.3  augustss #define DOLBY_PROLOGIC_PROCESS		2
    370      1.3  augustss #define  DP_ENABLE_CONTROL			1
    371      1.3  augustss #define  DP_MODE_SELECT_CONTROL			2
    372      1.3  augustss #define P3D_STEREO_EXTENDER_PROCESS	3
    373      1.3  augustss #define  P3D_ENABLE_CONTROL			1
    374      1.3  augustss #define  P3D_SPACIOUSNESS_CONTROL		2
    375      1.3  augustss #define REVERBATION_PROCESS		4
    376      1.3  augustss #define  RV_ENABLE_CONTROL			1
    377      1.3  augustss #define  RV_LEVEL_CONTROL			2
    378      1.3  augustss #define  RV_TIME_CONTROL			3
    379      1.3  augustss #define  RV_FEEDBACK_CONTROL			4
    380      1.3  augustss #define CHORUS_PROCESS			5
    381      1.3  augustss #define  CH_ENABLE_CONTROL			1
    382      1.3  augustss #define  CH_LEVEL_CONTROL			2
    383      1.3  augustss #define  CH_RATE_CONTROL			3
    384      1.3  augustss #define  CH_DEPTH_CONTROL			4
    385      1.3  augustss #define DYN_RANGE_COMP_PROCESS		6
    386      1.3  augustss #define  DR_ENABLE_CONTROL			1
    387      1.3  augustss #define  DR_COMPRESSION_RATE_CONTROL		2
    388      1.3  augustss #define  DR_MAXAMPL_CONTROL			3
    389      1.3  augustss #define  DR_THRESHOLD_CONTROL			4
    390      1.3  augustss #define  DR_ATTACK_TIME_CONTROL			5
    391      1.3  augustss #define  DR_RELEASE_TIME_CONTROL		6
    392