Feature Unit Descriptor
struct usb_feature_unit_descriptor
{
U8 bLength; /*Size of this descriptor, in bytes:
7+(ch+1)*n*/
U8 bDescriptorType; /*CS_INTERFACE descriptor type.*/
U8 bDescriptorSubtype; /*FEATURE_UNIT descriptor subtype.*/
U8 bUnitID; /*Constant uniquely identifying the Unit
within the audio function. This value is
used in all requests to address this Unit.*/
U8 bSourceID; /*ID of the Unit or Terminal to which this
Feature Unit is connected.*/
U8 bControlSize; /*Size in bytes of an element of the
bmaControls() array: n*/
U8 *bmaControls; /* bmaControls+ 0 means A bit set to 1 indicates that the mentioned
Control is supported for master channel
0:
D0: Mute
D1: Volume
D2: Bass
D3: Mid
D4: Treble
D5: Graphic Equalizer
D6: Automatic Gain
D7: Delay
D8: Bass Boost
D9: Loudness
D10..(n*8-1): Reserved
(bmaControls + n) means A bit set to 1 indicates that the mentioned
Control is supported for logical channel ch.*/
U8 iFeature; /*Index of a string descriptor, describing
this Feature Unit.*/
};
bLength = 7+(ch+1)*n;
bDescriptorType = 0x24; 说明是 class-specific interface;
bUnitID: Unit ID, 值唯一;
bSourceID: 与之相连的Unit, Terminal ID;
bControlSize: bLength中的n值,即一个bmaControls的size;
bmaControls[0]: master channel 0 的 control,
D0: Mute
D1: Volume
D2: Bass
D3: Mid
D4: Treble
D5: Graphic Equalizer
D6: Automatic Gain
D7: Delay
D8: Bass Boost
D9: Loudness
D10..(n*8-1): Reserved;
bmaControls[1]: logical channel 1 的control
;
……
bmaControls[ch]: logical channel ch的control;
iFeature: string index;