| 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 |  | 
|---|
| 18 | typedef struct CAudioRendererImpl       CAudioRendererImpl; | 
|---|
| 19 | typedef struct CAudioRendererPinImpl    CAudioRendererPinImpl; | 
|---|
| 20 |  | 
|---|
| 21 |  | 
|---|
| 22 | typedef struct AudRen_IBasicAudioImpl | 
|---|
| 23 | { | 
|---|
| 24 | ICOM_VFIELD(IBasicAudio); | 
|---|
| 25 | } AudRen_IBasicAudioImpl; | 
|---|
| 26 |  | 
|---|
| 27 | struct 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 |  | 
|---|
| 46 | struct 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 |  | 
|---|
| 59 | HRESULT CAudioRendererImpl_InitIBasicAudio( CAudioRendererImpl* This ); | 
|---|
| 60 | void CAudioRendererImpl_UninitIBasicAudio( CAudioRendererImpl* This ); | 
|---|
| 61 |  | 
|---|
| 62 | HRESULT QUARTZ_CreateAudioRenderer(IUnknown* punkOuter,void** ppobj); | 
|---|
| 63 | HRESULT QUARTZ_CreateAudioRendererPin( | 
|---|
| 64 | CAudioRendererImpl* pFilter, | 
|---|
| 65 | CRITICAL_SECTION* pcsPin, | 
|---|
| 66 | CAudioRendererPinImpl** ppPin); | 
|---|
| 67 |  | 
|---|
| 68 |  | 
|---|
| 69 |  | 
|---|
| 70 | #endif  /* WINE_DSHOW_AUDREN_H */ | 
|---|