AAX SDK  2.4.1
Avid Audio Extensions Development Kit
List of all members | Public Member Functions
AAX_IPageTable Class Referenceabstract

#include <AAX_IPageTable.h>

Inheritance diagram for AAX_IPageTable:
[legend]

Description

Interface to the host's representation of a plug-in instance's page table.

See also
AAX_IEffectParameters::UpdatePageTable()

Public Member Functions

virtual ~AAX_IPageTable ()
 Virtual destructor. More...
 
virtual AAX_Result Clear ()=0
 Clears all parameter mappings from the table. More...
 
virtual AAX_Result Empty (AAX_CBoolean &oEmpty) const =0
 Indicates whether the table is empty. More...
 
virtual AAX_Result GetNumPages (int32_t &oNumPages) const =0
 Get the number of pages currently in this table. More...
 
virtual AAX_Result InsertPage (int32_t iPage)=0
 Insert a new empty page before the page at index iPage. More...
 
virtual AAX_Result RemovePage (int32_t iPage)=0
 Remove the page at index iPage. More...
 
virtual AAX_Result GetNumMappedParameterIDs (int32_t iPage, int32_t &oNumParameterIdentifiers) const =0
 Returns the total number of parameter IDs which are mapped to a page. More...
 
virtual AAX_Result ClearMappedParameter (int32_t iPage, int32_t iIndex)=0
 Clear the parameter at a particular index in this table. More...
 
virtual AAX_Result GetMappedParameterID (int32_t iPage, int32_t iIndex, AAX_IString &oParameterIdentifier) const =0
 Get the parameter identifier which is currently mapped to an index in this table. More...
 
virtual AAX_Result MapParameterID (AAX_CPageTableParamID iParameterIdentifier, int32_t iPage, int32_t iIndex)=0
 Map a parameter to this table. More...
 
virtual AAX_Result GetNumParametersWithNameVariations (int32_t &oNumParameterIdentifiers) const =0
 
virtual AAX_Result GetNameVariationParameterIDAtIndex (int32_t iIndex, AAX_IString &oParameterIdentifier) const =0
 
virtual AAX_Result GetNumNameVariationsForParameter (AAX_CPageTableParamID iParameterIdentifier, int32_t &oNumVariations) const =0
 
virtual AAX_Result GetParameterNameVariationAtIndex (AAX_CPageTableParamID iParameterIdentifier, int32_t iIndex, AAX_IString &oNameVariation, int32_t &oLength) const =0
 
virtual AAX_Result GetParameterNameVariationOfLength (AAX_CPageTableParamID iParameterIdentifier, int32_t iLength, AAX_IString &oNameVariation) const =0
 
virtual AAX_Result ClearParameterNameVariations ()=0
 
virtual AAX_Result ClearNameVariationsForParameter (AAX_CPageTableParamID iParameterIdentifier)=0
 
virtual AAX_Result SetParameterNameVariation (AAX_CPageTableParamID iParameterIdentifier, const AAX_IString &iNameVariation, int32_t iLength)=0
 

Constructor & Destructor Documentation

◆ ~AAX_IPageTable()

virtual AAX_IPageTable::~AAX_IPageTable ( )
inlinevirtual

Virtual destructor.

Note
This destructor MUST be virtual to prevent memory leaks.

Member Function Documentation

◆ Clear()

virtual AAX_Result AAX_IPageTable::Clear ( )
pure virtual

Clears all parameter mappings from the table.

This method does not clear any parameter name variations from the table. For that, use AAX_IPageTable::ClearParameterNameVariations() or AAX_IPageTable::ClearNameVariationsForParameter()

Implemented in AAX_VPageTable.

◆ Empty()

virtual AAX_Result AAX_IPageTable::Empty ( AAX_CBoolean oEmpty) const
pure virtual

Indicates whether the table is empty.

A table is empty if it contains no pages. A table which contains pages but no parameter assignments is not empty. A table which has associated parameter name variations but no pages is empty.

Parameters
[out]oEmptytrue if this table is empty

Implemented in AAX_VPageTable.

◆ GetNumPages()

virtual AAX_Result AAX_IPageTable::GetNumPages ( int32_t &  oNumPages) const
pure virtual

Get the number of pages currently in this table.

Parameters
[out]oNumPagesThe number of pages which are present in the page table. Some pages might not contain any parameter assignments.

Implemented in AAX_VPageTable.

◆ InsertPage()

virtual AAX_Result AAX_IPageTable::InsertPage ( int32_t  iPage)
pure virtual

