94 lines
2.2 KiB
Plaintext
94 lines
2.2 KiB
Plaintext
|
import "unknwn.idl";
|
||
|
import "austream.idl";
|
||
|
|
||
|
|
||
|
interface IWaveInStream;
|
||
|
interface IWaveSampleCallback;
|
||
|
interface IWaveStreamSample;
|
||
|
|
||
|
// just a placeholder so MIDL will generate the interface
|
||
|
// for IWaveSampleCallback
|
||
|
interface WaveSample;
|
||
|
cpp_quote("// This is a hack so MIDL will generate the interface of IWaveSampleCallback!")
|
||
|
cpp_quote("#ifdef __cplusplus")
|
||
|
cpp_quote("class WaveSample;")
|
||
|
cpp_quote("#else")
|
||
|
cpp_quote("typedef void WaveSample;")
|
||
|
cpp_quote("#endif")
|
||
|
cpp_quote("")
|
||
|
|
||
|
|
||
|
cpp_quote("// IWaveStreamSample property flags")
|
||
|
cpp_quote("#define WSS_RECORDING_FLAGS 1")
|
||
|
cpp_quote("#define WSS_SIGNAL_STRENGTH 2")
|
||
|
cpp_quote("")
|
||
|
cpp_quote("// bit properties for WSS_RECORDING_FLAGS")
|
||
|
cpp_quote("#define WSS_SILENT 1")
|
||
|
cpp_quote("#define WSS_ECHOREDUCTION 2")
|
||
|
cpp_quote("")
|
||
|
cpp_quote("// SetDuplexControlObject() can take either a handle to an event or mutex")
|
||
|
cpp_quote("#define WIS_DUPLEX_EVENT 1")
|
||
|
cpp_quote("#define WIS_DUPLEX_MUTEX 2")
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
[
|
||
|
object,
|
||
|
local,
|
||
|
uuid(17cb3bc0-6fd4-11d1-a95b-00c04fd7ccf1),
|
||
|
pointer_default(unique)
|
||
|
]
|
||
|
|
||
|
interface IWaveInStream : IAudioMediaStream
|
||
|
{
|
||
|
HRESULT SetDeviceID([in] UINT uWaveDevID);
|
||
|
HRESULT GetDeviceID([out] UINT *puWaveDevID);
|
||
|
HRESULT SetDefaultPacketSize([in] int nBytes);
|
||
|
|
||
|
HRESULT Start();
|
||
|
HRESULT Stop();
|
||
|
|
||
|
HRESULT SetSilenceThreshold([in] DWORD dwThresh, BOOL bAutomatic);
|
||
|
HRESULT SetSilenceTimeout([in] DWORD dwMilliSecs);
|
||
|
HRESULT SetDuplex(BOOL bFull);
|
||
|
HRESULT SetDuplexControlObject(HANDLE hand, int nType);
|
||
|
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
[
|
||
|
object,
|
||
|
local,
|
||
|
uuid(72b36900-7640-11d1-a95b-00c04fd7ccf1),
|
||
|
pointer_default(unique)
|
||
|
]
|
||
|
|
||
|
interface IWaveSampleCallback : IUnknown
|
||
|
{
|
||
|
HRESULT SampleUpdate(WaveSample *pWaveSample, DWORD dwFlags, HANDLE hEvent, PAPCFUNC pfnAPC, DWORD dwAPCData);
|
||
|
HRESULT GetCurrentStreamTime(STREAM_TIME *pST);
|
||
|
HRESULT SampleCompletionStatus(WaveSample *pWaveSample, DWORD dwFlags, DWORD dwMilli);
|
||
|
HRESULT SampleGetMediaStream(IMediaStream **ppMediaStream);
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
[
|
||
|
object,
|
||
|
local,
|
||
|
uuid(8fdc0390-9136-11d1-a95c-00c04fd91a6f),
|
||
|
pointer_default(unique)
|
||
|
]
|
||
|
|
||
|
interface IWaveStreamSample : IAudioStreamSample
|
||
|
{
|
||
|
HRESULT SetSampleProperty([in] DWORD dwProp, [in] DWORD dwValue);
|
||
|
HRESULT GetSampleProperty([in] DWORD dwProp, [out] DWORD *pdwValue);
|
||
|
};
|
||
|
|
||
|
|