AAFA Developer Support

Public Member Functions
IAAFInterpolator Interface Reference

The AAFInterpolator interface describes the calls of a plugin which handles interpolating between two IAAFControlPoints in an IAAFVaryingValue. More...

List of all members.

Public Member Functions

HRESULT GetNumTypesSupported ([out] aafUInt32 *pCount)
 Each interpolator plugin will support a given number of interpolator.
HRESULT GetIndexedSupportedType ([in] aafUInt32 index,[out] IAAFTypeDef **ppType)
 Each interpolator plugin will support a given number of interpolator.
HRESULT GetTypeDefinition ([out] IAAFTypeDef **ppTypeDef)
 Places the data definition object attached to this interpolator into the ppTypeDef argument.
HRESULT SetTypeDefinition ([in] IAAFTypeDef *pTypeDef)
 Sets the data definition of this interpolator to be the given one.
HRESULT GetParameter ([out] IAAFParameter **ppParameter)
 Places the parameter object attached to this interpolator into the ppParameter argument.
HRESULT SetParameter ([in] IAAFParameter *pParameter)
 Sets the parmeter of this interpolator to be the given one.
HRESULT InterpolateOne ([in] aafRational_t *pInputValue,[in] aafUInt32 valueSize,[out, size_is(valueSize), length_is(*bytesRead)] aafDataBuffer_t pValue,[out] aafUInt32 *bytesRead)
 Interpolates between known control points on the value, and.
HRESULT InterpolateMany ([in] aafRational_t *pStartInputValue,[in] aafRational_t *pInputStep,[in] aafUInt32 generateCount,[out] aafMemPtr_t pOutputValue,[out] aafUInt32 *pResultCount)
 Interpolates between known control points on the value, and.

Detailed Description

The AAFInterpolator interface describes the calls of a plugin which handles interpolating between two IAAFControlPoints in an IAAFVaryingValue.

There will be one InterpolatorDefinition for each method of interpolation (ex: Step, Linear, Log) supported, so that the SDK can call GetIndexedSupportedType() repeatedly in order to find out what types this interpolator suppports.

The AAFPluginManager keeps a copy of each interpolator in a table, along with cached copies of pertinant metadata about the interpolator.

In addition to the specific error results listed for each method, all methods in this interface may also return one of the following values:

AAFRESULT_NOMEMORY

IAAFPlugin

Definition at line 3552 of file AAFPlugin.idl.


Member Function Documentation

HRESULT IAAFInterpolator::GetIndexedSupportedType ( [in] aafUInt32  index,
[out] IAAFTypeDef **  ppType 
)

Each interpolator plugin will support a given number of interpolator.

types for a given number of data types. This call returns one of the data types supported using an index. The index value should be between 0 and one less than the value returned by GetNumTypesSupported(). The number of flavours is returned by GetNumTypesSupported(), and cached by the AAFPluginManager.

An interpolator is expected to support all data types for each interpolation method which the interpolator supports.

This method should return only the following codes. If more than one of the listed errors is in effect, it should return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NULL_PARAM

  • pVariant is null.

AAFRESULT_OUT_OF_RANGE

  • index must be >= 0 and < the number of flavours returned in GetNumTypesSupported().
    Parameters:
    index[in] Which flavour to get the ID for
    ppType[out] The returned type definition
HRESULT IAAFInterpolator::GetNumTypesSupported ( [out] aafUInt32 *  pCount)

Each interpolator plugin will support a given number of interpolator.

types for a given number of data types. This call returns the number of data types supported, so that the SDK can call GetIndexedSupportedType() repeatedly in order to find out what types this interpolator suppports.

An interpolator is expected to support all data types for each interpolation method which the interpolator supports.

This method should return only the following codes. If more than one of the listed errors is in effect, it should return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NULL_PARAM

  • pCount is null.
    Parameters:
    pCount[out] Number of data types supported
HRESULT IAAFInterpolator::GetParameter ( [out] IAAFParameter **  ppParameter)

Places the parameter object attached to this interpolator into the ppParameter argument.

If none exists yet, NULL is placed into the ppParameter argument.

The returned parameter object, if it exists, is AddRef()ed before it is returned.

Succeeds if all of the following are true:

  • the ppParameter pointer is valid.
  • A valid data definition exists.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NULL_PARAM

  • ppParameter is null.
Parameters:
ppParameter[out] Returned data definition object
HRESULT IAAFInterpolator::GetTypeDefinition ( [out] IAAFTypeDef **  ppTypeDef)

Places the data definition object attached to this interpolator into the ppTypeDef argument.

If none exists yet, NULL is placed into the ppTypeDef argument.

The returned data definition object, if it exists, is AddRef()ed before it is returned.

Succeeds if all of the following are true:

  • the ppTypeDef pointer is valid.
  • A valid data definition exists.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NULL_PARAM

  • ppTypeDef is null.
Parameters:
ppTypeDef[out] Returned data definition object
HRESULT IAAFInterpolator::InterpolateMany ( [in] aafRational_t *  pStartInputValue,
[in] aafRational_t *  pInputStep,
[in] aafUInt32  generateCount,
[out] aafMemPtr_t  pOutputValue,
[out] aafUInt32 *  pResultCount 
)

Interpolates between known control points on the value, and.

creates an array of new AAFControlPoint which which can be imagined to exist at the given inputValue. While InterpolateOne() generates a single point, this function starts at a given offset and generates interpolations until either generateCount is reached, or the next result would have an input value of greater than one. Succeeds if all of the following are true:

  • the pInputValue pointer is valid.
  • the pInputStep pointer is valid.
  • the ppOutputValue pointer is valid.
  • the pResultCount pointer is valid.
  • The input value is between 0 (effect start), to 1 (effect end) inclusive.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_INPUT_RANGE

  • The input value must be between 0 and 1, inclusive.

AAFRESULT_NULL_PARAM

  • pInputValue or ppOutputValue or pInputStep or pResultCount is null.
Parameters:
pStartInputValue[in] Input values are from 0 (effect start), to 1 (effect end) inclusive.
pInputStep[in] Amount to add to *pStartInputValue to get the next point to interpolate
generateCount[in] The number of points to interpolate
pOutputValue[out] an array of generated control points
pResultCount[out] The number of points actually generated
HRESULT IAAFInterpolator::InterpolateOne ( [in] aafRational_t *  pInputValue,
[in] aafUInt32  valueSize,
[out, size_is(valueSize), length_is(*bytesRead)] aafDataBuffer_t  pValue,
[out] aafUInt32 *  bytesRead 
)

Interpolates between known control points on the value, and.

creates a new AAFControlPoint which which can be imagined to exist at the given inputValue. Succeeds if all of the following are true:

  • the pInputValue pointer is valid.
  • the ppOutputValue pointer is valid.
  • The input value is between 0 (effect start), to 1 (effect end) inclusive.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_INPUT_RANGE

  • The input value must be between 0 and 1, inclusive.

AAFRESULT_NULL_PARAM

  • pInputValue or ppOutputValue is null.
Parameters:
pInputValue[in] Input values are from 0 (effect start), to 1 (effect end) inclusive.
valueSize[in] Size of preallocated buffer
pValue[out, size_is(valueSize),length_is(*bytesRead)] A generated control point
bytesRead[out] The number of bytes actually transferred
HRESULT IAAFInterpolator::SetParameter ( [in] IAAFParameter pParameter)

Sets the parmeter of this interpolator to be the given one.

Succeeds if all of the following are true:

  • the pParameter pointer is valid.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NULL_PARAM

  • pParameter is null.
Parameters:
pParameter[in] Parameter object
HRESULT IAAFInterpolator::SetTypeDefinition ( [in] IAAFTypeDef pTypeDef)

Sets the data definition of this interpolator to be the given one.

Succeeds if all of the following are true:

  • the pTypeDef pointer is valid.

This method will return the following codes. If more than one of the listed errors is in effect, it will return the first one encountered in the order given below:

AAFRESULT_SUCCESS

  • succeeded. (This is the only code indicating success.)

AAFRESULT_NULL_PARAM

  • pTypeDef is null.
Parameters:
pTypeDef[in] Data definition object

Generated on Wed Jul 4 2012 22:13:37 for by doxygen 1.7.4