Insert a new empty page before the page at index iPage.

Returns
AAX_ERROR_INVALID_ARGUMENT if iPage is greater than the total number of pages
Parameters
[in]iPageThe insertion point page index

Implemented in AAX_VPageTable.

◆ RemovePage()

virtual AAX_Result AAX_IPageTable::RemovePage ( int32_t  iPage)
pure virtual

Remove the page at index iPage.

Returns
AAX_ERROR_INVALID_ARGUMENT if iPage is greater than the index of the last existing page
Parameters
[in]iPageThe target page index

Implemented in AAX_VPageTable.

◆ GetNumMappedParameterIDs()

virtual AAX_Result AAX_IPageTable::GetNumMappedParameterIDs ( int32_t  iPage,
int32_t &  oNumParameterIdentifiers 
) const
pure virtual

Returns the total number of parameter IDs which are mapped to a page.

Note
The number of mapped parameter IDs does not correspond to the actual slot indices of the parameter assignments. For example, a page could have three total parameter assignments with parameters mapped to slots 2, 4, and 6.
Returns
AAX_ERROR_INVALID_ARGUMENT if iPage is greater than the index of the last existing page
Parameters
[in]iPageThe target page index
[out]oNumParameterIdentifiersThe number of parameter identifiers which are mapped to the target page

Implemented in AAX_VPageTable.

◆ ClearMappedParameter()

virtual AAX_Result AAX_IPageTable::ClearMappedParameter ( int32_t  iPage,
int32_t  iIndex 
)
pure virtual

Clear the parameter at a particular index in this table.

Returns
AAX_SUCCESS even if no parameter was mapped at the given index (the index is still clear)
Parameters
[in]iPageThe target page index
[in]iIndexThe target parameter slot index within the target page

Implemented in AAX_VPageTable.

◆ GetMappedParameterID()

virtual AAX_Result AAX_IPageTable::GetMappedParameterID ( int32_t  iPage,
int32_t  iIndex,
AAX_IString oParameterIdentifier 
) const
pure virtual

Get the parameter identifier which is currently mapped to an index in this table.

Returns
AAX_ERROR_INVALID_ARGUMENT if no parameter is mapped at the specified page/index location
Parameters
[in]iPageThe target page index
[in]iIndexThe target parameter slot index within the target page
[out]oParameterIdentifierThe identifier used for the mapped parameter in the page table (may be parameter name or ID)

Implemented in AAX_VPageTable.

◆ MapParameterID()

virtual AAX_Result AAX_IPageTable::MapParameterID ( AAX_CPageTableParamID  iParameterIdentifier,
int32_t  iPage,
int32_t  iIndex 
)
pure virtual

Map a parameter to this table.

If iParameterIdentifier is an empty string then the parameter assignment will be cleared

Returns
AAX_ERROR_NULL_ARGUMENT if iParameterIdentifier is null
AAX_ERROR_INVALID_ARGUMENT if iPage is greater than the index of the last existing page
AAX_ERROR_INVALID_ARGUMENT if iIndex is negative
Parameters
[in]iParameterIdentifierThe identifier for the parameter which will be mapped
[in]iPageThe target page index
[in]iIndexThe target parameter slot index within the target page

Implemented in AAX_VPageTable.

◆ GetNumParametersWithNameVariations()

virtual AAX_Result AAX_IPageTable::GetNumParametersWithNameVariations ( int32_t &  oNumParameterIdentifiers) const
pure virtual

Get the number of parameters with name variations defined for the current table type

Provides the number of parameters with lt;ControlNameVariationslt; which are explicitly defined for the current page table type.

Note
Normally parameter name variations are only used with the 'PgTL' table type

Implemented in AAX_VPageTable.

◆ GetNameVariationParameterIDAtIndex()

virtual AAX_Result AAX_IPageTable::GetNameVariationParameterIDAtIndex ( int32_t  iIndex,
AAX_IString oParameterIdentifier 
) const
pure virtual

Get the identifier for a parameter with name variations defined for the current table type

Note
Normally parameter name variations are only used with the 'PgTL' table type
  • See also
    AAX_IPageTable::GetNumParametersWithNameVariations()
    Parameters
    [in]iIndexThe target parameter index within the list of parameters with explicit name variations defined for this table type.
    [out]oParameterIdentifierThe identifier used for the parameter in the page table name variations list (may be parameter name or ID)

Implemented in AAX_VPageTable.

◆ GetNumNameVariationsForParameter()

