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