austream.idl revision 589fd26cedb2b4ebbed14f2964cad03cc8ebbca2
41c64c31741f70e00de94130927dd5d85ed360a0vboxsync/*
41c64c31741f70e00de94130927dd5d85ed360a0vboxsync * Copyright 2004 Christian Costa
41c64c31741f70e00de94130927dd5d85ed360a0vboxsync *
41c64c31741f70e00de94130927dd5d85ed360a0vboxsync * This library is free software; you can redistribute it and/or
41c64c31741f70e00de94130927dd5d85ed360a0vboxsync * modify it under the terms of the GNU Lesser General Public
41c64c31741f70e00de94130927dd5d85ed360a0vboxsync * License as published by the Free Software Foundation; either
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * version 2.1 of the License, or (at your option) any later version.
41c64c31741f70e00de94130927dd5d85ed360a0vboxsync *
41c64c31741f70e00de94130927dd5d85ed360a0vboxsync * This library is distributed in the hope that it will be useful,
41c64c31741f70e00de94130927dd5d85ed360a0vboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
41c64c31741f70e00de94130927dd5d85ed360a0vboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * Lesser General Public License for more details.
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync *
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * You should have received a copy of the GNU Lesser General Public
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * License along with this library; if not, write to the Free Software
41c64c31741f70e00de94130927dd5d85ed360a0vboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync */
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync/*
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * other than GPL or LGPL is available it will apply instead, Sun elects to use only
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * a choice of LGPL license versions is made available with the language indicating
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
41c64c31741f70e00de94130927dd5d85ed360a0vboxsync * of the LGPL is applied is otherwise unspecified.
1e40f57c72c881067b0314f898e1004211bb7650vboxsync */
1e40f57c72c881067b0314f898e1004211bb7650vboxsync
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncimport "unknwn.idl";
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncimport "mmstream.idl";
1e40f57c72c881067b0314f898e1004211bb7650vboxsync
1e40f57c72c881067b0314f898e1004211bb7650vboxsynccpp_quote("#if 0")
1e40f57c72c881067b0314f898e1004211bb7650vboxsynctypedef struct tWAVEFORMATEX WAVEFORMATEX;
1e40f57c72c881067b0314f898e1004211bb7650vboxsynccpp_quote ("#endif")
1e40f57c72c881067b0314f898e1004211bb7650vboxsync
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncinterface IAudioMediaStream;
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncinterface IAudioStreamSample;
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncinterface IMemoryData;
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncinterface IAudioData;
1e40f57c72c881067b0314f898e1004211bb7650vboxsync
1e40f57c72c881067b0314f898e1004211bb7650vboxsync[
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncobject,
1e40f57c72c881067b0314f898e1004211bb7650vboxsynclocal,
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncuuid(f7537560-a3be-11d0-8212-00c04fc32c45),
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncpointer_default(unique)
1e40f57c72c881067b0314f898e1004211bb7650vboxsync]
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncinterface IAudioMediaStream : IMediaStream
1e40f57c72c881067b0314f898e1004211bb7650vboxsync{
1e40f57c72c881067b0314f898e1004211bb7650vboxsync HRESULT GetFormat(
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent
1e40f57c72c881067b0314f898e1004211bb7650vboxsync );
1e40f57c72c881067b0314f898e1004211bb7650vboxsync
1e40f57c72c881067b0314f898e1004211bb7650vboxsync HRESULT SetFormat(
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [in] const WAVEFORMATEX *lpWaveFormat);
1e40f57c72c881067b0314f898e1004211bb7650vboxsync
1e40f57c72c881067b0314f898e1004211bb7650vboxsync HRESULT CreateSample(
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [in] IAudioData *pAudioData,
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [in] DWORD dwFlags,
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [out] IAudioStreamSample **ppSample
1e40f57c72c881067b0314f898e1004211bb7650vboxsync );
1e40f57c72c881067b0314f898e1004211bb7650vboxsync}
1e40f57c72c881067b0314f898e1004211bb7650vboxsync
1e40f57c72c881067b0314f898e1004211bb7650vboxsync
1e40f57c72c881067b0314f898e1004211bb7650vboxsync[
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncobject,
1e40f57c72c881067b0314f898e1004211bb7650vboxsynclocal,
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncuuid(345fee00-aba5-11d0-8212-00c04fc32c45),
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncpointer_default(unique)
1e40f57c72c881067b0314f898e1004211bb7650vboxsync]
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncinterface IAudioStreamSample : IStreamSample
1e40f57c72c881067b0314f898e1004211bb7650vboxsync{
1e40f57c72c881067b0314f898e1004211bb7650vboxsync HRESULT GetAudioData(
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [out] IAudioData **ppAudio
1e40f57c72c881067b0314f898e1004211bb7650vboxsync );
1e40f57c72c881067b0314f898e1004211bb7650vboxsync}
1e40f57c72c881067b0314f898e1004211bb7650vboxsync
a4a232fa546df3af50f9389873b521028eed4cdevboxsync
6bc1d32c5bf2ae1e9d714d09a7c116e5b75e1eb5vboxsync[
6bc1d32c5bf2ae1e9d714d09a7c116e5b75e1eb5vboxsyncobject,
6bc1d32c5bf2ae1e9d714d09a7c116e5b75e1eb5vboxsynclocal,
a4a232fa546df3af50f9389873b521028eed4cdevboxsyncuuid(327fc560-af60-11d0-8212-00c04fc32c45),
a4a232fa546df3af50f9389873b521028eed4cdevboxsyncpointer_default(unique)
6bc1d32c5bf2ae1e9d714d09a7c116e5b75e1eb5vboxsync]
a4a232fa546df3af50f9389873b521028eed4cdevboxsyncinterface IMemoryData : IUnknown
1e40f57c72c881067b0314f898e1004211bb7650vboxsync{
a4a232fa546df3af50f9389873b521028eed4cdevboxsync HRESULT SetBuffer(
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [in] DWORD cbSize,
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [in] BYTE *pbData,
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [in] DWORD dwFlags
1e40f57c72c881067b0314f898e1004211bb7650vboxsync );
1e40f57c72c881067b0314f898e1004211bb7650vboxsync
1e40f57c72c881067b0314f898e1004211bb7650vboxsync HRESULT GetInfo(
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [out] DWORD *pdwLength,
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [out] BYTE **ppbData,
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [out] DWORD *pcbActualData
1e40f57c72c881067b0314f898e1004211bb7650vboxsync );
1e40f57c72c881067b0314f898e1004211bb7650vboxsync HRESULT SetActual(
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [in] DWORD cbDataValid
1e40f57c72c881067b0314f898e1004211bb7650vboxsync );
1e40f57c72c881067b0314f898e1004211bb7650vboxsync}
1e40f57c72c881067b0314f898e1004211bb7650vboxsync
1e40f57c72c881067b0314f898e1004211bb7650vboxsync
1e40f57c72c881067b0314f898e1004211bb7650vboxsync[
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncobject,
1e40f57c72c881067b0314f898e1004211bb7650vboxsynclocal,
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncuuid(54c719c0-af60-11d0-8212-00c04fc32c45),
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncpointer_default(unique)
1e40f57c72c881067b0314f898e1004211bb7650vboxsync]
1e40f57c72c881067b0314f898e1004211bb7650vboxsyncinterface IAudioData : IMemoryData
1e40f57c72c881067b0314f898e1004211bb7650vboxsync{
1e40f57c72c881067b0314f898e1004211bb7650vboxsync HRESULT GetFormat(
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent
1e40f57c72c881067b0314f898e1004211bb7650vboxsync );
1e40f57c72c881067b0314f898e1004211bb7650vboxsync
1e40f57c72c881067b0314f898e1004211bb7650vboxsync HRESULT SetFormat(
1e40f57c72c881067b0314f898e1004211bb7650vboxsync [in] const WAVEFORMATEX *lpWaveFormat
1e40f57c72c881067b0314f898e1004211bb7650vboxsync );
1e40f57c72c881067b0314f898e1004211bb7650vboxsync}
1e40f57c72c881067b0314f898e1004211bb7650vboxsync