1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* 23 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 */ 26 27 28 #ifndef _SYS_USB_AUDIO_H 29 #define _SYS_USB_AUDIO_H 30 31 #pragma ident "%Z%%M% %I% %E% SMI" 32 33 #ifdef __cplusplus 34 extern "C" { 35 #endif 36 37 /* 38 * macros from audio spec 1.0 39 * 40 * audio class-specific descriptor types (Appendix A.4) 41 */ 42 #define USB_AUDIO_CS_DEVICE 0x21 43 #define USB_AUDIO_CS_CONFIGURATION 0x22 44 #define USB_AUDIO_CS_STRING 0x23 45 #define USB_AUDIO_CS_INTERFACE 0x24 46 #define USB_AUDIO_CS_ENDPOINT 0x25 47 48 /* audio class-specific AC Interface Descriptor Subtypes (A.5) */ 49 #define USB_AUDIO_HEADER 0x01 50 #define USB_AUDIO_INPUT_TERMINAL 0x02 51 #define USB_AUDIO_OUTPUT_TERMINAL 0x03 52 #define USB_AUDIO_MIXER_UNIT 0x04 53 #define USB_AUDIO_SELECTOR_UNIT 0x05 54 #define USB_AUDIO_FEATURE_UNIT 0x06 55 #define USB_AUDIO_PROCESSING_UNIT 0x07 56 #define USB_AUDIO_EXTENSION_UNIT 0x08 57 58 /* audio class-specific AS Interface descriptor Subtypes (A.6) */ 59 #define USB_AUDIO_AS_GENERAL 0x01 60 #define USB_AUDIO_AS_FORMAT_TYPE 0x02 61 #define USB_AUDIO_AS_FORMAT_SPECIFIC 0x03 62 63 /* Processing Uniti Process Types (A.7) */ 64 #define USB_AUDIO_UP_DOWNMIX_PROCESS 0x01 65 #define USB_AUDIO_DOLBY_PROLOGIC_PROCESS 0x02 66 #define USB_AUDIO_3D_STEREO_EXTENDER_PROCESS 0x03 67 #define USB_AUDIO_REVERBERATION_PROCESS 0x04 68 #define USB_AUDIO_CHORUS_PROCESS 0x05 69 #define USB_AUDIO_DYN_RANGE_COMP_PROCESS 0x06 70 71 /* Audio Class-specific endpoint descriptor Subtypes (A.8) */ 72 #define USB_AUDIO_EP_GENERAL 0x07 73 74 /* Audio Class-specific Request Codes */ 75 #define USB_AUDIO_SET_CUR 0x01 76 #define USB_AUDIO_GET_CUR 0x81 77 #define USB_AUDIO_SET_MIN 0x02 78 #define USB_AUDIO_GET_MIN 0x82 79 #define USB_AUDIO_SET_MAX 0x03 80 #define USB_AUDIO_GET_MAX 0x83 81 #define USB_AUDIO_SET_RES 0x04 82 #define USB_AUDIO_GET_RES 0x84 83 #define USB_AUDIO_SET_MEM 0x05 84 #define USB_AUDIO_GET_MEM 0x85 85 #define USB_AUDIO_GET_STAT 0xff 86 87 /* Terminal Control Selectors (A.10.1) */ 88 #define USB_AUDIO_COPY_PROTECT_CONTROL 0x01 89 90 /* Feature Unit Control Selectors (A.1.10.2) */ 91 #define USB_AUDIO_MUTE_CONTROL 0x01 92 #define USB_AUDIO_VOLUME_CONTROL 0x02 93 #define USB_AUDIO_BASS_CONTROL 0x03 94 #define USB_AUDIO_MID_CONTROL 0x04 95 #define USB_AUDIO_TREBLE_CONTROL 0x05 96 #define USB_AUDIO_GRAPHIC_CONTROL 0x06 97 #define USB_AUDIO_AUTOMATIC_GAIN_CONTROL 0x07 98 #define USB_AUDIO_DELAY_CONTROL 0x08 99 #define USB_AUDIO_BASS_BOOST_CONTROL 0x09 100 #define USB_AUDIO_LOUDNESS_CONTROL 0x0A 101 102 /* the spec defines volume control value of 0x8000 as silence */ 103 #define USB_AUDIO_VOLUME_SILENCE 0x8000 104 105 /* Up/Down-mix Processing Unit Control Selectors (A.10.3.1) */ 106 #define USB_AUDIO_UD_ENABLE_CONTROL 0x01 107 #define USB_AUDIO_UD_MODE_SELECT_CONTROL 0x02 108 109 /* Dolby Prologic Processing Unit Control Selectors (A.10.3.2) */ 110 #define USB_AUDIO_DP_ENABLE_CONTROL 0x01 111 #define USB_AUDIO_DP_MODE_SELECT_CONTROL 0x02 112 113 /* Reverberation Processing Unit Control Selectors (A.10.3.3) */ 114 #define USB_AUDIO_RV_ENABLE_CONTROL 0x01 115 #define USB_AUDIO_REVERB_LEVEL_CONTROL 0x02 116 #define USB_AUDIO_REVERB_TIME_CONTROL 0x03 117 #define USB_AUDIO_REVERB_FEEDBACK_CONTROL 0x04 118 119 /* Chorus Processing Unit Control Selectors (A.10.3.5) */ 120 #define USB_AUDIO_CH_ENABLE_CONTROL 0x01 121 #define USB_AUDIO_CHORUS_LEVEL_CONTROL 0x02 122 #define USB_AUDIO_CHORUS_RATE_CONTROL 0x03 123 #define USB_AUDIO_CHORUS_DEPTH_CONTROL 0x04 124 125 /* Dynamic range compressor Processing Unit Control Selectors (A.10.3.6) */ 126 #define USB_AUDIO_DR_ENABLE_CONTROL 0x01 127 #define USB_AUDIO_COMPRESSION_RATE_CONTROL 0x02 128 #define USB_AUDIO_MAXAMPL_CONTROL 0x03 129 #define USB_AUDIO_THRESHOLD_CONTROL 0x04 130 #define USB_AUDIO_ATTACK_TIME 0x05 131 #define USB_AUDIO_RELEASE_TIME 0x06 132 133 /* Extension Unit Control Selectors (A.10.4) */ 134 #define USB_AUDIO_XU_ENABLE_CONTROL 0x01 135 136 /* Endpoint Control Selectors (A.10.5) */ 137 #define USB_AUDIO_SAMPLING_FREQ_CONTROL 0x01 138 #define USB_AUDIO_PITCH_CONTROL 0x02 139 140 /* descriptors */ 141 /* Class specific AC interface header descriptor (4.3.2) */ 142 typedef struct usb_audio_cs_if_descr { 143 uint8_t bLength; /* size */ 144 uint8_t bDescriptorType; /* CS_INTERFACE */ 145 uint8_t bDescriptorSubType; /* HEADER */ 146 uint16_t bcdADC; /* release # */ 147 uint16_t wTotalLength; /* the whole wad */ 148 uint8_t blnCollection; /* # interfaces */ 149 uint8_t baInterfaceNr[1]; /* interface # */ 150 } usb_audio_cs_if_descr_t; 151 152 #define CS_AC_IF_HEADER_FORMAT "cccsscc" 153 #define CS_AC_IF_HEADER_SIZE 9 154 155 /* input terminal descriptor (4.3.2.1) */ 156 typedef struct usb_audio_input_term_descr { 157 uint8_t bLength; /* size */ 158 uint8_t bDescriptorType; /* CS_INTERFACE */ 159 uint8_t bDescriptorSubType; /* INPUT_TERMINAL */ 160 uint8_t bTerminalID; /* unique identifier */ 161 uint16_t wTerminalType; /* type of terminal */ 162 uint8_t bAssocTerminal; /* identifier */ 163 uint8_t bNrChannels; /* # channels */ 164 uint16_t wChannelConfig; /* logical channel loc */ 165 uint8_t iChannelNames; /* string index */ 166 uint8_t iTerminal; /* terminal string index */ 167 } usb_audio_input_term_descr_t; 168 169 #define CS_AC_INPUT_TERM_FORMAT "ccccsccscc" 170 #define CS_AC_INPUT_TERM_SIZE 12 171 172 /* output terminal descriptor (4.3.2.2) */ 173 typedef struct usb_audio_output_term_descr { 174 uint8_t bLength; /* size */ 175 uint8_t bDescriptorType; /* CS_INTERFACE */ 176 uint8_t bDescriptorSubType; /* OUTPUT_TERMINAL */ 177 uint8_t bTerminalID; /* unique identifier */ 178 uint16_t wTerminalType; /* type of terminal */ 179 uint8_t bAssocTerminal; /* identifier */ 180 uint8_t bSourceID; /* identifier */ 181 uint8_t iTerminal; /* terminal string index */ 182 } usb_audio_output_term_descr_t; 183 184 #define CS_AC_OUTPUT_TERM_FORMAT "ccccsccc" 185 #define CS_AC_OUTPUT_TERM_SIZE 9 186 187 /* 188 * mixer unit descriptor (4.3.2.3) 189 * this is awkward descriptors because of the variable size array in 190 * the middle (baSourceID). 191 */ 192 typedef struct usb_audio_mixer_unit_descr1 { 193 uint8_t bLength; /* size */ 194 uint8_t bDescriptorType; /* CS_INTERFACE */ 195 uint8_t bDescriptorSubType; /* MIXER_UNIT */ 196 uint8_t bUnitID; /* identifier */ 197 uint8_t bNrInPins; /* # input pins */ 198 uint8_t baSourceID[1]; /* idenfifiers */ 199 } usb_audio_mixer_unit_descr1_t; 200 201 #define CS_AC_MIXER_UNIT_DESCR1_FORMAT "cccccc" 202 #define CS_AC_MIXER_UNIT_DESCR1_SIZE 6 203 204 typedef struct usb_audio_mixer_unit_descr2 { 205 uint8_t bNrChannels; /* # channels */ 206 uint16_t wChannelConfig; /* location of channels */ 207 uint8_t iChannelNames; /* string index */ 208 uint8_t bmControls[1]; /* bitmap prog. ctlrs */ 209 } usb_audio_mixer_unit_descr2_t; 210 211 typedef struct usb_audio_mixer_unit_descr3 { 212 uint8_t iMixer; /* string index */ 213 } usb_audio_mixer_unit_descr3_t; 214 215 /* selector unit descriptor (4.3.2.4) */ 216 typedef struct usb_audio_selector_unit_descr1 { 217 uint8_t bLength; /* size */ 218 uint8_t bDescriptorType; /* CS_INTERFACE */ 219 uint8_t bDescriptorSubType; /* SELECTOR_UNIT */ 220 uint8_t bUnitID; /* identifier */ 221 uint8_t bNrInPins; /* input pins on the unit */ 222 uint8_t baSourceID[1]; /* ID of pins */ 223 } usb_audio_selector_unit_descr1_t; 224 225 #define CS_AC_SELECTOR_UNIT_DESCR1_FORMAT "cccccc" 226 #define CS_AC_SELECTOR_UNIT_DESCR1_SIZE 6 227 228 typedef struct usb_audio_selector_unit_descr2 { 229 uint8_t iSelector[1]; /* string index */ 230 } usb_audio_selector_unit_descr2_t; 231 232 /* feature unit descriptor (4.3.2.5) */ 233 typedef struct usb_audio_feature_unit_descr1 { 234 uint8_t bLength; /* size */ 235 uint8_t bDescriptorType; /* CS_INTERFACE */ 236 uint8_t bDescriptorSubType; /* FEATURE_UNIT */ 237 uint8_t bUnitID; /* identifier */ 238 uint8_t bSourceID; /* identifier */ 239 uint8_t bControlSize; /* size of bmaControls */ 240 uint8_t bmaControls[1]; /* bitmap of features */ 241 } usb_audio_feature_unit_descr1_t; 242 243 #define CS_AC_FEATURE_UNIT_FORMAT "ccccccc" 244 #define CS_AC_FEATURE_UNIT_SIZE 7 245 246 typedef struct usb_audio_feature_unit_descr2 { 247 uint8_t iFeature; /* string index */ 248 } usb_audio_feature_unit_descr2_t; 249 250 /* processing unit descriptor (4.3.2.6) */ 251 typedef struct usb_audio_processing_unit_descr1 { 252 uint8_t bLength; /* size */ 253 uint8_t bDescriptorType; /* CS_INTERFACE */ 254 uint8_t bDescriptorSubType; /* PROCESSING_UNIT */ 255 uint8_t bUnitID; /* identifier */ 256 uint8_t wProcessType; /* type of processing */ 257 uint8_t bNrInPins; /* input pins on the unit */ 258 uint8_t baSourceID[1]; /* ID of pins */ 259 } usb_audio_processing_unit_descr1_t; 260 261 #define CS_AC_PROCESSING_UNIT_DESCR1_FORMAT "ccccccc" 262 #define CS_AC_PROCESSING_UNIT_DESCR1_SIZE 7 263 264 typedef struct usb_audio_processing_unit_descr2 { 265 uint8_t bNrChannels; /* # log. output channels */ 266 uint16_t wChannelConfig; /* spatial location */ 267 uint8_t iChannelnames; /* index to name */ 268 uint8_t bControlSize; /* size in bytes */ 269 uint8_t bmControls[1]; /* control bits */ 270 } usb_audio_processing_unit_descr2_t; 271 272 typedef struct usb_audio_processing_unit_descr3 { 273 uint8_t iProcessing; /* index to string descr */ 274 uint8_t Process_specific[1]; 275 } usb_audio_processing_unit_descr3_t; 276 277 /* extension unit descriptor (4.3.2.7) */ 278 typedef struct usb_audio_extension_unit_descr1 { 279 uint8_t bLength; /* size */ 280 uint8_t bDescriptorType; /* CS_INTERFACE */ 281 uint8_t bDescriptorSubType; /* PROCESSING_UNIT */ 282 uint8_t wExtensionCode; /* vendor spec. */ 283 uint8_t bUnitID; /* identifier */ 284 uint8_t bNrInPins; /* input pins on the unit */ 285 uint8_t baSourceID[1]; /* ID of pins */ 286 } usb_audio_extension_unit_descr1_t; 287 288 #define CS_AC_EXTENSION_UNIT_DESCR1_FORMAT "ccccccc" 289 #define CS_AC_EXTENSION_UNIT_DESCR1_SIZE 7 290 291 typedef struct usb_audio_extension_unit_descr2 { 292 uint8_t bNrChannels; /* # log. output channels */ 293 uint16_t wChannelConfig; /* spatial location */ 294 uint8_t iChannelnames; /* index to name */ 295 uint8_t bControlSize; /* size in bytes */ 296 uint8_t bmControls[1]; /* control bits */ 297 } usb_audio_extension_unit_descr2_t; 298 299 typedef struct usb_audio_extension_unit_descr3 { 300 uint8_t iExtension; /* index to string descr */ 301 } usb_audio_extension_unit_descr3_t; 302 303 304 305 /* associated interface descriptor (4.3.2.8) */ 306 typedef struct usb_audio_associated_if_descr { 307 uint8_t blength; /* size */ 308 uint8_t bDescriptorType; /* CS_INTERFACE */ 309 uint8_t bDescriptorSubType; /* ASSOC Interface */ 310 uint8_t bInterfaceNr; /* interface number */ 311 } usb_audio_associated_if_descr_t; 312 313 314 /* 315 * class specific AS interface descriptor (4.5.2) 316 */ 317 typedef struct usb_audio_as_if_descr { 318 uint8_t blength; /* size */ 319 uint8_t bDescriptorType; /* CS_INTERFACE */ 320 uint8_t bDescriptorSubType; /* AS_GENERAL */ 321 uint8_t bTerminalLink; /* identifier */ 322 uint8_t bDelay; /* delay in data path */ 323 uint16_t wFormatTag; /* data format */ 324 } usb_audio_as_if_descr_t; 325 326 #define AS_IF_DESCR_FORMAT "cccccs" 327 #define AS_IF_DESCR_SIZE 7 328 329 330 /* class specific AS isochronous audio data ep descr (4.6.1.2) */ 331 typedef struct usb_audio_as_isoc_ep_descr { 332 uint8_t blength; /* size */ 333 uint8_t bDescriptorType; /* CS_ENDPOINT */ 334 uint8_t bDescriptorSubType; /* EP_GENERAL */ 335 uint8_t bmAttributes; /* bitmap of attributes */ 336 uint8_t bLockDelayUnits; /* type of units */ 337 uint16_t wLockDelay; /* lock of internal clock */ 338 } usb_audio_as_isoc_ep_descr_t; 339 340 #define AS_ISOC_EP_DESCR_FORMAT "5cs" 341 #define AS_ISOC_EP_DESCR_SIZE 7 342 343 /* 344 * data format descriptor, no need for parse format since 345 * all fields are chars 346 */ 347 typedef struct usb_audio_type1_format_descr { 348 uint8_t blength; /* size */ 349 uint8_t bDescriptorType; /* CS_INTERFACE */ 350 uint8_t bDescriptorSubType; /* FORMAT_TYPE */ 351 uint8_t bFormatType; /* FORMAT_TYPE_1 */ 352 uint8_t bNrChannels; /* #phys channels */ 353 uint8_t bSubFrameSize; /* bytes per frame */ 354 uint8_t bBitResolution; /* bits in subframe */ 355 uint8_t bSamFreqType; /* sampling freq type */ 356 uint8_t bSamFreqs[6]; /* sampling freqs */ 357 } usb_audio_type1_format_descr_t; 358 359 #define AUDIO_TYPE1_FORMAT_FORMAT "10c" 360 #define AUDIO_TYPE1_FORMAT_SIZE 10 361 362 /* audio data format codes */ 363 #define USB_AUDIO_FORMAT_TYPE1_PCM 0x0001 364 #define USB_AUDIO_FORMAT_TYPE1_PCM8 0x0002 365 #define USB_AUDIO_FORMAT_TYPE1_IEEE_FLOAT 0x0003 366 #define USB_AUDIO_FORMAT_TYPE1_ALAW 0x0004 367 #define USB_AUDIO_FORMAT_TYPE1_MULAW 0x0005 368 369 #define USB_AUDIO_FORMAT_TYPE2_MPEG 0x1001 370 #define USB_AUDIO_FORMAT_TYPE2_AC 0x1002 371 372 #define USB_AUDIO_FORMAT_TYPE3_IEC1937_AC_3 0x2001 373 #define USB_AUDIO_FORMAT_TYPE3_IEC1937_MPEG1_L1 0x2002 374 #define USB_AUDIO_FORMAT_TYPE3_IEC1937_MPEG1_L2 0x2003 375 #define USB_AUDIO_FORMAT_TYPE3_IEC1937_MPEG2_NOEXT 0x2003 376 #define USB_AUDIO_FORMAT_TYPE3_IEC1937_MPEG2_EXT 0x2004 377 #define USB_AUDIO_FORMAT_TYPE3_IEC1937_MPEG2_L1_LS 0x2005 378 #define USB_AUDIO_FORMAT_TYPE3_IEC1937_MPEG2_L2_LS 0x2006 379 380 #define USB_AUDIO_FORMAT_TYPE_1 0x01 381 #define USB_AUDIO_FORMAT_TYPE_2 0x02 382 #define USB_AUDIO_FORMAT_TYPE_3 0x03 383 384 /* format specific control selectors */ 385 #define USB_AUDIO_MP_DUAL_CHANNEL_CONTROL 0x01 386 #define USB_AUDIO_MP_SECOND_STEREO_CONTROL 0x02 387 #define USB_AUDIO_MP_MULTILINGUAL 0x03 388 #define USB_AUDIO_MP_DYN_RANGE_CONTROL 0x04 389 #define USB_AUDIO_MP_SCALING_CONTROL 0x05 390 #define USB_AUDIO_MP_HILO_SCALING_CONTROL 0x06 391 392 #define USB_AUDIO_AC_MODE_CONTROL 0x01 393 #define USB_AUDIO_AC_DYN_RANGE_CONTROL 0x02 394 #define USB_AUDIO_AC_SCALING_CONTROL 0x03 395 #define USB_AUDIO_AC_HILO_SCALING_CONTROL 0x04 396 397 /* From USB Device Class Definition for Terminal Types */ 398 /* USB Terminal Types (2.1) */ 399 #define USB_AUDIO_TERM_TYPE_STREAMING 0x0101 400 #define USB_AUDIO_TERM_TYPE_VS 0x01ff 401 402 /* Input term types (2.2) */ 403 #define USB_AUDIO_TERM_TYPE_MICROPHONE 0x0201 404 #define USB_AUDIO_TERM_TYPE_DT_MICROPHONE 0x0202 405 #define USB_AUDIO_TERM_TYPE_PERS_MICROPHONE 0x0203 406 #define USB_AUDIO_TERM_TYPE_OMNI_DIR_MICROPHONE 0x0204 407 #define USB_AUDIO_TERM_TYPE_MICROPHONE_ARRAY 0x0205 408 #define USB_AUDIO_TERM_TYPE_PROCESSING_MIC_ARRAY 0x0206 409 410 /* output term types (2.3) */ 411 #define USB_AUDIO_TERM_TYPE_SPEAKER 0x0301 412 #define USB_AUDIO_TERM_TYPE_HEADPHONES 0x0302 413 #define USB_AUDIO_TERM_TYPE_DISPLAY_AUDIO 0x0303 414 #define USB_AUDIO_TERM_TYPE_DT_SPEAKER 0x0304 415 #define USB_AUDIO_TERM_TYPE_ROOM_SPEAKER 0x0305 416 #define USB_AUDIO_TERM_TYPE_COMM_SPEAKER 0x0306 417 #define USB_AUDIO_TERM_TYPE_LF_EFFECTS_SPEAKER 0x0307 418 419 /* bi-directional terminal types (2.4) */ 420 #define USB_AUDIO_TERM_TYPE_HANDSET 0x0401 421 #define USB_AUDIO_TERM_TYPE_HEADSET 0x0402 422 #define USB_AUDIO_TERM_TYPE_SPEAKERPHONE 0x0403 423 #define USB_AUDIO_TERM_TYPE_ECHO_SUPP_SPEAKERPHONE 0x0404 424 #define USB_AUDIO_TERM_TYPE_ECHO_CANCEL_SPEAKERPHONE 0x0405 425 426 /* telephony terminal types (2.5) */ 427 #define USB_AUDIO_TERM_TYPE_PHONE_LINE 0x0501 428 #define USB_AUDIO_TERM_TYPE_TELEPHONE 0x0502 429 #define USB_AUDIO_TERM_TYPE_DOWN_LINE_PHONE 0x0503 430 431 /* external terminal types (2.6) */ 432 #define USB_AUDIO_TERM_TYPE_ANALOG_CONNECTOR 0x0601 433 #define USB_AUDIO_TERM_TYPE_DIGITAL_AUDIO_IF 0x0602 434 #define USB_AUDIO_TERM_TYPE_LINE_CONNECTOR 0x0603 435 #define USB_AUDIO_TERM_TYPE_LEGACY_AUDIO_CONNECTOR 0x0604 436 #define USB_AUDIO_TERM_TYPE_SPDIF_IF 0x0605 437 #define USB_AUDIO_TERM_TYPE_1394_DA_STREAM 0x0606 438 #define USB_AUDIO_TERM_TYPE_1394_DV_STREAM_SNDTRCK 0x0607 439 440 /* embedded function term types (2.7) */ 441 #define USB_AUDIO_TERM_TYPE_LVL_CAL_NOISE_SRC 0x0701 442 #define USB_AUDIO_TERM_TYPE_EQUAL_NOISE 0x0702 443 #define USB_AUDIO_TERM_TYPE_CD_PLAYER 0x0703 444 #define USB_AUDIO_TERM_TYPE_DAT 0x0704 445 #define USB_AUDIO_TERM_TYPE_DCC 0x0705 446 #define USB_AUDIO_TERM_TYPE_MINIDISK 0x0706 447 #define USB_AUDIO_TERM_TYPE_ANALOG_TAPE 0x0707 448 #define USB_AUDIO_TERM_TYPE_PHONOGRAPH 0x0708 449 #define USB_AUDIO_TERM_TYPE_VCR_AUDIO 0x0709 450 #define USB_AUDIO_TERM_TYPE_VIDEO_DISK_AUDIO 0x070A 451 #define USB_AUDIO_TERM_TYPE_DVD_AUDIO 0x070B 452 #define USB_AUDIO_TERM_TYPE_TV_TUNER_AUDIO 0x070C 453 #define USB_AUDIO_TERM_TYPE_SATELLITE_RCV_AUDIO 0x070D 454 #define USB_AUDIO_TERM_TYPE_CABLE_TUNER_AUDIO 0x070E 455 #define USB_AUDIO_TERM_TYPE_CABLE_DSS_AUDIO 0x070F 456 #define USB_AUDIO_TERM_TYPE_RADIO_RECEIVER 0x0710 457 #define USB_AUDIO_TERM_TYPE_RADIO_TRANSMITTER 0x0711 458 #define USB_AUDIO_TERM_TYPE_MULTI_TRACK_RECORDER 0x0712 459 #define USB_AUDIO_TERM_TYPE_SYNTHESIZER 0x0713 460 461 #define PRINT_MASK_ATTA 0x00000001 462 #define PRINT_MASK_CLOSE 0x00000002 463 #define PRINT_MASK_OPEN 0x00000004 464 #define PRINT_MASK_EVENTS 0x00000008 465 #define PRINT_MASK_PM 0x00000010 466 #define PRINT_MASK_CB 0x00000020 467 #define PRINT_MASK_ALL 0xFFFFFFFF 468 469 #define USB_AUDIO_MIN_PKTSZ 0 470 #define USB_AUDIO_MAX_PKTSZ (4 * 1024) 471 472 #define USB_AUDIO_MUTE_ON 1 473 #define USB_AUDIO_MUTE_OFF 0 474 475 #ifdef __cplusplus 476 } 477 #endif 478 479 #endif /* _SYS_USB_AUDIO_H */ 480