xref: /reactos/sdk/include/dxsdk/austream.idl (revision c2c66aff)
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