2 * Audio Renderer (CLSID_AudioRender)
5 * - implements IRefereneceClock.
7 * hidenori@a2.ctktv.ne.jp
10 #ifndef WINE_DSHOW_AUDREN_H
11 #define WINE_DSHOW_AUDREN_H
16 #define WINE_QUARTZ_WAVEOUT_COUNT 4
18 typedef struct CAudioRendererImpl CAudioRendererImpl;
19 typedef struct CAudioRendererPinImpl CAudioRendererPinImpl;
22 typedef struct AudRen_IBasicAudioImpl
24 ICOM_VFIELD(IBasicAudio);
25 } AudRen_IBasicAudioImpl;
27 struct CAudioRendererImpl
30 CBaseFilterImpl basefilter;
31 AudRen_IBasicAudioImpl basaud;
33 CAudioRendererPinImpl* pPin;
39 HANDLE m_hEventRender;
43 WAVEHDR m_hdr[WINE_QUARTZ_WAVEOUT_COUNT];
46 struct CAudioRendererPinImpl
50 CMemInputPinBaseImpl meminput;
52 CAudioRendererImpl* pRender;
55 #define CAudioRendererImpl_THIS(iface,member) CAudioRendererImpl* This = ((CAudioRendererImpl*)(((char*)iface)-offsetof(CAudioRendererImpl,member)))
56 #define CAudioRendererPinImpl_THIS(iface,member) CAudioRendererPinImpl* This = ((CAudioRendererPinImpl*)(((char*)iface)-offsetof(CAudioRendererPinImpl,member)))
59 HRESULT CAudioRendererImpl_InitIBasicAudio( CAudioRendererImpl* This );
60 void CAudioRendererImpl_UninitIBasicAudio( CAudioRendererImpl* This );
62 HRESULT QUARTZ_CreateAudioRenderer(IUnknown* punkOuter,void** ppobj);
63 HRESULT QUARTZ_CreateAudioRendererPin(
64 CAudioRendererImpl* pFilter,
65 CRITICAL_SECTION* pcsPin,
66 CAudioRendererPinImpl** ppPin);
70 #endif /* WINE_DSHOW_AUDREN_H */