austream.idl 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /*
  2. * Copyright 2004 Christian Costa
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2.1 of the License, or (at your option) any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public
  15. * License along with this library; if not, write to the Free Software
  16. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  17. */
  18. import "unknwn.idl";
  19. import "mmstream.idl";
  20. cpp_quote("#if 0")
  21. typedef struct tWAVEFORMATEX WAVEFORMATEX;
  22. cpp_quote ("#endif")
  23. interface IAudioMediaStream;
  24. interface IAudioStreamSample;
  25. interface IMemoryData;
  26. interface IAudioData;
  27. [
  28. object,
  29. local,
  30. uuid(f7537560-a3be-11d0-8212-00c04fc32c45),
  31. pointer_default(unique)
  32. ]
  33. interface IAudioMediaStream : IMediaStream
  34. {
  35. HRESULT GetFormat(
  36. [out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent
  37. );
  38. HRESULT SetFormat(
  39. [in] const WAVEFORMATEX *lpWaveFormat);
  40. HRESULT CreateSample(
  41. [in] IAudioData *pAudioData,
  42. [in] DWORD dwFlags,
  43. [out] IAudioStreamSample **ppSample
  44. );
  45. }
  46. [
  47. object,
  48. local,
  49. uuid(345fee00-aba5-11d0-8212-00c04fc32c45),
  50. pointer_default(unique)
  51. ]
  52. interface IAudioStreamSample : IStreamSample
  53. {
  54. HRESULT GetAudioData(
  55. [out] IAudioData **ppAudio
  56. );
  57. }
  58. [
  59. object,
  60. local,
  61. uuid(327fc560-af60-11d0-8212-00c04fc32c45),
  62. pointer_default(unique)
  63. ]
  64. interface IMemoryData : IUnknown
  65. {
  66. HRESULT SetBuffer(
  67. [in] DWORD cbSize,
  68. [in] BYTE *pbData,
  69. [in] DWORD dwFlags
  70. );
  71. HRESULT GetInfo(
  72. [out] DWORD *pdwLength,
  73. [out] BYTE **ppbData,
  74. [out] DWORD *pcbActualData
  75. );
  76. HRESULT SetActual(
  77. [in] DWORD cbDataValid
  78. );
  79. }
  80. [
  81. object,
  82. local,
  83. uuid(54c719c0-af60-11d0-8212-00c04fc32c45),
  84. pointer_default(unique)
  85. ]
  86. interface IAudioData : IMemoryData
  87. {
  88. HRESULT GetFormat(
  89. [out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent
  90. );
  91. HRESULT SetFormat(
  92. [in] const WAVEFORMATEX *lpWaveFormat
  93. );
  94. }