Added LGPL standard comment, and copyright notices where necessary.
[wine] / dlls / quartz / imseek.c
1 /*
2  * Implementation of IMediaSeeking for FilterGraph.
3  *
4  * FIXME - stub.
5  * FIXME - this interface should be allocated as a plug-in(?)
6  *
7  * Copyright (C) Hidenori TAKESHIMA <hidenori@a2.ctktv.ne.jp>
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation; either
12  * version 2.1 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22  */
23
24 #include "config.h"
25
26 #include "windef.h"
27 #include "winbase.h"
28 #include "wingdi.h"
29 #include "winuser.h"
30 #include "winerror.h"
31 #include "strmif.h"
32 #include "control.h"
33 #include "uuids.h"
34
35 #include "wine/debug.h"
36 WINE_DEFAULT_DEBUG_CHANNEL(quartz);
37
38 #include "quartz_private.h"
39 #include "fgraph.h"
40
41
42
43 static HRESULT WINAPI
44 IMediaSeeking_fnQueryInterface(IMediaSeeking* iface,REFIID riid,void** ppobj)
45 {
46         CFilterGraph_THIS(iface,mediaseeking);
47
48         TRACE("(%p)->()\n",This);
49
50         return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
51 }
52
53 static ULONG WINAPI
54 IMediaSeeking_fnAddRef(IMediaSeeking* iface)
55 {
56         CFilterGraph_THIS(iface,mediaseeking);
57
58         TRACE("(%p)->()\n",This);
59
60         return IUnknown_AddRef(This->unk.punkControl);
61 }
62
63 static ULONG WINAPI
64 IMediaSeeking_fnRelease(IMediaSeeking* iface)
65 {
66         CFilterGraph_THIS(iface,mediaseeking);
67
68         TRACE("(%p)->()\n",This);
69
70         return IUnknown_Release(This->unk.punkControl);
71 }
72
73
74 static HRESULT WINAPI
75 IMediaSeeking_fnGetCapabilities(IMediaSeeking* iface,DWORD* pdwCaps)
76 {
77         CFilterGraph_THIS(iface,mediaseeking);
78
79         FIXME("(%p)->() stub!\n",This);
80
81         return E_NOTIMPL;
82 }
83
84 static HRESULT WINAPI
85 IMediaSeeking_fnCheckCapabilities(IMediaSeeking* iface,DWORD* pdwCaps)
86 {
87         CFilterGraph_THIS(iface,mediaseeking);
88
89         FIXME("(%p)->() stub!\n",This);
90
91         return E_NOTIMPL;
92 }
93
94 static HRESULT WINAPI
95 IMediaSeeking_fnIsFormatSupported(IMediaSeeking* iface,const GUID* pidFormat)
96 {
97         CFilterGraph_THIS(iface,mediaseeking);
98
99         FIXME("(%p)->() stub!\n",This);
100
101         return E_NOTIMPL;
102 }
103
104 static HRESULT WINAPI
105 IMediaSeeking_fnQueryPreferredFormat(IMediaSeeking* iface,GUID* pidFormat)
106 {
107         CFilterGraph_THIS(iface,mediaseeking);
108
109         FIXME("(%p)->() stub!\n",This);
110
111         return E_NOTIMPL;
112 }
113
114 static HRESULT WINAPI
115 IMediaSeeking_fnGetTimeFormat(IMediaSeeking* iface,GUID* pidFormat)
116 {
117         CFilterGraph_THIS(iface,mediaseeking);
118
119         FIXME("(%p)->() stub!\n",This);
120
121         return E_NOTIMPL;
122 }
123
124 static HRESULT WINAPI
125 IMediaSeeking_fnIsUsingTimeFormat(IMediaSeeking* iface,const GUID* pidFormat)
126 {
127         CFilterGraph_THIS(iface,mediaseeking);
128
129         FIXME("(%p)->() stub!\n",This);
130
131         return E_NOTIMPL;
132 }
133
134 static HRESULT WINAPI
135 IMediaSeeking_fnSetTimeFormat(IMediaSeeking* iface,const GUID* pidFormat)
136 {
137         CFilterGraph_THIS(iface,mediaseeking);
138
139         FIXME("(%p)->() stub!\n",This);
140
141         return E_NOTIMPL;
142 }
143
144 static HRESULT WINAPI
145 IMediaSeeking_fnGetDuration(IMediaSeeking* iface,LONGLONG* pllDuration)
146 {
147         CFilterGraph_THIS(iface,mediaseeking);
148
149         /* the following line may produce too many FIXMEs... */
150         FIXME("(%p)->() stub!\n",This);
151
152         return E_NOTIMPL;
153 }
154
155 static HRESULT WINAPI
156 IMediaSeeking_fnGetStopPosition(IMediaSeeking* iface,LONGLONG* pllPos)
157 {
158         CFilterGraph_THIS(iface,mediaseeking);
159
160         FIXME("(%p)->() stub!\n",This);
161
162         return E_NOTIMPL;
163 }
164
165 static HRESULT WINAPI
166 IMediaSeeking_fnGetCurrentPosition(IMediaSeeking* iface,LONGLONG* pllPos)
167 {
168         CFilterGraph_THIS(iface,mediaseeking);
169
170         FIXME("(%p)->() stub!\n",This);
171
172         return E_NOTIMPL;
173 }
174
175 static HRESULT WINAPI
176 IMediaSeeking_fnConvertTimeFormat(IMediaSeeking* iface,LONGLONG* pllOut,const GUID* pidFmtOut,LONGLONG llIn,const GUID* pidFmtIn)
177 {
178         CFilterGraph_THIS(iface,mediaseeking);
179
180         FIXME("(%p)->() stub!\n",This);
181
182         return E_NOTIMPL;
183 }
184
185 static HRESULT WINAPI
186 IMediaSeeking_fnSetPositions(IMediaSeeking* iface,LONGLONG* pllCur,DWORD dwCurFlags,LONGLONG* pllStop,DWORD dwStopFlags)
187 {
188         CFilterGraph_THIS(iface,mediaseeking);
189
190         FIXME("(%p)->() stub!\n",This);
191
192         return E_NOTIMPL;
193 }
194
195 static HRESULT WINAPI
196 IMediaSeeking_fnGetPositions(IMediaSeeking* iface,LONGLONG* pllCur,LONGLONG* pllStop)
197 {
198         CFilterGraph_THIS(iface,mediaseeking);
199
200         FIXME("(%p)->() stub!\n",This);
201
202         return E_NOTIMPL;
203 }
204
205 static HRESULT WINAPI
206 IMediaSeeking_fnGetAvailable(IMediaSeeking* iface,LONGLONG* pllFirst,LONGLONG* pllLast)
207 {
208         CFilterGraph_THIS(iface,mediaseeking);
209
210         FIXME("(%p)->() stub!\n",This);
211
212         return E_NOTIMPL;
213 }
214
215 static HRESULT WINAPI
216 IMediaSeeking_fnSetRate(IMediaSeeking* iface,double dblRate)
217 {
218         CFilterGraph_THIS(iface,mediaseeking);
219
220         FIXME("(%p)->() stub!\n",This);
221
222         return E_NOTIMPL;
223 }
224
225 static HRESULT WINAPI
226 IMediaSeeking_fnGetRate(IMediaSeeking* iface,double* pdblRate)
227 {
228         CFilterGraph_THIS(iface,mediaseeking);
229
230         FIXME("(%p)->() stub!\n",This);
231
232         return E_NOTIMPL;
233 }
234
235 static HRESULT WINAPI
236 IMediaSeeking_fnGetPreroll(IMediaSeeking* iface,LONGLONG* pllPreroll)
237 {
238         CFilterGraph_THIS(iface,mediaseeking);
239
240         FIXME("(%p)->() stub!\n",This);
241
242         return E_NOTIMPL;
243 }
244
245
246
247
248 static ICOM_VTABLE(IMediaSeeking) imediaseeking =
249 {
250         ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
251         /* IUnknown fields */
252         IMediaSeeking_fnQueryInterface,
253         IMediaSeeking_fnAddRef,
254         IMediaSeeking_fnRelease,
255         /* IMediaSeeking fields */
256         IMediaSeeking_fnGetCapabilities,
257         IMediaSeeking_fnCheckCapabilities,
258         IMediaSeeking_fnIsFormatSupported,
259         IMediaSeeking_fnQueryPreferredFormat,
260         IMediaSeeking_fnGetTimeFormat,
261         IMediaSeeking_fnIsUsingTimeFormat,
262         IMediaSeeking_fnSetTimeFormat,
263         IMediaSeeking_fnGetDuration,
264         IMediaSeeking_fnGetStopPosition,
265         IMediaSeeking_fnGetCurrentPosition,
266         IMediaSeeking_fnConvertTimeFormat,
267         IMediaSeeking_fnSetPositions,
268         IMediaSeeking_fnGetPositions,
269         IMediaSeeking_fnGetAvailable,
270         IMediaSeeking_fnSetRate,
271         IMediaSeeking_fnGetRate,
272         IMediaSeeking_fnGetPreroll,
273 };
274
275 HRESULT CFilterGraph_InitIMediaSeeking( CFilterGraph* pfg )
276 {
277         TRACE("(%p)\n",pfg);
278         ICOM_VTBL(&pfg->mediaseeking) = &imediaseeking;
279
280         return NOERROR;
281 }
282
283 void CFilterGraph_UninitIMediaSeeking( CFilterGraph* pfg )
284 {
285         TRACE("(%p)\n",pfg);
286 }