blob: 2c7e94a233ab97f7a17cf9590556d4cb0b495301 [file] [log] [blame]
Hidenori Takeshima96e96152001-09-07 19:46:49 +00001/*
2 * Implementation of IMediaFilter for FilterGraph.
3 *
4 * FIXME - stub.
5 *
6 * hidenori@a2.ctktv.ne.jp
7 */
8
9#include "config.h"
10
11#include "windef.h"
12#include "winbase.h"
13#include "wingdi.h"
14#include "winerror.h"
15#include "wine/obj_base.h"
16#include "wine/obj_oleaut.h"
17#include "strmif.h"
18#include "control.h"
19#include "uuids.h"
20
21#include "debugtools.h"
22DEFAULT_DEBUG_CHANNEL(quartz);
23
24#include "quartz_private.h"
25#include "fgraph.h"
26
27
28
29static HRESULT WINAPI
30IMediaFilter_fnQueryInterface(IMediaFilter* iface,REFIID riid,void** ppobj)
31{
32 CFilterGraph_THIS(iface,mediafilter);
33
34 TRACE("(%p)->()\n",This);
35
36 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
37}
38
39static ULONG WINAPI
40IMediaFilter_fnAddRef(IMediaFilter* iface)
41{
42 CFilterGraph_THIS(iface,mediafilter);
43
44 TRACE("(%p)->()\n",This);
45
46 return IUnknown_AddRef(This->unk.punkControl);
47}
48
49static ULONG WINAPI
50IMediaFilter_fnRelease(IMediaFilter* iface)
51{
52 CFilterGraph_THIS(iface,mediafilter);
53
54 TRACE("(%p)->()\n",This);
55
56 return IUnknown_Release(This->unk.punkControl);
57}
58
59
60static HRESULT WINAPI
61IMediaFilter_fnGetClassID(IMediaFilter* iface,CLSID* pclsid)
62{
63 CFilterGraph_THIS(iface,mediafilter);
64
65 TRACE("(%p)->()\n",This);
66
67 return IPersist_GetClassID(
68 CFilterGraph_IPersist(This),pclsid);
69}
70
71static HRESULT WINAPI
72IMediaFilter_fnStop(IMediaFilter* iface)
73{
74 CFilterGraph_THIS(iface,mediafilter);
75
76 FIXME("(%p)->() stub!\n",This);
77
78 return E_NOTIMPL;
79}
80
81static HRESULT WINAPI
82IMediaFilter_fnPause(IMediaFilter* iface)
83{
84 CFilterGraph_THIS(iface,mediafilter);
85
86 FIXME("(%p)->() stub!\n",This);
87
88 return E_NOTIMPL;
89}
90
91static HRESULT WINAPI
92IMediaFilter_fnRun(IMediaFilter* iface,REFERENCE_TIME rtStart)
93{
94 CFilterGraph_THIS(iface,mediafilter);
95
96 FIXME("(%p)->() stub!\n",This);
97
98 return E_NOTIMPL;
99}
100
101static HRESULT WINAPI
102IMediaFilter_fnGetState(IMediaFilter* iface,DWORD dw,FILTER_STATE* pState)
103{
104 CFilterGraph_THIS(iface,mediafilter);
105
106 FIXME("(%p)->() stub!\n",This);
107
108 return E_NOTIMPL;
109}
110
111static HRESULT WINAPI
112IMediaFilter_fnSetSyncSource(IMediaFilter* iface,IReferenceClock* pobjClock)
113{
114 CFilterGraph_THIS(iface,mediafilter);
115
116 FIXME("(%p)->() stub!\n",This);
117
118 return E_NOTIMPL;
119}
120
121static HRESULT WINAPI
122IMediaFilter_fnGetSyncSource(IMediaFilter* iface,IReferenceClock** ppobjClock)
123{
124 CFilterGraph_THIS(iface,mediafilter);
125
126 FIXME("(%p)->() stub!\n",This);
127
128 return E_NOTIMPL;
129}
130
131
132
133static ICOM_VTABLE(IMediaFilter) imediafilter =
134{
135 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
136 /* IUnknown fields */
137 IMediaFilter_fnQueryInterface,
138 IMediaFilter_fnAddRef,
139 IMediaFilter_fnRelease,
140 /* IPersist fields */
141 IMediaFilter_fnGetClassID,
142 /* IMediaFilter fields */
143 IMediaFilter_fnStop,
144 IMediaFilter_fnPause,
145 IMediaFilter_fnRun,
146 IMediaFilter_fnGetState,
147 IMediaFilter_fnSetSyncSource,
148 IMediaFilter_fnGetSyncSource,
149};
150
151HRESULT CFilterGraph_InitIMediaFilter( CFilterGraph* pfg )
152{
153 TRACE("(%p)\n",pfg);
154 ICOM_VTBL(&pfg->mediafilter) = &imediafilter;
155
156 return NOERROR;
157}
158
159void CFilterGraph_UninitIMediaFilter( CFilterGraph* pfg )
160{
161 TRACE("(%p)\n",pfg);
162}