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 19import "unknwn.idl"; 20import "mmstream.idl"; 21 22cpp_quote("#if 0") 23typedef struct tWAVEFORMATEX WAVEFORMATEX; 24cpp_quote ("#endif") 25 26interface IAudioMediaStream; 27interface IAudioStreamSample; 28interface IMemoryData; 29interface IAudioData; 30 31[ 32object, 33local, 34uuid(f7537560-a3be-11d0-8212-00c04fc32c45), 35pointer_default(unique) 36] 37interface IAudioMediaStream : IMediaStream 38{ 39 HRESULT GetFormat( 40 [out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent 41 ); 42 43 HRESULT SetFormat( 44 [in] const WAVEFORMATEX *lpWaveFormat); 45 46 HRESULT CreateSample( 47 [in] IAudioData *pAudioData, 48 [in] DWORD dwFlags, 49 [out] IAudioStreamSample **ppSample 50 ); 51} 52 53 54[ 55object, 56local, 57uuid(345fee00-aba5-11d0-8212-00c04fc32c45), 58pointer_default(unique) 59] 60interface IAudioStreamSample : IStreamSample 61{ 62 HRESULT GetAudioData( 63 [out] IAudioData **ppAudio 64 ); 65} 66 67 68[ 69object, 70local, 71uuid(327fc560-af60-11d0-8212-00c04fc32c45), 72pointer_default(unique) 73] 74interface IMemoryData : IUnknown 75{ 76 HRESULT SetBuffer( 77 [in] DWORD cbSize, 78 [in] BYTE *pbData, 79 [in] DWORD dwFlags 80 ); 81 82 HRESULT GetInfo( 83 [out] DWORD *pdwLength, 84 [out] BYTE **ppbData, 85 [out] DWORD *pcbActualData 86 ); 87 HRESULT SetActual( 88 [in] DWORD cbDataValid 89 ); 90} 91 92 93[ 94object, 95local, 96uuid(54c719c0-af60-11d0-8212-00c04fc32c45), 97pointer_default(unique) 98] 99interface IAudioData : IMemoryData 100{ 101 HRESULT GetFormat( 102 [out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent 103 ); 104 105 HRESULT SetFormat( 106 [in] const WAVEFORMATEX *lpWaveFormat 107 ); 108} 109