From defffcf1f0dfcb944274654ffa03017f6bfd0a4d Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 21 Jan 2018 22:31:34 +0100 Subject: [PATCH] [QEDIT] Sync with Wine 3.0. CORE-14225 --- dll/directx/wine/qedit/timeline.c | 195 ++++++++++++++++++++++++++++++ media/doc/README.WINE | 2 +- 2 files changed, 196 insertions(+), 1 deletion(-) diff --git a/dll/directx/wine/qedit/timeline.c b/dll/directx/wine/qedit/timeline.c index 9735c3b8387..52ef234f413 100644 --- a/dll/directx/wine/qedit/timeline.c +++ b/dll/directx/wine/qedit/timeline.c @@ -38,6 +38,7 @@ static inline TimelineImpl *impl_from_IAMTimeline(IAMTimeline *iface) typedef struct { IAMTimelineObj IAMTimelineObj_iface; + IAMTimelineGroup IAMTimelineGroup_iface; LONG ref; TIMELINE_MAJOR_TYPE timeline_type; } TimelineObjImpl; @@ -47,7 +48,13 @@ static inline TimelineObjImpl *impl_from_IAMTimelineObj(IAMTimelineObj *iface) return CONTAINING_RECORD(iface, TimelineObjImpl, IAMTimelineObj_iface); } +static inline TimelineObjImpl *impl_from_IAMTimelineGroup(IAMTimelineGroup *iface) +{ + return CONTAINING_RECORD(iface, TimelineObjImpl, IAMTimelineGroup_iface); +} + static const IAMTimelineObjVtbl IAMTimelineObj_VTable; +static const IAMTimelineGroupVtbl IAMTimelineGroup_VTable; /* Timeline inner IUnknown */ @@ -157,6 +164,7 @@ static HRESULT WINAPI Timeline_IAMTimeline_CreateEmptyNode(IAMTimeline *iface, I obj_impl->ref = 1; obj_impl->IAMTimelineObj_iface.lpVtbl = &IAMTimelineObj_VTable; + obj_impl->IAMTimelineGroup_iface.lpVtbl = &IAMTimelineGroup_VTable; obj_impl->timeline_type = type; *obj = &obj_impl->IAMTimelineObj_iface; @@ -440,6 +448,8 @@ static HRESULT WINAPI TimelineObj_QueryInterface(IAMTimelineObj *iface, REFIID r *ppv = NULL; if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IAMTimelineObj)) *ppv = &This->IAMTimelineObj_iface; + else if (IsEqualIID(riid, &IID_IAMTimelineGroup)) + *ppv = &This->IAMTimelineGroup_iface; else WARN("(%p, %s,%p): not found\n", This, debugstr_guid(riid), ppv); @@ -790,3 +800,188 @@ static const IAMTimelineObjVtbl IAMTimelineObj_VTable = TimelineObj_GetGroupIBelongTo, TimelineObj_GetEmbedDepth, }; + +static HRESULT WINAPI timelinegrp_QueryInterface(IAMTimelineGroup *iface, REFIID riid, void **object) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + return IAMTimelineObj_QueryInterface(&This->IAMTimelineObj_iface, riid, object); +} + +static ULONG WINAPI timelinegrp_AddRef(IAMTimelineGroup *iface) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + return IAMTimelineObj_AddRef(&This->IAMTimelineObj_iface); +} + +static ULONG WINAPI timelinegrp_Release(IAMTimelineGroup *iface) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + return IAMTimelineObj_Release(&This->IAMTimelineObj_iface); +} + +static HRESULT WINAPI timelinegrp_SetTimeline(IAMTimelineGroup *iface, IAMTimeline *timeline) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, timeline); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_GetTimeline(IAMTimelineGroup *iface, IAMTimeline **timeline) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, timeline); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_GetPriority(IAMTimelineGroup *iface, LONG *priority) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, priority); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_GetMediaType(IAMTimelineGroup *iface, AM_MEDIA_TYPE *mediatype) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, mediatype); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_SetMediaType(IAMTimelineGroup *iface, AM_MEDIA_TYPE *mediatype) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, mediatype); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_SetOutputFPS(IAMTimelineGroup *iface, double fps) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%f)\n", This, fps); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_GetOutputFPS(IAMTimelineGroup *iface, double *fps) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, fps); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_SetGroupName(IAMTimelineGroup *iface, BSTR name) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%s)\n", This, debugstr_w(name)); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_GetGroupName(IAMTimelineGroup *iface, BSTR *name) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, name); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_SetPreviewMode(IAMTimelineGroup *iface, BOOL preview) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%d)\n", This, preview); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_GetPreviewMode(IAMTimelineGroup *iface, BOOL *preview) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, preview); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_SetMediaTypeForVB(IAMTimelineGroup *iface, LONG type) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%d)\n", This, type); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_GetOutputBuffering(IAMTimelineGroup *iface, int *buffer) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, buffer); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_SetOutputBuffering(IAMTimelineGroup *iface, int buffer) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%d)\n", This, buffer); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_SetSmartRecompressFormat(IAMTimelineGroup *iface, LONG *format) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, format); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_GetSmartRecompressFormat(IAMTimelineGroup *iface, LONG **format) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, format); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_IsSmartRecompressFormatSet(IAMTimelineGroup *iface, BOOL *set) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, set); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_IsRecompressFormatDirty(IAMTimelineGroup *iface, BOOL *dirty) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, dirty); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_ClearRecompressFormatDirty(IAMTimelineGroup *iface) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->()\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI timelinegrp_SetRecompFormatFromSource(IAMTimelineGroup *iface, IAMTimelineSrc *source) +{ + TimelineObjImpl *This = impl_from_IAMTimelineGroup(iface); + FIXME("(%p)->(%p)\n", This, source); + return E_NOTIMPL; +} + +static const IAMTimelineGroupVtbl IAMTimelineGroup_VTable = +{ + timelinegrp_QueryInterface, + timelinegrp_AddRef, + timelinegrp_Release, + timelinegrp_SetTimeline, + timelinegrp_GetTimeline, + timelinegrp_GetPriority, + timelinegrp_GetMediaType, + timelinegrp_SetMediaType, + timelinegrp_SetOutputFPS, + timelinegrp_GetOutputFPS, + timelinegrp_SetGroupName, + timelinegrp_GetGroupName, + timelinegrp_SetPreviewMode, + timelinegrp_GetPreviewMode, + timelinegrp_SetMediaTypeForVB, + timelinegrp_GetOutputBuffering, + timelinegrp_SetOutputBuffering, + timelinegrp_SetSmartRecompressFormat, + timelinegrp_GetSmartRecompressFormat, + timelinegrp_IsSmartRecompressFormatSet, + timelinegrp_IsRecompressFormatDirty, + timelinegrp_ClearRecompressFormatDirty, + timelinegrp_SetRecompFormatFromSource +}; diff --git a/media/doc/README.WINE b/media/doc/README.WINE index e22e0ed4d53..bebb2f97bc7 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -38,7 +38,7 @@ reactos/dll/directx/wine/dplayx # Synced to WineStaging-2.16 reactos/dll/directx/wine/dsound # Synced to Wine-1.3.29 reactos/dll/directx/wine/dxdiagn # Synced to Wine-3.0 reactos/dll/directx/wine/msdmo # Synced to WineStaging-2.9 -reactos/dll/directx/wine/qedit # Synced to WineStaging-2.9 +reactos/dll/directx/wine/qedit # Synced to Wine-3.0 reactos/dll/directx/wine/quartz # Synced to WineStaging-2.16 reactos/dll/directx/wine/wined3d # Synced to Wine-3.0