Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

131 lines
4.0 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1996 - 1999
  6. //
  7. // File: audio.h
  8. //
  9. //--------------------------------------------------------------------------
  10. //===========================================================================
  11. // WAVE (PCM)
  12. //===========================================================================
  13. #define STATIC_KSPROPSETID_Wave\
  14. 0x924e54b0, 0x630f, 0x11cf, 0xad, 0xa7, 0x08, 0x00, 0x3e, 0x30, 0x49, 0x4a
  15. #if defined(__cplusplus) && _MSC_VER >= 1100
  16. struct __declspec(uuid("924e54b0-630f-11cf-ada7-08003e30494a")) KSPROPSETID_Wave;
  17. #else
  18. DEFINE_GUIDEX(KSPROPSETID_Wave);
  19. #endif
  20. #define KSPROPERTY_WAVE_COMPATIBLE_CAPABILITIES 0x00000001
  21. #define KSPROPERTY_WAVE_INPUT_CAPABILITIES 0x00000002
  22. #define KSPROPERTY_WAVE_OUTPUT_CAPABILITIES 0x00000003
  23. #define KSPROPERTY_WAVE_BUFFER 0x00000004
  24. #define KSPROPERTY_WAVE_FREQUENCY 0x00000005
  25. #define KSPROPERTY_WAVE_VOLUME 0x00000006
  26. #define KSPROPERTY_WAVE_PAN 0x00000007
  27. #define KSPROPERTY_WAVE_POSITION 0x00000008
  28. typedef struct {
  29. ULONG ulDeviceType;
  30. } KSWAVE_COMPATCAPS, *PKSWAVE_COMPATCAPS;
  31. #define KSWAVE_COMPATCAPS_INPUT 0x00000000
  32. #define KSWAVE_COMPATCAPS_OUTPUT 0x00000001
  33. typedef struct {
  34. ULONG MaximumChannelsPerConnection;
  35. ULONG MinimumBitsPerSample;
  36. ULONG MaximumBitsPerSample;
  37. ULONG MinimumSampleFrequency;
  38. ULONG MaximumSampleFrequency;
  39. ULONG TotalConnections;
  40. ULONG ActiveConnections;
  41. } KSWAVE_INPUT_CAPABILITIES, *PKSWAVE_INPUT_CAPABILITIES;
  42. typedef struct {
  43. ULONG MaximumChannelsPerConnection;
  44. ULONG MinimumBitsPerSample;
  45. ULONG MaximumBitsPerSample;
  46. ULONG MinimumSampleFrequency;
  47. ULONG MaximumSampleFrequency;
  48. ULONG TotalConnections;
  49. ULONG StaticConnections;
  50. ULONG StreamingConnections;
  51. ULONG ActiveConnections;
  52. ULONG ActiveStaticConnections;
  53. ULONG ActiveStreamingConnections;
  54. ULONG Total3DConnections;
  55. ULONG Static3DConnections;
  56. ULONG Streaming3DConnections;
  57. ULONG Active3DConnections;
  58. ULONG ActiveStatic3DConnections;
  59. ULONG ActiveStreaming3DConnections;
  60. ULONG TotalSampleMemory;
  61. ULONG FreeSampleMemory;
  62. ULONG LargestFreeContiguousSampleMemory;
  63. } KSWAVE_OUTPUT_CAPABILITIES, *PKSWAVE_OUTPUT_CAPABILITIES;
  64. typedef struct {
  65. LONG Channel;
  66. LONG Level;
  67. } KSWAVE_VOLUME, *PKSWAVE_VOLUME;
  68. typedef struct {
  69. LONG LeftLevel ;
  70. LONG RightLevel ;
  71. } KSWAVE_PAN, *PKSWAVE_PAN
  72. //===========================================================================
  73. // MIDI
  74. //===========================================================================
  75. DEFINE_GUIDEX(KSPROPSETID_MIDI);
  76. #define KSPROPERTY_MIDI_INPUT_CAPABILITIES 0x00000001
  77. #define KSPROPERTY_MIDI_OUTPUT_CAPABILITIES 0x00000002
  78. #define KSPROPERTY_MIDI_VOLUME 0x00000003
  79. #define KSPROPERTY_MIDI_PAN 0x00000004
  80. typedef struct {
  81. // TBD
  82. } KSMIDI_INPUT_CAPABILITIES, *PKSMIDI_INPUT_CAPABILITIES ;
  83. typedef struct {
  84. ULONG Voices ;
  85. ULONG Notes ;
  86. ULONG Channel ;
  87. } KSMIDI_OUTPUT_CAPABILITIES, *PKSMIDI_OUTPUT_CAPABILITIES ;
  88. typedef struct {
  89. ULONG Level ;
  90. } KSMIDI_VOLUME, *PKSMIDI_VOLUME ;
  91. typedef KSWAVE_PAN KSMIDI_PAN, *PKSMIDI_PAN ;
  92. //===========================================================================
  93. // AC3
  94. //===========================================================================
  95. DEFINE_GUIDEX(KSPROPSETID_AC3);
  96. #define KSPROPERTY_AC3_INPUT_CAPABILITIES 0x00000001
  97. #define KSPROPERTY_AC3_OUTPUT_CAPABILITIES 0x00000002
  98. #define KSPROPERTY_AC3_VOLUME 0x00000003
  99. typedef struct {
  100. } KSAC3_OUTPUT_CAPABILITIES, *PKSAC3_OUTPUT_CAPABILITIES ;
  101. typedef struct {
  102. // TDB
  103. } KSAC3_VOLUME, *PKSAC3_VOLUME ;
  104. //===========================================================================
  105. //===========================================================================
  106.