Fovia's C++ Client/Server API
Public Member Functions | List of all members
IMovie Struct Referenceabstract
Inheritance diagram for IMovie:
IRoot

Public Member Functions

virtual signed int AskInterface (const BGUID *piid, IRoot **ppr)=0
 
virtual signed int DecRef ()=0
 
virtual signed int FrameModified ()=0
 
virtual signed int GetFrameAt (IMovieMakerKeyFrame **ret, signed long long idx)=0
 
virtual signed int GetInterpolatedFrame (RENDER_PARAMS &ret, double loc, signed int windowWidth)=0
 
virtual signed int GetInterpolatedFrameEx (RENDER_PARAMS &ret, RENDER_PARAMS &ret2, ENUM_WINDOW_TYPES &windowType, double loc, signed int windowWidth)=0
 
virtual signed int GetMovieName (char **pszMovieName)=0
 
virtual signed int GetNumFrames (signed long long &ret)=0
 
virtual signed int GetStartIdx (signed long long &ret, double loc)=0
 
virtual signed int GetTotalTime (double &ret)=0
 
virtual signed int IncRef ()=0
 
virtual signed int InsertFrame (IMovieMakerKeyFrame *frame, signed long long idx)=0
 
virtual signed int RemoveFrame (IMovieMakerKeyFrame *frame)=0
 
virtual signed int RemoveFrameEx (IMovieMakerKeyFrame **ret, signed long long idx)=0
 
virtual signed int SetConstantVelocity (double millimetersPerSecond)=0
 
virtual signed int SetFrameAt (IMovieMakerKeyFrame *frame, signed long long idx)=0
 
virtual signed int SetMovieName (char *szMovieName)=0
 
- Public Member Functions inherited from IRoot
template<class T >
signed int AskInterface (T **pp)
 

Detailed Description

Object that describes a movie used by IMovieMaker. You should set key frames on this object until you are satisfied with the movie. Then, use IMovieMaker to create the movie at the desired frame rate. Note that you can perform quick previewing of this movie by calling GetInterpolatedFrame() with the time in seconds into the movie and you will get a RENDER_PARAMS to apply to your preview window. To get the total play time of the movie call GetTotalTime(). Use ILibrary::CreateObject() to create this object.

Member Function Documentation

virtual signed int IMovie::AskInterface ( const BGUID piid,
IRoot **  ppr 
)
pure virtual

Queries this object to see if the interface piid is supported and returns the result in ppr.

Parameters
piidThe BGUID of the requested interface.
pprThe address of an IRoot pointer which will receive the new interface.
Returns
S_OK if the interface is supported. E_FAIL if it is not.

Implements IRoot.

virtual signed int IMovie::DecRef ( )
pure virtual

Decreases the reference count on this object by 1. If the reference count reaches 0, the object is deallocated.

Implements IRoot.

virtual signed int IMovie::FrameModified ( )
pure virtual

Notifies the movie object that a frame has been modified. This is necessary for returning metrics such as total time and returning interpolated frames.

virtual signed int IMovie::GetFrameAt ( IMovieMakerKeyFrame **  ret,
signed long long  idx 
)
pure virtual

Returns the key frame at the specified index into ret.

Parameters
retThe address of the key frame interface to get the address of the frame.
idxThe index of the frame to get.
virtual signed int IMovie::GetInterpolatedFrame ( RENDER_PARAMS ret,
double  loc,
signed int  windowWidth 
)
pure virtual

Returns a RENDER_PARAMS that describes the frame specified. If there is not a key frame at the frame specified, the RENDER_PARAMS will be generated by interpolating values between the closest key frames.

Parameters
retThe interpolated key frame result.
locThe time in seconds into the movie from which to create the key frame.
windowWidthThe width of the render window that will receive the RENDER_PARAMS. This adjusts the RENDER_PARAMS::Zoom so that the image fills the window properly.
virtual signed int IMovie::GetInterpolatedFrameEx ( RENDER_PARAMS ret,
RENDER_PARAMS ret2,
ENUM_WINDOW_TYPES windowType,
double  loc,
signed int  windowWidth 
)
pure virtual

Reserved for future use.

virtual signed int IMovie::GetMovieName ( char **  pszMovieName)
pure virtual

Returns the pointer to the string containing the name of the movie into the variable at address pszMovieName. This is a shallow pointer and should not be deallocated.

Parameters
pszMovieNameThe address of the char* to get the name of the movie. This is a shallow pointer and should not be deallocated.
virtual signed int IMovie::GetNumFrames ( signed long long &  ret)
pure virtual

Returns the number of key frames in the movie into ret.

Parameters
retThe variable to get the number of key frames in the movie.
virtual signed int IMovie::GetStartIdx ( signed long long &  ret,
double  loc 
)
pure virtual

Given the start time in seconds loc, The index of the key frame just before that time is returned into ret.

Parameters
locThe time in seconds to get the previous key frame.
retThe key frame just before time loc.
virtual signed int IMovie::GetTotalTime ( double &  ret)
pure virtual

Returns the total run time of the movie in seconds into ret.

Parameters
retGets the total run time of the movie in seconds.
virtual signed int IMovie::IncRef ( )
pure virtual

Increases the reference count on this object by 1. You do not need to call this after an object is first created. It is 1 by default.

Implements IRoot.

virtual signed int IMovie::InsertFrame ( IMovieMakerKeyFrame frame,
signed long long  idx 
)
pure virtual

Inserts an IMovieMakerKeyFrame into the movie at index idx.

Parameters
frameThe IMovieMakerKeyFrame to insert into the movie.
idxThe index to insert the key frame. The key frame that used to be at that index becomes the keyframe after this new one. If idx is the number of key frames, this frame is inserted at the end of the movie.
virtual signed int IMovie::RemoveFrame ( IMovieMakerKeyFrame frame)
pure virtual

Removes the specified key frame from the movie.

Parameters
frameThe key frame to remove from the movie.
Returns
S_OK if the movie contained the specified frame, E_FAIL otherwise.
virtual signed int IMovie::RemoveFrameEx ( IMovieMakerKeyFrame **  ret,
signed long long  idx 
)
pure virtual

Removes the key frame at the specified index and returns it into ret.

Parameters
retThe address of the key frame interface to get the location of the frame removed.
idxThe index of the frame to remove.
virtual signed int IMovie::SetConstantVelocity ( double  millimetersPerSecond)
pure virtual

Sets the lengths of all the key frames in the movie such that eye locations move at the velocity millimetersPerSecond.

Parameters
millimetersPerSecondThe new speed at which all eye location movements will now go.
virtual signed int IMovie::SetFrameAt ( IMovieMakerKeyFrame frame,
signed long long  idx 
)
pure virtual

Sets the key frame at the specified index to frame. The previous frame has DecRef() called on it and is otherwise forgotten.

Parameters
frameThe key frame interface to set at index idx.
idxThe index of the frame to set.
virtual signed int IMovie::SetMovieName ( char *  szMovieName)
pure virtual

Sets the movie name to szMovieName.

Parameters
szMovieNameThe new name for the movie.