virtual AAX_Result AAX_IPageTable::GetNumNameVariationsForParameter ( AAX_CPageTableParamID  iParameterIdentifier,
int32_t &  oNumVariations 
) const
pure virtual

Get the number of name variations defined for a parameter

Provides the number of lt;ControlNameVariationslt; which are explicitly defined for iParameterIdentifier for the current page table type. No fallback logic is used to resolve this to the list of variations which would actually be used for an attached control surface if no explicit variations are defined for the current table type.

Note
Normally parameter name variations are only used with the 'PgTL' table type
  • See also
    AAX_IPageTable::GetParameterNameVariationAtIndex()
    Returns
    AAX_SUCCESS and provides zero to oNumVariations if iParameterIdentifier is not found
    Parameters
    [in]iParameterIdentifierThe identifier for the parameter
    [out]oNumVariationsThe number of name variations which are defined for this parameter and explicitly associated with the current table type.

Implemented in AAX_VPageTable.

◆ GetParameterNameVariationAtIndex()

virtual AAX_Result AAX_IPageTable::GetParameterNameVariationAtIndex ( AAX_CPageTableParamID  iParameterIdentifier,
int32_t  iIndex,
AAX_IString oNameVariation,
int32_t &  oLength 
) const
pure virtual

Get a parameter name variation from the page table

Only returns lt;ControlNameVariationslt; which are explicitly defined for the current page table type. No fallback logic is used to resolve this to the abbreviation which would actually be shown on an attached control surface if no explicit variation is defined for the current table type.

Note
Normally parameter name variations are only used with the 'PgTL' table type

Implemented in AAX_VPageTable.

◆ GetParameterNameVariationOfLength()

virtual AAX_Result AAX_IPageTable::GetParameterNameVariationOfLength ( AAX_CPageTableParamID  iParameterIdentifier,
int32_t  iLength,
AAX_IString oNameVariation 
) const
pure virtual

Get a parameter name variation of a particular length from the page table

Only returns lt;ControlNameVariationslt; which are explicitly defined of iLength for the current page table type. No fallback logic is used to resolve this to the abbreviation which would actually be shown on an attached control surface if no explicit variation is defined for the specified length or current table type.

Note
Normally parameter name variations are only used with the 'PgTL' table type

Implemented in AAX_VPageTable.

◆ ClearParameterNameVariations()

virtual AAX_Result AAX_IPageTable::ClearParameterNameVariations ( )
pure virtual

Clears all name variations for the current page table type

Note
Normally parameter name variations are only used with the 'PgTL' table type
See also
AAX_IPageTable::Clear()
AAX_IPageTable::ClearNameVariationsForParameter()

Implemented in AAX_VPageTable.

◆ ClearNameVariationsForParameter()

virtual AAX_Result AAX_IPageTable::ClearNameVariationsForParameter ( AAX_CPageTableParamID  iParameterIdentifier)
pure virtual

Clears all name variations for a single parameter for the current page table type

Warning
This will invalidate the list of parameter name variations indices, i.e. the parameter identifier associated with each index by AAX_IPageTable::GetNameVariationParameterIDAtIndex()
Note
Normally parameter name variations are only used with the 'PgTL' table type
See also
AAX_IPageTable::Clear()
AAX_IPageTable::ClearParameterNameVariations()
Returns
AAX_SUCCESS and provides zero to oNumVariations if iParameterIdentifier is not found
Parameters
[in]iParameterIdentifierThe identifier for the parameter

Implemented in AAX_VPageTable.

◆ SetParameterNameVariation()

virtual AAX_Result AAX_IPageTable::SetParameterNameVariation ( AAX_CPageTableParamID  iParameterIdentifier,
const AAX_IString iNameVariation,
int32_t  iLength 
)
pure virtual

Sets a name variation explicitly for the current page table type

This will add a new name variation or overwrite the existing name variation with the same length which is defined for the current table type.

Warning
If no name variation previously existed for this parameter then this will invalidate the list of parameter name variations indices, i.e. the parameter identifier associated with each index by AAX_IPageTable::GetNameVariationParameterIDAtIndex()
Note
Normally parameter name variations are only used with the 'PgTL' table type
Returns
AAX_ERROR_INVALID_ARGUMENT if iNameVariation is empty or if iLength is less than zero
Parameters
[in]iParameterIdentifierThe identifier for the parameter
[in]iNameVariationThe new parameter name variation
[in]iLengthThe length value for this name variation. This corresponds to the variation's sz attribute in the page table XML and is not required to match the length of iNameVariation.

Implemented in AAX_VPageTable.


The documentation for this class was generated from the following file: