audio.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:3k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. #define USB_DT_CS_DEVICE                0x21
  2. #define USB_DT_CS_CONFIG                0x22
  3. #define USB_DT_CS_STRING                0x23
  4. #define USB_DT_CS_INTERFACE             0x24
  5. #define USB_DT_CS_ENDPOINT              0x25
  6. #define CS_AUDIO_UNDEFINED 0x20
  7. #define CS_AUDIO_DEVICE 0x21
  8. #define CS_AUDIO_CONFIGURATION 0x22
  9. #define CS_AUDIO_STRING 0x23
  10. #define CS_AUDIO_INTERFACE 0x24
  11. #define CS_AUDIO_ENDPOINT 0x25
  12. #define HEADER 0x01
  13. #define INPUT_TERMINAL 0x02
  14. #define OUTPUT_TERMINAL 0x03
  15. #define MIXER_UNIT 0x04
  16. #define SELECTOR_UNIT 0x05
  17. #define FEATURE_UNIT 0x06
  18. #define PROCESSING_UNIT 0x07
  19. #define EXTENSION_UNIT 0x08
  20. #define AS_GENERAL 0x01
  21. #define FORMAT_TYPE 0x02
  22. #define FORMAT_SPECIFIC 0x03
  23. #define EP_GENERAL 0x01
  24. #define MAX_CHAN 9
  25. #define MAX_FREQ 16
  26. #define MAX_IFACE 8
  27. #define MAX_FORMAT 8
  28. #define MAX_ALT 32  /* Sorry, we need quite a few for the Philips webcams */
  29. struct usb_audio_terminal
  30. {
  31. u8 flags;
  32. u8 assoc;
  33. u16 type; /* Mic etc */
  34. u8 channels;
  35. u8 source;
  36. u16 chancfg;
  37. };
  38. struct usb_audio_format
  39. {
  40. u8 type;
  41. u8 channels;
  42. u8 num_freq;
  43. u8 sfz;
  44. u8 bits;
  45. u16 freq[MAX_FREQ];
  46. };
  47. struct usb_audio_interface
  48. {
  49. u8 terminal;
  50. u8 delay;
  51. u16 num_formats;
  52. u16 format_type;
  53. u8 flags;
  54. u8 idleconf; /* Idle config */
  55. #define AU_IFACE_FOUND 1
  56. struct  usb_audio_format format[MAX_FORMAT];
  57. };
  58. struct usb_audio_device
  59. {
  60. struct list_head list;
  61. u8 mixer;
  62. u8 selector;
  63. void *irq_handle;
  64. u8 num_channels;
  65. u8 num_dsp_iface;
  66. u8 channel_map[MAX_CHAN];
  67. struct usb_audio_terminal terminal[MAX_CHAN];
  68. struct usb_audio_interface interface[MAX_IFACE][MAX_ALT];
  69. };
  70. /* Audio Class specific Request Codes */
  71. #define SET_CUR    0x01
  72. #define GET_CUR    0x81
  73. #define SET_MIN    0x02
  74. #define GET_MIN    0x82
  75. #define SET_MAX    0x03
  76. #define GET_MAX    0x83
  77. #define SET_RES    0x04
  78. #define GET_RES    0x84
  79. #define SET_MEM    0x05
  80. #define GET_MEM    0x85
  81. #define GET_STAT   0xff
  82. /* Terminal Control Selectors */
  83. #define COPY_PROTECT_CONTROL       0x01
  84. /* Feature Unit Control Selectors */
  85. #define MUTE_CONTROL               0x01
  86. #define VOLUME_CONTROL             0x02
  87. #define BASS_CONTROL               0x03
  88. #define MID_CONTROL                0x04
  89. #define TREBLE_CONTROL             0x05
  90. #define GRAPHIC_EQUALIZER_CONTROL  0x06
  91. #define AUTOMATIC_GAIN_CONTROL     0x07
  92. #define DELAY_CONTROL              0x08
  93. #define BASS_BOOST_CONTROL         0x09
  94. #define LOUDNESS_CONTROL           0x0a
  95. /* Endpoint Control Selectors */
  96. #define SAMPLING_FREQ_CONTROL      0x01
  97. #define PITCH_CONTROL              0x02