source: trunk/src/quartz/audren.h@ 8266

Last change on this file since 8266 was 6952, checked in by sandervl, 24 years ago

Wine 20011004 resync

File size: 1.6 KB
Line 
1/*
2 * Audio Renderer (CLSID_AudioRender)
3 *
4 * FIXME
5 * - implements IRefereneceClock.
6 *
7 * hidenori@a2.ctktv.ne.jp
8 */
9
10#ifndef WINE_DSHOW_AUDREN_H
11#define WINE_DSHOW_AUDREN_H
12
13#include "iunk.h"
14#include "basefilt.h"
15
16#define WINE_QUARTZ_WAVEOUT_COUNT 4
17
18typedef struct CAudioRendererImpl CAudioRendererImpl;
19typedef struct CAudioRendererPinImpl CAudioRendererPinImpl;
20
21
22typedef struct AudRen_IBasicAudioImpl
23{
24 ICOM_VFIELD(IBasicAudio);
25} AudRen_IBasicAudioImpl;
26
27struct CAudioRendererImpl
28{
29 QUARTZ_IUnkImpl unk;
30 CBaseFilterImpl basefilter;
31 AudRen_IBasicAudioImpl basaud;
32
33 CAudioRendererPinImpl* pPin;
34
35 BOOL m_fInFlush;
36
37 /* for waveOut */
38 BOOL m_fWaveOutInit;
39 HANDLE m_hEventRender;
40 HWAVEOUT m_hWaveOut;
41 DWORD m_dwBlockSize;
42 WAVEHDR* m_phdrCur;
43 WAVEHDR m_hdr[WINE_QUARTZ_WAVEOUT_COUNT];
44};
45
46struct CAudioRendererPinImpl
47{
48 QUARTZ_IUnkImpl unk;
49 CPinBaseImpl pin;
50 CMemInputPinBaseImpl meminput;
51
52 CAudioRendererImpl* pRender;
53};
54
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)))
57
58
59HRESULT CAudioRendererImpl_InitIBasicAudio( CAudioRendererImpl* This );
60void CAudioRendererImpl_UninitIBasicAudio( CAudioRendererImpl* This );
61
62HRESULT QUARTZ_CreateAudioRenderer(IUnknown* punkOuter,void** ppobj);
63HRESULT QUARTZ_CreateAudioRendererPin(
64 CAudioRendererImpl* pFilter,
65 CRITICAL_SECTION* pcsPin,
66 CAudioRendererPinImpl** ppPin);
67
68
69
70#endif /* WINE_DSHOW_AUDREN_H */
Note: See TracBrowser for help on using the repository browser.