Home | History | Annotate | Line # | Download | only in usb
uaudioreg.h revision 1.8.6.1
      1  1.8.6.1   gehenna /*	$NetBSD: uaudioreg.h,v 1.8.6.1 2002/07/15 10:36:04 gehenna 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_DEVICE		0x21
     43      1.1  augustss #define UDESC_CS_CONFIG		0x22
     44      1.1  augustss #define UDESC_CS_STRING		0x23
     45      1.1  augustss #define UDESC_CS_INTERFACE	0x24
     46      1.1  augustss #define UDESC_CS_ENDPOINT	0x25
     47      1.1  augustss 
     48      1.1  augustss #define UDESCSUB_AC_HEADER	1
     49      1.1  augustss #define UDESCSUB_AC_INPUT	2
     50      1.1  augustss #define UDESCSUB_AC_OUTPUT	3
     51      1.1  augustss #define UDESCSUB_AC_MIXER	4
     52      1.1  augustss #define UDESCSUB_AC_SELECTOR	5
     53      1.1  augustss #define UDESCSUB_AC_FEATURE	6
     54      1.1  augustss #define UDESCSUB_AC_PROCESSING	7
     55      1.1  augustss #define UDESCSUB_AC_EXTENSION	8
     56      1.1  augustss 
     57      1.1  augustss /* The first fields are identical to usb_endpoint_descriptor_t */
     58      1.1  augustss typedef struct {
     59      1.1  augustss 	uByte		bLength;
     60      1.1  augustss 	uByte		bDescriptorType;
     61      1.1  augustss 	uByte		bEndpointAddress;
     62      1.1  augustss 	uByte		bmAttributes;
     63      1.1  augustss 	uWord		wMaxPacketSize;
     64      1.1  augustss 	uByte		bInterval;
     65  1.8.6.1   gehenna 	/*
     66      1.1  augustss 	 * The following two entries are only used by the Audio Class.
     67      1.1  augustss 	 * And according to the specs the Audio Class is the only one
     68      1.1  augustss 	 * allowed to extend the endpoint descriptor.
     69      1.1  augustss 	 * Who knows what goes on in the minds of the people in the USB
     70      1.1  augustss 	 * standardization?  :-(
     71      1.1  augustss 	 */
     72      1.1  augustss 	uByte		bRefresh;
     73      1.1  augustss 	uByte		bSynchAddress;
     74      1.6  augustss } UPACKED usb_endpoint_descriptor_audio_t;
     75      1.1  augustss 
     76      1.1  augustss struct usb_audio_control_descriptor {
     77      1.1  augustss 	uByte		bLength;
     78      1.1  augustss 	uByte		bDescriptorType;
     79      1.1  augustss 	uByte		bDescriptorSubtype;
     80      1.1  augustss 	uWord		bcdADC;
     81      1.1  augustss 	uWord		wTotalLength;
     82      1.1  augustss 	uByte		bInCollection;
     83      1.1  augustss 	uByte		baInterfaceNr[1];
     84      1.6  augustss } UPACKED;
     85      1.1  augustss 
     86      1.1  augustss struct usb_audio_streaming_interface_descriptor {
     87      1.1  augustss 	uByte		bLength;
     88      1.1  augustss 	uByte		bDescriptorType;
     89      1.1  augustss 	uByte		bDescriptorSubtype;
     90      1.1  augustss 	uByte		bTerminalLink;
     91      1.1  augustss 	uByte		bDelay;
     92      1.1  augustss 	uWord		wFormatTag;
     93      1.6  augustss } UPACKED;
     94      1.1  augustss 
     95      1.1  augustss struct usb_audio_streaming_endpoint_descriptor {
     96      1.1  augustss 	uByte		bLength;
     97      1.1  augustss 	uByte		bDescriptorType;
     98      1.1  augustss 	uByte		bDescriptorSubtype;
     99      1.1  augustss 	uByte		bmAttributes;
    100      1.8      kent #define UA_SED_FREQ_CONTROL	0x01
    101      1.8      kent #define UA_SED_PITCH_CONTROL	0x02
    102      1.8      kent #define UA_SED_MAXPACKETSONLY	0x80
    103      1.1  augustss 	uByte		bLockDelayUnits;
    104      1.1  augustss 	uWord		wLockDelay;
    105      1.6  augustss } UPACKED;
    106      1.1  augustss 
    107      1.1  augustss struct usb_audio_streaming_type1_descriptor {
    108      1.1  augustss 	uByte		bLength;
    109      1.1  augustss 	uByte		bDescriptorType;
    110      1.1  augustss 	uByte		bDescriptorSubtype;
    111      1.1  augustss 	uByte		bFormatType;
    112      1.1  augustss 	uByte		bNrChannels;
    113      1.1  augustss 	uByte		bSubFrameSize;
    114      1.1  augustss 	uByte		bBitResolution;
    115      1.1  augustss 	uByte		bSamFreqType;
    116      1.1  augustss #define UA_SAMP_CONTNUOUS 0
    117      1.1  augustss 	uByte		tSamFreq[3*2]; /* room for low and high */
    118      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))
    119      1.1  augustss #define UA_SAMP_LO(p) UA_GETSAMP(p, 0)
    120      1.1  augustss #define UA_SAMP_HI(p) UA_GETSAMP(p, 1)
    121      1.6  augustss } UPACKED;
    122      1.1  augustss 
    123      1.1  augustss struct usb_audio_cluster {
    124      1.1  augustss 	uByte		bNrChannels;
    125      1.1  augustss 	uWord		wChannelConfig;
    126      1.1  augustss 	uByte		iChannelNames;
    127      1.6  augustss } UPACKED;
    128      1.1  augustss 
    129      1.1  augustss /* UDESCSUB_AC_INPUT */
    130      1.1  augustss struct usb_audio_input_terminal {
    131      1.1  augustss 	uByte		bLength;
    132      1.1  augustss 	uByte		bDescriptorType;
    133      1.1  augustss 	uByte		bDescriptorSubtype;
    134      1.1  augustss 	uByte		bTerminalId;
    135      1.1  augustss 	uWord		wTerminalType;
    136      1.1  augustss 	uByte		bAssocTerminal;
    137      1.1  augustss 	uByte		bNrChannels;
    138      1.1  augustss 	uWord		wChannelConfig;
    139      1.1  augustss 	uByte		iChannelNames;
    140      1.1  augustss 	uByte		iTerminal;
    141      1.6  augustss } UPACKED;
    142      1.1  augustss 
    143      1.1  augustss /* UDESCSUB_AC_OUTPUT */
    144      1.1  augustss struct usb_audio_output_terminal {
    145      1.1  augustss 	uByte		bLength;
    146      1.1  augustss 	uByte		bDescriptorType;
    147      1.1  augustss 	uByte		bDescriptorSubtype;
    148      1.1  augustss 	uByte		bTerminalId;
    149      1.1  augustss 	uWord		wTerminalType;
    150      1.1  augustss 	uByte		bAssocTerminal;
    151      1.1  augustss 	uByte		bSourceId;
    152      1.1  augustss 	uByte		iTerminal;
    153      1.6  augustss } UPACKED;
    154      1.1  augustss 
    155      1.1  augustss /* UDESCSUB_AC_MIXER */
    156      1.1  augustss struct usb_audio_mixer_unit {
    157      1.1  augustss 	uByte		bLength;
    158      1.1  augustss 	uByte		bDescriptorType;
    159      1.1  augustss 	uByte		bDescriptorSubtype;
    160      1.1  augustss 	uByte		bUnitId;
    161      1.1  augustss 	uByte		bNrInPins;
    162      1.4  augustss 	uByte		baSourceId[255]; /* [bNrInPins] */
    163      1.1  augustss 	/* struct usb_audio_mixer_unit_1 */
    164      1.6  augustss } UPACKED;
    165      1.1  augustss struct usb_audio_mixer_unit_1 {
    166      1.1  augustss 	uByte		bNrChannels;
    167      1.1  augustss 	uWord		wChannelConfig;
    168      1.1  augustss 	uByte		iChannelNames;
    169      1.4  augustss 	uByte		bmControls[255]; /* [bNrChannels] */
    170      1.1  augustss 	/*uByte		iMixer;*/
    171      1.6  augustss } UPACKED;
    172      1.1  augustss 
    173      1.1  augustss /* UDESCSUB_AC_SELECTOR */
    174      1.1  augustss struct usb_audio_selector_unit {
    175      1.1  augustss 	uByte		bLength;
    176      1.1  augustss 	uByte		bDescriptorType;
    177      1.1  augustss 	uByte		bDescriptorSubtype;
    178      1.1  augustss 	uByte		bUnitId;
    179      1.1  augustss 	uByte		bNrInPins;
    180      1.4  augustss 	uByte		baSourceId[255]; /* [bNrInPins] */
    181      1.1  augustss 	/* uByte	iSelector; */
    182      1.6  augustss } UPACKED;
    183      1.1  augustss 
    184      1.1  augustss /* UDESCSUB_AC_FEATURE */
    185      1.1  augustss struct usb_audio_feature_unit {
    186      1.1  augustss 	uByte		bLength;
    187      1.1  augustss 	uByte		bDescriptorType;
    188      1.1  augustss 	uByte		bDescriptorSubtype;
    189      1.1  augustss 	uByte		bUnitId;
    190      1.1  augustss 	uByte		bSourceId;
    191      1.1  augustss 	uByte		bControlSize;
    192      1.1  augustss 	uByte		bmaControls[255]; /* size for more than enough */
    193      1.1  augustss 	/* uByte	iFeature; */
    194      1.6  augustss } UPACKED;
    195      1.1  augustss 
    196      1.1  augustss /* UDESCSUB_AC_PROCESSING */
    197      1.1  augustss struct usb_audio_processing_unit {
    198      1.1  augustss 	uByte		bLength;
    199      1.1  augustss 	uByte		bDescriptorType;
    200      1.1  augustss 	uByte		bDescriptorSubtype;
    201      1.1  augustss 	uByte		bUnitId;
    202      1.1  augustss 	uWord		wProcessType;
    203      1.1  augustss 	uByte		bNrInPins;
    204      1.4  augustss 	uByte		baSourceId[255]; /* [bNrInPins] */
    205      1.1  augustss 	/* struct usb_audio_processing_unit_1 */
    206      1.6  augustss } UPACKED;
    207      1.1  augustss struct usb_audio_processing_unit_1{
    208      1.1  augustss 	uByte		bNrChannels;
    209      1.1  augustss 	uWord		wChannelConfig;
    210      1.1  augustss 	uByte		iChannelNames;
    211      1.1  augustss 	uByte		bControlSize;
    212      1.4  augustss 	uByte		bmControls[255]; /* [bControlSize] */
    213      1.3  augustss #define UA_PROC_ENABLE_MASK 1
    214      1.6  augustss } UPACKED;
    215      1.4  augustss 
    216      1.4  augustss struct usb_audio_processing_unit_updown {
    217      1.4  augustss 	uByte		iProcessing;
    218      1.4  augustss 	uByte		bNrModes;
    219      1.4  augustss 	uWord		waModes[255]; /* [bNrModes] */
    220      1.6  augustss } UPACKED;
    221      1.1  augustss 
    222      1.1  augustss /* UDESCSUB_AC_EXTENSION */
    223      1.1  augustss struct usb_audio_extension_unit {
    224      1.1  augustss 	uByte		bLength;
    225      1.1  augustss 	uByte		bDescriptorType;
    226      1.1  augustss 	uByte		bDescriptorSubtype;
    227      1.1  augustss 	uByte		bUnitId;
    228      1.1  augustss 	uWord		wExtensionCode;
    229      1.1  augustss 	uByte		bNrInPins;
    230      1.4  augustss 	uByte		baSourceId[255]; /* [bNrInPins] */
    231      1.1  augustss 	/* struct usb_audio_extension_unit_1 */
    232      1.6  augustss } UPACKED;
    233      1.1  augustss struct usb_audio_extension_unit_1 {
    234      1.1  augustss 	uByte		bNrChannels;
    235      1.1  augustss 	uWord		wChannelConfig;
    236      1.1  augustss 	uByte		iChannelNames;
    237      1.1  augustss 	uByte		bControlSize;
    238      1.4  augustss 	uByte		bmControls[255]; /* [bControlSize] */
    239      1.3  augustss #define UA_EXT_ENABLE_MASK 1
    240      1.3  augustss #define UA_EXT_ENABLE 1
    241      1.1  augustss 	/*uByte		iExtension;*/
    242      1.6  augustss } UPACKED;
    243      1.1  augustss 
    244      1.7  augustss /* USB terminal types */
    245      1.7  augustss #define UAT_UNDEFINED		0x0100
    246      1.7  augustss #define UAT_STREAM		0x0101
    247      1.7  augustss #define UAT_VENDOR		0x01ff
    248      1.7  augustss /* input terminal types */
    249      1.7  augustss #define UATI_UNDEFINED		0x0200
    250      1.7  augustss #define UATI_MICROPHONE		0x0201
    251      1.7  augustss #define UATI_DESKMICROPHONE	0x0202
    252      1.7  augustss #define UATI_PERSONALMICROPHONE	0x0203
    253      1.7  augustss #define UATI_OMNIMICROPHONE	0x0204
    254      1.7  augustss #define UATI_MICROPHONEARRAY	0x0205
    255      1.7  augustss #define UATI_PROCMICROPHONEARR	0x0206
    256      1.7  augustss /* output terminal types */
    257      1.7  augustss #define UATO_UNDEFINED		0x0300
    258      1.7  augustss #define UATO_SPEAKER		0x0301
    259      1.7  augustss #define UATO_HEADPHONES		0x0302
    260      1.7  augustss #define UATO_DISPLAYAUDIO	0x0303
    261      1.7  augustss #define UATO_DESKTOPSPEAKER	0x0304
    262      1.7  augustss #define UATO_ROOMSPEAKER	0x0305
    263      1.7  augustss #define UATO_COMMSPEAKER	0x0306
    264      1.7  augustss #define UATO_SUBWOOFER		0x0307
    265      1.7  augustss /* bidir terminal types */
    266      1.7  augustss #define UATB_UNDEFINED		0x0400
    267      1.7  augustss #define UATB_HANDSET		0x0401
    268      1.7  augustss #define UATB_HEADSET		0x0402
    269      1.7  augustss #define UATB_SPEAKERPHONE	0x0403
    270      1.7  augustss #define UATB_SPEAKERPHONEESUP	0x0404
    271      1.7  augustss #define UATB_SPEAKERPHONEECANC	0x0405
    272      1.7  augustss /* telephony terminal types */
    273      1.7  augustss #define UATT_UNDEFINED		0x0500
    274      1.7  augustss #define UATT_PHONELINE		0x0501
    275      1.7  augustss #define UATT_TELEPHONE		0x0502
    276      1.7  augustss #define UATT_DOWNLINEPHONE	0x0503
    277      1.7  augustss /* external terminal types */
    278      1.7  augustss #define UATE_UNDEFINED		0x0600
    279      1.7  augustss #define UATE_ANALOGCONN		0x0601
    280      1.7  augustss #define UATE_DIGITALAUIFC	0x0602
    281      1.7  augustss #define UATE_LINECONN		0x0603
    282      1.7  augustss #define UATE_LEGACYCONN		0x0604
    283      1.7  augustss #define UATE_SPDIF		0x0605
    284      1.7  augustss #define UATE_1394DA		0x0606
    285      1.7  augustss #define UATE_1394DV		0x0607
    286      1.7  augustss /* embedded function terminal types */
    287      1.7  augustss #define UATF_UNDEFINED		0x0700
    288      1.7  augustss #define UATF_CALIBNOISE		0x0701
    289      1.7  augustss #define UATF_EQUNOISE		0x0702
    290      1.7  augustss #define UATF_CDPLAYER		0x0703
    291      1.7  augustss #define UATF_DAT		0x0704
    292      1.7  augustss #define UATF_DCC		0x0705
    293      1.7  augustss #define UATF_MINIDISK		0x0706
    294      1.7  augustss #define UATF_ANALOGTAPE		0x0707
    295      1.7  augustss #define UATF_PHONOGRAPH		0x0708
    296      1.7  augustss #define UATF_VCRAUDIO		0x0709
    297      1.7  augustss #define UATF_VIDEODISCAUDIO	0x070a
    298      1.7  augustss #define UATF_DVDAUDIO		0x070b
    299      1.7  augustss #define UATF_TVTUNERAUDIO	0x070c
    300      1.7  augustss #define UATF_SATELLITE		0x070d
    301      1.7  augustss #define UATF_CABLETUNER		0x070e
    302      1.7  augustss #define UATF_DSS		0x070f
    303      1.7  augustss #define UATF_RADIORECV		0x0710
    304      1.7  augustss #define UATF_RADIOXMIT		0x0711
    305      1.7  augustss #define UATF_MULTITRACK		0x0712
    306      1.7  augustss #define UATF_SYNTHESIZER	0x0713
    307      1.7  augustss 
    308      1.1  augustss 
    309      1.1  augustss #define SET_CUR 0x01
    310      1.1  augustss #define GET_CUR 0x81
    311      1.1  augustss #define SET_MIN 0x02
    312      1.1  augustss #define GET_MIN 0x82
    313      1.1  augustss #define SET_MAX 0x03
    314      1.1  augustss #define GET_MAX 0x83
    315      1.1  augustss #define SET_RES 0x04
    316      1.1  augustss #define GET_RES 0x84
    317      1.1  augustss #define SET_MEM 0x05
    318      1.1  augustss #define GET_MEM 0x85
    319      1.1  augustss #define GET_STAT 0xff
    320      1.1  augustss 
    321      1.1  augustss #define MUTE_CONTROL	0x01
    322      1.1  augustss #define VOLUME_CONTROL	0x02
    323      1.1  augustss #define BASS_CONTROL	0x03
    324      1.1  augustss #define MID_CONTROL	0x04
    325      1.1  augustss #define TREBLE_CONTROL	0x05
    326      1.1  augustss #define GRAPHIC_EQUALIZER_CONTROL	0x06
    327      1.1  augustss #define AGC_CONTROL	0x07
    328      1.1  augustss #define DELAY_CONTROL	0x08
    329      1.1  augustss #define BASS_BOOST_CONTROL 0x09
    330      1.1  augustss #define LOUDNESS_CONTROL 0x0a
    331      1.1  augustss 
    332      1.1  augustss #define FU_MASK(u) (1 << ((u)-1))
    333      1.1  augustss 
    334      1.2  augustss #define MASTER_CHAN	0
    335      1.1  augustss 
    336      1.2  augustss #define AS_GENERAL	1
    337      1.2  augustss #define FORMAT_TYPE	2
    338      1.1  augustss #define FORMAT_SPECIFIC 3
    339      1.1  augustss 
    340      1.2  augustss #define UA_FMT_PCM	1
    341      1.2  augustss #define UA_FMT_PCM8	2
    342      1.2  augustss #define UA_FMT_IEEE_FLOAT 3
    343      1.2  augustss #define UA_FMT_ALAW	4
    344      1.2  augustss #define UA_FMT_MULAW	5
    345      1.8      kent #define UA_FMT_MPEG	0x1001
    346      1.8      kent #define UA_FMT_AC3	0x1002
    347      1.1  augustss 
    348      1.8      kent #define SAMPLING_FREQ_CONTROL	0x01
    349      1.8      kent #define PITCH_CONTROL		0x02
    350      1.2  augustss 
    351      1.2  augustss #define FORMAT_TYPE_UNDEFINED 0
    352      1.2  augustss #define FORMAT_TYPE_I 1
    353      1.2  augustss #define FORMAT_TYPE_II 2
    354      1.2  augustss #define FORMAT_TYPE_III 3
    355      1.3  augustss 
    356      1.4  augustss #define UA_PROC_MASK(n) (1<< ((n)-1))
    357      1.3  augustss #define PROCESS_UNDEFINED		0
    358      1.3  augustss #define  XX_ENABLE_CONTROL			1
    359      1.3  augustss #define UPDOWNMIX_PROCESS		1
    360      1.3  augustss #define  UD_ENABLE_CONTROL			1
    361      1.3  augustss #define  UD_MODE_SELECT_CONTROL			2
    362      1.3  augustss #define DOLBY_PROLOGIC_PROCESS		2
    363      1.3  augustss #define  DP_ENABLE_CONTROL			1
    364      1.3  augustss #define  DP_MODE_SELECT_CONTROL			2
    365      1.3  augustss #define P3D_STEREO_EXTENDER_PROCESS	3
    366      1.3  augustss #define  P3D_ENABLE_CONTROL			1
    367      1.3  augustss #define  P3D_SPACIOUSNESS_CONTROL		2
    368      1.3  augustss #define REVERBATION_PROCESS		4
    369      1.3  augustss #define  RV_ENABLE_CONTROL			1
    370      1.3  augustss #define  RV_LEVEL_CONTROL			2
    371      1.3  augustss #define  RV_TIME_CONTROL			3
    372      1.3  augustss #define  RV_FEEDBACK_CONTROL			4
    373      1.3  augustss #define CHORUS_PROCESS			5
    374      1.3  augustss #define  CH_ENABLE_CONTROL			1
    375      1.3  augustss #define  CH_LEVEL_CONTROL			2
    376      1.3  augustss #define  CH_RATE_CONTROL			3
    377      1.3  augustss #define  CH_DEPTH_CONTROL			4
    378      1.3  augustss #define DYN_RANGE_COMP_PROCESS		6
    379      1.3  augustss #define  DR_ENABLE_CONTROL			1
    380      1.3  augustss #define  DR_COMPRESSION_RATE_CONTROL		2
    381      1.3  augustss #define  DR_MAXAMPL_CONTROL			3
    382      1.3  augustss #define  DR_THRESHOLD_CONTROL			4
    383      1.3  augustss #define  DR_ATTACK_TIME_CONTROL			5
    384      1.3  augustss #define  DR_RELEASE_TIME_CONTROL		6
    385