Commit 9c2f28cf authored by Alex Henrie's avatar Alex Henrie Committed by Alexandre Julliard

include: Add AMTimeline class and its dependencies.

parent 0c0d839a
......@@ -167,6 +167,645 @@ coclass MediaDet
[default] interface IMediaDet;
};
[
object,
uuid(288581E0-66CE-11d2-918F-00C0DF10D434),
odl,
pointer_default(unique)
]
interface IMediaLocator : IUnknown
{
HRESULT FindMediaFile(
BSTR input,
BSTR filter,
BSTR * output,
long flags
);
HRESULT AddFoundLocation(
BSTR dir
);
};
typedef struct
{
BSTR name;
DISPID dispID;
LONG nValues;
} DEXTER_PARAM;
typedef struct
{
VARIANT v;
REFERENCE_TIME rt;
DWORD dwInterp;
} DEXTER_VALUE;
[
object,
uuid(AE9472BD-B0C3-11D2-8D24-00A0C9441E20),
pointer_default(unique)
]
interface IPropertySetter : IUnknown
{
HRESULT LoadXML(
[in] IUnknown * pxml
);
HRESULT PrintXML(
[out] char * xml,
[in] int size,
[out] int * printed,
[in] int indent
);
HRESULT CloneProps(
[out] IPropertySetter ** setter,
[in] REFERENCE_TIME start,
[in] REFERENCE_TIME stop
);
HRESULT AddProp(
[in] DEXTER_PARAM param,
[in] DEXTER_VALUE * value
);
HRESULT GetProps(
[out] LONG * params,
[out] DEXTER_PARAM ** param,
[out] DEXTER_VALUE ** value
);
HRESULT FreeProps(
[in] LONG params,
[in] DEXTER_PARAM * param,
[in] DEXTER_VALUE * value
);
HRESULT ClearProps();
HRESULT SaveToBlob(
[out] LONG * size,
[out] BYTE ** blob
);
HRESULT LoadFromBlob(
[in] LONG size,
[in] BYTE * blob
);
HRESULT SetProps(
[in] IUnknown * target,
[in] REFERENCE_TIME now
);
};
[
object,
uuid(E43E73A2-0EFA-11d3-9601-00A0C9441E20),
odl,
pointer_default(unique)
]
interface IAMErrorLog : IUnknown
{
HRESULT LogError(
long severity,
BSTR error_str,
long error_code,
long hresult,
[in] VARIANT * extra
);
};
[
object,
uuid(963566DA-BE21-4eaf-88E9-35704F8F52A1),
odl,
pointer_default(unique)
]
interface IAMSetErrorLog : IUnknown
{
[propget] HRESULT ErrorLog(
[out, retval] IAMErrorLog ** log
);
[propput] HRESULT ErrorLog(
[in] IAMErrorLog * log
);
};
interface IAMTimeline;
interface IAMTimelineGroup;
interface IAMTimelineObj;
interface IAMTimelineSrc;
typedef enum
{
TIMELINE_MAJOR_TYPE_COMPOSITE = 1,
TIMELINE_MAJOR_TYPE_TRACK = 2,
TIMELINE_MAJOR_TYPE_SOURCE = 4,
TIMELINE_MAJOR_TYPE_TRANSITION = 8,
TIMELINE_MAJOR_TYPE_EFFECT = 16,
TIMELINE_MAJOR_TYPE_GROUP = 128
} TIMELINE_MAJOR_TYPE;
[
object,
uuid(78530B74-61F9-11D2-8CAD-00A024580902),
odl,
pointer_default(unique)
]
interface IAMTimeline : IUnknown
{
HRESULT CreateEmptyNode(
[out] IAMTimelineObj ** obj,
TIMELINE_MAJOR_TYPE type
);
HRESULT AddGroup(
IAMTimelineObj * group
);
HRESULT RemGroupFromList(
IAMTimelineObj * group
);
HRESULT GetGroup(
[out] IAMTimelineObj ** group,
long index
);
HRESULT GetGroupCount(
long * count
);
HRESULT ClearAllGroups();
HRESULT GetInsertMode(
long * mode
);
HRESULT SetInsertMode(
long mode
);
HRESULT EnableTransitions(
BOOL enabled
);
HRESULT TransitionsEnabled(
BOOL * enabled
);
HRESULT EnableEffects(
BOOL enabled
);
HRESULT EffectsEnabled(
BOOL * enabled
);
HRESULT SetInterestRange(
REFERENCE_TIME start,
REFERENCE_TIME stop
);
HRESULT GetDuration(
REFERENCE_TIME * duration
);
HRESULT GetDuration2(
double * duration
);
HRESULT SetDefaultFPS(
double fps
);
HRESULT GetDefaultFPS(
double * fps
);
HRESULT IsDirty(
BOOL * dirty
);
HRESULT GetDirtyRange(
REFERENCE_TIME * start,
REFERENCE_TIME * stop
);
HRESULT GetCountOfType(
long group,
long * value,
long * value_with_comps,
TIMELINE_MAJOR_TYPE type
);
HRESULT ValidateSourceNames(
long flags,
IMediaLocator * override,
LONG_PTR notify_event
);
HRESULT SetDefaultTransition(
GUID * guid
);
HRESULT GetDefaultTransition(
GUID * guid
);
HRESULT SetDefaultEffect(
GUID * guid
);
HRESULT GetDefaultEffect(
GUID * guid
);
HRESULT SetDefaultTransitionB(
BSTR guidb
);
HRESULT GetDefaultTransitionB(
[out,retval] BSTR * guidb
);
HRESULT SetDefaultEffectB(
BSTR guidb
);
HRESULT GetDefaultEffectB(
[out,retval] BSTR * guidb
);
};
[
uuid(78530B75-61F9-11D2-8CAD-00A024580902)
]
coclass AMTimeline
{
[default] interface IAMTimeline;
interface IPersistStream;
interface IAMSetErrorLog;
};
[
object,
uuid(9EED4F00-B8A6-11d2-8023-00C0DF10D434),
odl,
pointer_default(unique)
]
interface IAMTimelineGroup : IUnknown
{
HRESULT SetTimeline(
IAMTimeline * timeline
);
HRESULT GetTimeline(
[out] IAMTimeline ** timeline
);
HRESULT GetPriority(
long * priority
);
HRESULT GetMediaType(
[out] AM_MEDIA_TYPE *
);
HRESULT SetMediaType(
[in] AM_MEDIA_TYPE *
);
HRESULT SetOutputFPS(
double fps
);
HRESULT GetOutputFPS(
double * fps
);
HRESULT SetGroupName(
BSTR name
);
HRESULT GetGroupName(
[out,retval] BSTR * name
);
HRESULT SetPreviewMode(
BOOL preview
);
HRESULT GetPreviewMode(
BOOL * preview
);
HRESULT SetMediaTypeForVB(
[in] long type
);
HRESULT GetOutputBuffering(
[out] int * buffer
);
HRESULT SetOutputBuffering(
[in] int buffer
);
HRESULT SetSmartRecompressFormat(
long * format
);
HRESULT GetSmartRecompressFormat(
long ** format
);
HRESULT IsSmartRecompressFormatSet(
BOOL * set
);
HRESULT IsRecompressFormatDirty(
BOOL * dirty
);
HRESULT ClearRecompressFormatDirty();
HRESULT SetRecompFormatFromSource(
IAMTimelineSrc * source
);
};
[
object,
local,
uuid(78530B77-61F9-11D2-8CAD-00A024580902),
odl,
pointer_default(unique)
]
interface IAMTimelineObj : IUnknown
{
HRESULT GetStartStop(
REFERENCE_TIME * start,
REFERENCE_TIME * stop
);
HRESULT GetStartStop2(
REFTIME * start, REFTIME * stop
);
HRESULT FixTimes(
REFERENCE_TIME * start, REFERENCE_TIME * stop
);
HRESULT FixTimes2(
REFTIME * start, REFTIME * stop
);
HRESULT SetStartStop(
REFERENCE_TIME start,
REFERENCE_TIME stop
);
HRESULT SetStartStop2(
REFTIME start,
REFTIME stop
);
HRESULT GetPropertySetter(
[out,retval] IPropertySetter ** setter
);
HRESULT SetPropertySetter(
IPropertySetter * setter
);
HRESULT GetSubObject(
[out,retval] IUnknown ** obj
);
HRESULT SetSubObject(
IUnknown * obj
);
HRESULT SetSubObjectGUID(
GUID guid
);
HRESULT SetSubObjectGUIDB(
BSTR guidb
);
HRESULT GetSubObjectGUID(
GUID * guid
);
HRESULT GetSubObjectGUIDB(
[out,retval] BSTR * guidb
);
HRESULT GetSubObjectLoaded(
BOOL * loaded
);
HRESULT GetTimelineType(
TIMELINE_MAJOR_TYPE * type
);
HRESULT SetTimelineType(
TIMELINE_MAJOR_TYPE type
);
HRESULT GetUserID(
long * id
);
HRESULT SetUserID(
long id
);
HRESULT GetGenID(
long * id
);
HRESULT GetUserName(
[out,retval] BSTR * name
);
HRESULT SetUserName(
BSTR name
);
HRESULT GetUserData(
BYTE * data,
long * size
);
HRESULT SetUserData(
BYTE * data,
long size
);
HRESULT GetMuted(
BOOL * muted
);
HRESULT SetMuted(
BOOL muted
);
HRESULT GetLocked(
BOOL * locked
);
HRESULT SetLocked(
BOOL locked
);
HRESULT GetDirtyRange(
REFERENCE_TIME * start,
REFERENCE_TIME * stop
);
HRESULT GetDirtyRange2(
REFTIME * start,
REFTIME * stop
);
HRESULT SetDirtyRange(
REFERENCE_TIME start,
REFERENCE_TIME stop
);
HRESULT SetDirtyRange2(
REFTIME start,
REFTIME stop
);
HRESULT ClearDirty();
HRESULT Remove();
HRESULT RemoveAll();
HRESULT GetTimelineNoRef(
IAMTimeline ** timeline
);
HRESULT GetGroupIBelongTo(
[out] IAMTimelineGroup ** group
);
HRESULT GetEmbedDepth(
long * depth
);
};
[
object,
uuid(78530B79-61F9-11D2-8CAD-00A024580902),
odl,
pointer_default(unique)
]
interface IAMTimelineSrc : IUnknown
{
HRESULT GetMediaTimes(
REFERENCE_TIME * start,
REFERENCE_TIME * stop
);
HRESULT GetMediaTimes2(
REFTIME * start,
REFTIME * stop
);
HRESULT ModifyStopTime(
REFERENCE_TIME stop
);
HRESULT ModifyStopTime2(
REFTIME stop
);
HRESULT FixMediaTimes(
REFERENCE_TIME * start,
REFERENCE_TIME * stop
);
HRESULT FixMediaTimes2(
REFTIME * start,
REFTIME * stop
);
HRESULT SetMediaTimes(
REFERENCE_TIME Start,
REFERENCE_TIME Stop
);
HRESULT SetMediaTimes2(
REFTIME Start,
REFTIME Stop
);
HRESULT SetMediaLength(
REFERENCE_TIME length
);
HRESULT SetMediaLength2(
REFTIME length
);
HRESULT GetMediaLength(
REFERENCE_TIME * length
);
HRESULT GetMediaLength2(
REFTIME * length
);
HRESULT GetMediaName(
[out,retval] BSTR * name
);
HRESULT SetMediaName(
BSTR name
);
HRESULT SpliceWithNext(
IAMTimelineObj * next
);
HRESULT GetStreamNumber(
long * num
);
HRESULT SetStreamNumber(
long num
);
HRESULT IsNormalRate(
BOOL * normal
);
HRESULT GetDefaultFPS(
double * fps
);
HRESULT SetDefaultFPS(
double fps
);
HRESULT GetStretchMode(
int * mode
);
HRESULT SetStretchMode(
int mode
);
};
enum
{
E_NOTINTREE = 0x80040400,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment