| AAX SDK 2.8.0 Avid Audio Extensions Development Kit

- Welcome
- Manual
- Classes
- Files
- Lists
- Support

- Class List
- Class Index
- Class Hierarchy
- Class Members

Loading...
Searching...
No Matches
List of all members
AAX_IACFEffectParameters Class Referenceabstract
AAX SDK Manual » Core AAX Interface » Data model interface

`#include <AAX_IACFEffectParameters.h>`

Inheritance diagram for AAX_IACFEffectParameters:
[legend]
Collaboration diagram for AAX_IACFEffectParameters:
[legend]

## Description

The interface for an AAX Plug-in's data model.

This is the interface for an instance of a plug-in's data model that gets exposed to the host application. The AAX host interacts with your plug-in's data model via this interface, which includes methods that store and update of your plug-in's internal data. See Data model interface.

Note
  Your implementation of this interface must inherit from AAX_IEffectParameters.

Todo:
  Add documentation for expected error state return values

## Public Member Functions
Initialization and uninitialization
virtual AAX_Result | Initialize (IACFUnknown *iController)=0
| Main data model initialization. Called when plug-in instance is first instantiated.
virtual AAX_Result | Uninitialize ()=0
| Main data model uninitialization.
AAX host and plug-in event notification
virtual AAX_Result | NotificationReceived (AAX_CTypeID inNotificationType, const void *inNotificationData, uint32_t inNotificationDataSize)=0
| Notification Hook.
Parameter information
These methods are used by the AAX host to retrieve information about the plug-in's data model. For information about adding parameters to the plug-in and otherwise modifying the plug-in's data model, see AAX_CParameterManager. For information about parameters, see AAX_IParameter.
virtual AAX_Result | GetNumberOfParameters (int32_t *oNumControls) const =0
| CALL: Retrieves the total number of plug-in parameters.
virtual AAX_Result | GetMasterBypassParameter (AAX_IString *oIDString) const =0
| CALL: Retrieves the ID of the plug-in's Master Bypass parameter.
virtual AAX_Result | GetParameterIsAutomatable (AAX_CParamID iParameterID, AAX_CBoolean *oAutomatable) const =0
| CALL: Retrieves information about a parameter's automatable status.
virtual AAX_Result | GetParameterNumberOfSteps (AAX_CParamID iParameterID, int32_t *oNumSteps) const =0
| CALL: Retrieves the number of discrete steps for a parameter.
virtual AAX_Result | GetParameterName (AAX_CParamID iParameterID, AAX_IString *oName) const =0
| CALL: Retrieves the full name for a parameter.
virtual AAX_Result | GetParameterNameOfLength (AAX_CParamID iParameterID, AAX_IString *oName, int32_t iNameLength) const =0
| CALL: Retrieves an abbreviated name for a parameter.
virtual AAX_Result | GetParameterDefaultNormalizedValue (AAX_CParamID iParameterID, double *oValue) const =0
| CALL: Retrieves default value of a parameter.
virtual AAX_Result | SetParameterDefaultNormalizedValue (AAX_CParamID iParameterID, double iValue)=0
| CALL: Sets the default value of a parameter.
virtual AAX_Result | GetParameterType (AAX_CParamID iParameterID, AAX_EParameterType *oParameterType) const =0
| CALL: Retrieves the type of a parameter.
virtual AAX_Result | GetParameterOrientation (AAX_CParamID iParameterID, AAX_EParameterOrientation *oParameterOrientation) const =0
| CALL: Retrieves the orientation that should be applied to a parameter's controls.
virtual AAX_Result | GetParameter (AAX_CParamID iParameterID, AAX_IParameter **oParameter)=0
| CALL: Retrieves an arbitrary setting within a parameter.
virtual AAX_Result | GetParameterIndex (AAX_CParamID iParameterID, int32_t *oControlIndex) const =0
| CALL: Retrieves the index of a parameter.
virtual AAX_Result | GetParameterIDFromIndex (int32_t iControlIndex, AAX_IString *oParameterIDString) const =0
| CALL: Retrieves the ID of a parameter.
virtual AAX_Result | GetParameterValueInfo (AAX_CParamID iParameterID, int32_t iSelector, int32_t *oValue) const =0
| CALL: Retrieves a property of a parameter.
Parameter setters and getters
These methods are used by the AAX host and by the plug-in's UI to retrieve and modify the values of the plug-in's parameters. Note The parameter setters in this section may generate asynchronous requests.
virtual AAX_Result | GetParameterValueFromString (AAX_CParamID iParameterID, double *oValue, const AAX_IString &iValueString) const =0
| CALL: Converts a value string to a value.
virtual AAX_Result | GetParameterStringFromValue (AAX_CParamID iParameterID, double iValue, AAX_IString *oValueString, int32_t iMaxLength) const =0
| CALL: Converts a normalized parameter value into a string representing its corresponding real value.
virtual AAX_Result | GetParameterValueString (AAX_CParamID iParameterID, AAX_IString *oValueString, int32_t iMaxLength) const =0
| CALL: Retrieves the value string associated with a parameter's current value.
virtual AAX_Result | GetParameterNormalizedValue (AAX_CParamID iParameterID, double *oValuePtr) const =0
| CALL: Retrieves a parameter's current value.
virtual AAX_Result | SetParameterNormalizedValue (AAX_CParamID iParameterID, double iValue)=0
| CALL: Sets the specified parameter to a new value.
virtual AAX_Result | SetParameterNormalizedRelative (AAX_CParamID iParameterID, double iValue)=0
| CALL: Sets the specified parameter to a new value relative to its current value.
Automated parameter helpers
These methods are used to lock and unlock automation system 'resources' when updating automatable parameters. Note You should never need to override these methods to extend their behavior beyond what is provided in AAX_CEffectParameters and AAX_IParameter
virtual AAX_Result | TouchParameter (AAX_CParamID iParameterID)=0
| "Touches" (locks) a parameter in the automation system to a particular control in preparation for updates
virtual AAX_Result | ReleaseParameter (AAX_CParamID iParameterID)=0
| Releases a parameter from a "touched" state.
virtual AAX_Result | UpdateParameterTouch (AAX_CParamID iParameterID, AAX_CBoolean iTouchState)=0
| Sets a "touched" state on a parameter.
Asynchronous parameter update methods
These methods are called by the AAX host when parameter values have been updated. They are called by the host and can be triggered by other plug-in modules via calls to AAX_IParameter's `SetValue` methods, e.g. SetValueWithFloat() These methods are responsible for updating parameter values. Do not call these methods directly! To ensure proper synchronization and to avoid problematic dependency chains, other methods (e.g. SetParameterNormalizedValue()) and components (e.g. AAX_IEffectGUI) should always call a `SetValue` method on AAX_IParameter to update parameter values. The `SetValue` method will properly manage automation locks and other system resources.
virtual AAX_Result | UpdateParameterNormalizedValue (AAX_CParamID iParameterID, double iValue, AAX_EUpdateSource iSource)=0
| Updates a single parameter's state to its current value.
virtual AAX_Result | UpdateParameterNormalizedRelative (AAX_CParamID iParameterID, double iValue)=0
| Updates a single parameter's state to its current value, as a difference with the parameter's previous value.
virtual AAX_Result | GenerateCoefficients ()=0
| Generates and dispatches new coefficient packets.
State reset handlers
virtual AAX_Result | ResetFieldData (AAX_CFieldIndex inFieldIndex, void *oData, uint32_t inDataSize) const =0
| Called by the host to reset a private data field in the plug-in's algorithm.
Chunk methods
These methods are used to save and restore collections of plug-in state information, known as chunks. Chunks are used by the host when saving or restoring presets and session settings and when providing "compare" functionality for plug-ins. The default implementation of these methods in AAX_CEffectParameters supports a single chunk that includes state information for all of the plug-in's registered parameters. Override all of these methods to add support for additional chunks in your plug-in, for example if your plug-in contains any persistent state that is not encapsulated by its set of registered parameters. Warning Remember that plug-in chunk data may be loaded on a different platform from the one where it is saved. All data structures in the chunk must be properly data-aligned for compatibility across all platforms that the plug-in supports. See AAX_ALIGN_FILE_ALG for notes about common cross-platform pitfalls for data structure alignment. For reference, see also: AAX_CChunkDataParser AAX_SPlugInChunk
virtual AAX_Result | GetNumberOfChunks (int32_t *oNumChunks) const =0
| Retrieves the number of chunks used by this plug-in.
virtual AAX_Result | GetChunkIDFromIndex (int32_t iIndex, AAX_CTypeID *oChunkID) const =0
| Retrieves the ID associated with a chunk index.
virtual AAX_Result | GetChunkSize (AAX_CTypeID iChunkID, uint32_t *oSize) const =0
| Get the size of the data structure that can hold all of a chunk's information.
virtual AAX_Result | GetChunk (AAX_CTypeID iChunkID, AAX_SPlugInChunk *oChunk) const =0
| Fills a block of data with chunk information representing the plug-in's current state.
virtual AAX_Result | SetChunk (AAX_CTypeID iChunkID, const AAX_SPlugInChunk *iChunk)=0
| Restores a set of plug-in parameters based on chunk information.
virtual AAX_Result | CompareActiveChunk (const AAX_SPlugInChunk *iChunkP, AAX_CBoolean *oIsEqual) const =0
| Determine if a chunk represents settings that are equivalent to the plug-in's current state.
virtual AAX_Result | GetNumberOfChanges (int32_t *oNumChanges) const =0
| Retrieves the number of parameter changes made since the plug-in's creation.
Thread methods
virtual AAX_Result | TimerWakeup ()=0
| Periodic wakeup callback for idle-time operations.
Auxiliary UI methods
virtual AAX_Result | GetCurveData (AAX_CTypeID iCurveType, const float *iValues, uint32_t iNumValues, float *oValues) const =0
| Generate a set of output values based on a set of given input values.
Custom data methods
These functions exist as a proxiable way to move data between different modules (e.g. AAX_IEffectParameters and AAX_IEffectGUI.) Using these, the GUI can query any data through GetCustomData() with a plug-in defined `typeID`, `void*` and size. This has an advantage over just sharing memory in that this function can work as a remote proxy as we enable those sorts of features later in the platform. Likewise, the GUI can also set arbitrary data on the data model by using the SetCustomData() function with the same idea. Note These are plug-in internal only. They are not called from the host right now, or likely ever.
virtual AAX_Result | GetCustomData (AAX_CTypeID iDataBlockID, uint32_t inDataSize, void *oData, uint32_t *oDataWritten) const =0
| An optional interface hook for getting custom data from another module.
virtual AAX_Result | SetCustomData (AAX_CTypeID iDataBlockID, uint32_t inDataSize, const void *iData)=0
| An optional interface hook for setting custom data for use by another module.
MIDI methods
virtual AAX_Result | DoMIDITransfers ()=0
| MIDI update callback.
Public Member Functions inherited from IACFUnknown
virtual BEGIN_ACFINTERFACE ACFRESULT ACFMETHODCALLTYPE | QueryInterface (const acfIID &iid, void **ppOut)=0
| Returns pointers to supported interfaces.
virtual acfUInt32 ACFMETHODCALLTYPE | AddRef (void)=0
| Increments reference count.
virtual acfUInt32 ACFMETHODCALLTYPE | Release (void)=0
| Decrements reference count.

## Member Function Documentation

## ◆ Initialize()

virtual AAX_Result AAX_IACFEffectParameters::Initialize | ( | IACFUnknown * | iController | ) |
| pure virtual

Main data model initialization. Called when plug-in instance is first instantiated.

Note
  Most plug-ins should override AAX_CEffectParameters::EffectInit() rather than directly overriding this method

Parameters

  [in] | iController | A versioned reference that resolves to an AAX_IController interface

Implemented in AAX_CEffectParameters.

## ◆ Uninitialize()

virtual AAX_Result AAX_IACFEffectParameters::Uninitialize | ( |  | ) |
| pure virtual

Main data model uninitialization.

Todo:
  Docs: When exactly is AAX_IACFEffectParameters::Uninitialize() called, and under what conditions?

Implemented in AAX_CEffectParameters.

## ◆ NotificationReceived()

virtual AAX_Result AAX_IACFEffectParameters::NotificationReceived | ( | AAX_CTypeID | inNotificationType,
|  | const void * | inNotificationData,
|  | uint32_t | inNotificationDataSize
| ) |  |
| pure virtual

Notification Hook.

Called from the host to deliver notifications to this object.

Look at the AAX_ENotificationEvent enumeration to see a description of events you can listen for and the data they come with.

- Note
    some notifications are sent only to the plug-in GUI while other notifications are sent only to the plug-in data model. If you are not seeing an expected notification, try checking the other plug-in objects' `NotificationReceived()` methods.
- Note
    the host may dispatch notifications synchronously or asynchronously, and calls to this method may occur concurrently on multiple threads.
  A plug-in may also dispatch custom notifications using AAX_IController::SendNotification(). Custom notifications will be posted back to the plug-in's other objects which support a `NotificationReceived()` method (e.g. the GUI).

Parameters

  [in] | inNotificationType | Type of notification being received. Notifications form the host are one of AAX_ENotificationEvent
  [in] | inNotificationData | Block of incoming notification data
  [in] | inNotificationDataSize | Size of `inNotificationData`, in bytes

Implemented in AAX_CEffectParameters.

## ◆ GetNumberOfParameters()

virtual AAX_Result AAX_IACFEffectParameters::GetNumberOfParameters | ( | int32_t * | oNumControls | ) | const
| pure virtual

CALL: Retrieves the total number of plug-in parameters.

Parameters

  [out] | oNumControls | The number of parameters in the plug-in's Parameter Manager

Implemented in AAX_CEffectParameters.

## ◆ GetMasterBypassParameter()

virtual AAX_Result AAX_IACFEffectParameters::GetMasterBypassParameter | ( | AAX_IString * | oIDString | ) | const
| pure virtual

CALL: Retrieves the ID of the plug-in's Master Bypass parameter.

This is required if you want our master bypass functionality in the host to hook up to your bypass parameters.

Parameters

  [out] | oIDString | The ID of the plug-in's Master Bypass control

Implemented in AAX_CEffectParameters.

## ◆ GetParameterIsAutomatable()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterIsAutomatable | ( | AAX_CParamID | iParameterID,
|  | AAX_CBoolean * | oAutomatable
| ) |  | const
| pure virtual

CALL: Retrieves information about a parameter's automatable status.

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [out] | oAutomatable | True if the queried parameter is automatable, false if it is not

Implemented in AAX_CEffectParameters.

## ◆ GetParameterNumberOfSteps()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterNumberOfSteps | ( | AAX_CParamID | iParameterID,
|  | int32_t * | oNumSteps
| ) |  | const
| pure virtual

CALL: Retrieves the number of discrete steps for a parameter.

Note
  The value returned for `oNumSteps` MUST be greater than zero. All other values will be considered an error by the host.

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [out] | oNumSteps | The number of steps for this parameter

Implemented in AAX_CEffectParameters.

## ◆ GetParameterName()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterName | ( | AAX_CParamID | iParameterID,
|  | AAX_IString * | oName
| ) |  | const
| pure virtual

CALL: Retrieves the full name for a parameter.

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [out] | oName | Reference to an AAX_IString owned by the host. The plug-in must set this string equal to the parameter's full name.

Implemented in AAX_CEffectParameters.

## ◆ GetParameterNameOfLength()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterNameOfLength | ( | AAX_CParamID | iParameterID,
|  | AAX_IString * | oName,
|  | int32_t | iNameLength
| ) |  | const
| pure virtual

CALL: Retrieves an abbreviated name for a parameter.

In general, lengths of 3 through 8 and 31 should be specifically addressed.

Host Compatibility Notes:
  In most cases, the AAX host will call GetParameterName() or GetParameterNameOfLength() to retrieve parameter names for display. However, when Pro Tools is retrieving a plug-in name for display on a control surface the XML data stored in the plug-in's page tables will be used in preference to values retrieved from these methods.

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [out] | oName | Reference to an AAX_IString owned by the host. The plug-in must set this string equal to an abbreviated name for the parameter, using `iNameLength` characters or fewer.
  [in] | iNameLength | The maximum number of characters in `oName`

Implemented in AAX_CEffectParameters.

## ◆ GetParameterDefaultNormalizedValue()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterDefaultNormalizedValue | ( | AAX_CParamID | iParameterID,
|  | double * | oValue
| ) |  | const
| pure virtual

CALL: Retrieves default value of a parameter.

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [out] | oValue | The parameter's default value

Implemented in AAX_CEffectParameters.

## ◆ SetParameterDefaultNormalizedValue()

virtual AAX_Result AAX_IACFEffectParameters::SetParameterDefaultNormalizedValue | ( | AAX_CParamID | iParameterID,
|  | double | iValue
| ) |  |
| pure virtual

CALL: Sets the default value of a parameter.

Parameters

  [in] | iParameterID | The ID of the parameter that is being updated
  [out] | iValue | The parameter's new default value

Todo:
  THIS IS NOT CALLED FROM HOST. USEFUL FOR INTERNAL USE ONLY?

Implemented in AAX_CEffectParameters.

## ◆ GetParameterType()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterType | ( | AAX_CParamID | iParameterID,
|  | AAX_EParameterType * | oParameterType
| ) |  | const
| pure virtual

CALL: Retrieves the type of a parameter.

Todo:
  The concept of parameter type needs more documentation

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [out] | oParameterType | The parameter's type

Implemented in AAX_CEffectParameters.

## ◆ GetParameterOrientation()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterOrientation | ( | AAX_CParamID | iParameterID,
|  | AAX_EParameterOrientation * | oParameterOrientation
| ) |  | const
| pure virtual

CALL: Retrieves the orientation that should be applied to a parameter's controls.

Todo:
  update this documentation

This method allows you to specify the orientation of knob controls that are managed by the host (e.g. knobs on an attached control surface.)

Here is an example override of this method that reverses the orientation of a control for a parameter:

// AAX_IParameter* myBackwardsParameter
if (iParameterID == myBackwardsParameter->Identifier())
{
*oParameterType =
AAX_eParameterOrientation_BottomMinTopMax |
AAX_eParameterOrientation_LeftMinRightMax |
AAX_eParameterOrientation_RotaryWrapMode |
AAX_eParameterOrientation_RotaryLeftMinRightMax;
}
AAX_eParameterOrientation_BottomMinTopMax
@ AAX_eParameterOrientation_BottomMinTopMax
Definition: AAX_Enums.h:912
AAX_eParameterOrientation_LeftMinRightMax
@ AAX_eParameterOrientation_LeftMinRightMax
Definition: AAX_Enums.h:915
AAX_eParameterOrientation_RotaryLeftMinRightMax
@ AAX_eParameterOrientation_RotaryLeftMinRightMax
Definition: AAX_Enums.h:925
AAX_eParameterOrientation_RotaryWrapMode
@ AAX_eParameterOrientation_RotaryWrapMode
Definition: AAX_Enums.h:921

The orientation options are set according to AAX_EParameterOrientationBits

Legacy Porting Notes:
  AAX_IEffectParameters::GetParameterOrientation() corresponds to the GetControlOrientation() method in the legacy RTAS/TDM SDK.

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [out] | oParameterOrientation | The orientation of the parameter

Implemented in AAX_CEffectParameters.

## ◆ GetParameter()

virtual AAX_Result AAX_IACFEffectParameters::GetParameter | ( | AAX_CParamID | iParameterID,
|  | AAX_IParameter ** | oParameter
| ) |  |
| pure virtual

CALL: Retrieves an arbitrary setting within a parameter.

This is a convenience function for accessing the richer parameter interface from the plug-in's other modules.

Note
  This function must not be called by the host; AAX_IParameter is not safe for passing across the binary boundary with the host!

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [out] | oParameter | A pointer to the returned parameter

Implemented in AAX_CEffectParameters.

## ◆ GetParameterIndex()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterIndex | ( | AAX_CParamID | iParameterID,
|  | int32_t * | oControlIndex
| ) |  | const
| pure virtual

CALL: Retrieves the index of a parameter.

Although parameters are normally referenced by their AAX_CParamID, each parameter is also associated with a unique numeric index.

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [out] | oControlIndex | The parameter's numeric index

Implemented in AAX_CEffectParameters.

## ◆ GetParameterIDFromIndex()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterIDFromIndex | ( | int32_t | iControlIndex,
|  | AAX_IString * | oParameterIDString
| ) |  | const
| pure virtual

CALL: Retrieves the ID of a parameter.

This method can be used to convert a parameter's unique numeric index to its AAX_CParamID

Parameters

  [in] | iControlIndex | The numeric index of the parameter that is being queried
  [out] | oParameterIDString | Reference to an AAX_IString owned by the host. The plug-in must set this string equal to the parameter's ID.

Implemented in AAX_CEffectParameters.

## ◆ GetParameterValueInfo()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterValueInfo | ( | AAX_CParamID | iParameterID,
|  | int32_t | iSelector,
|  | int32_t * | oValue
| ) |  | const
| pure virtual

CALL: Retrieves a property of a parameter.

This is a general purpose query that is specialized based on the value of `iSelector`. The currently supported selector values are described by AAX_EParameterValueInfoSelector . The meaning of `oValue` is dependent upon `iSelector` .

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [in] | iSelector | The selector of the parameter value to retrieve. See AAX_EParameterValueInfoSelector
  [out] | oValue | The value of the specified parameter

Implemented in AAX_CEffectParameters.

## ◆ GetParameterValueFromString()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterValueFromString | ( | AAX_CParamID | iParameterID,
|  | double * | oValue,
|  | const AAX_IString & | iValueString
| ) |  | const
| pure virtual

CALL: Converts a value string to a value.

This method uses the queried parameter's display delegate and taper to convert a `char*` string into its corresponding value. The formatting of valueString must be supported by the parameter's display delegate in order for this call to succeed.

Legacy Porting Notes:
  This method corresponds to CProcess::MapControlStringToVal() in the RTAS/TDM SDK

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [out] | oValue | The value associated with valueString
  [in] | iValueString | The formatted value string that will be converted into a value

Implemented in AAX_CEffectParameters.

## ◆ GetParameterStringFromValue()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterStringFromValue | ( | AAX_CParamID | iParameterID,
|  | double | iValue,
|  | AAX_IString * | oValueString,
|  | int32_t | iMaxLength
| ) |  | const
| pure virtual

CALL: Converts a normalized parameter value into a string representing its corresponding real value.

This method uses the queried parameter's display delegate and taper to convert a normalized value into the corresponding `char*` value string for its real value.

Legacy Porting Notes:
  This method corresponds to CProcess::MapControlValToString() in the RTAS/TDM SDK

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [in] | iValue | The normalized value that will be converted to a formatted valueString
  [out] | oValueString | The formatted value string associated with value
  [in] | iMaxLength | The maximum length of valueString

Implemented in AAX_CEffectParameters.

## ◆ GetParameterValueString()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterValueString | ( | AAX_CParamID | iParameterID,
|  | AAX_IString * | oValueString,
|  | int32_t | iMaxLength
| ) |  | const
| pure virtual

CALL: Retrieves the value string associated with a parameter's current value.

This method uses the queried parameter's display delegate and taper to convert its current value into a corresponding `char*` value string.

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [out] | oValueString | The formatted value string associated with the parameter's current value
  [in] | iMaxLength | The maximum length of valueString

Implemented in AAX_CEffectParameters.

## ◆ GetParameterNormalizedValue()

virtual AAX_Result AAX_IACFEffectParameters::GetParameterNormalizedValue | ( | AAX_CParamID | iParameterID,
|  | double * | oValuePtr
| ) |  | const
| pure virtual

CALL: Retrieves a parameter's current value.

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [out] | oValuePtr | The parameter's current value

Implemented in AAX_CEffectParameters.

## ◆ SetParameterNormalizedValue()

virtual AAX_Result AAX_IACFEffectParameters::SetParameterNormalizedValue | ( | AAX_CParamID | iParameterID,
|  | double | iValue
| ) |  |
| pure virtual

CALL: Sets the specified parameter to a new value.

SetParameterNormalizedValue() is responsible for initiating any process that is required in order to update all of the parameter's controls (e.g. in the plug-in's GUI, on control surfaces, in automation lanes, etc.) In most cases, the parameter manager will handle this initiation step.

Parameters

  [in] | iParameterID | The ID of the parameter that is being set
  [in] | iValue | The value to which the parameter should be set

Implemented in AAX_CEffectParameters.

## ◆ SetParameterNormalizedRelative()

virtual AAX_Result AAX_IACFEffectParameters::SetParameterNormalizedRelative | ( | AAX_CParamID | iParameterID,
|  | double | iValue
| ) |  |
| pure virtual

CALL: Sets the specified parameter to a new value relative to its current value.

This method is used in cases when a relative control value is more convenient, for example when updating a GUI control using a mouse wheel or the arrow keys. Note that the host may apply the parameter's step size prior to calling SetParameterNormalizedRelative() in order to determine the correct value for aValue.

SetParameterNormalizedRelative() can be used to incorporate "wrapping" behavior in a parameter's controls, if desired. If this behavior is not desired, then this method must properly account for overflow of the parameter's normalized value.

SetParameterNormalizedRelative() is responsible for initiating any process that is required in order to update all of the parameter's controls (e.g. in the plug-in's GUI, on control surfaces, in automation lanes, etc.) In most cases, the parameter manager will handle this initiation step.

See also UpdateParameterNormalizedRelative().

Todo:
  REMOVE THIS METHOD (?)

Parameters

  [in] | iParameterID | The ID of the parameter that is being queried
  [in] | iValue | The change in value that should be applied to the parameter

Todo:
  NOT CURRENTLY CALLED FROM THE HOST. USEFUL FOR INTERNAL USE ONLY?

Implemented in AAX_CEffectParameters.

## ◆ TouchParameter()

virtual AAX_Result AAX_IACFEffectParameters::TouchParameter | ( | AAX_CParamID | iParameterID | ) |
| pure virtual

"Touches" (locks) a parameter in the automation system to a particular control in preparation for updates

This method is called by the Parameter Manager to prime a parameter for receiving new automation data. When an automatable parameter is touched by a control, it will reject input from other controls until it is released.

Note
  You should never need to override this method when using AAX_CEffectParameters.

Parameters

  [in] | iParameterID | The parameter that is being touched

Implemented in AAX_CEffectParameters.

## ◆ ReleaseParameter()

virtual AAX_Result AAX_IACFEffectParameters::ReleaseParameter | ( | AAX_CParamID | iParameterID | ) |
| pure virtual

Releases a parameter from a "touched" state.

This method is called by the Parameter Manager to release a parameter so that any control may send updates to the parameter.

Note
  You should never need to override this method when using AAX_CEffectParameters.

Parameters

  [in] | iParameterID | The parameter that is being released

Implemented in AAX_CEffectParameters.

## ◆ UpdateParameterTouch()

virtual AAX_Result AAX_IACFEffectParameters::UpdateParameterTouch | ( | AAX_CParamID | iParameterID,
|  | AAX_CBoolean | iTouchState
| ) |  |
| pure virtual

Sets a "touched" state on a parameter.

Note
  This method should be overriden when dealing with linked parameters. Do NOT use this method to keep track of touch states. Use the automation delegate for that.

Parameters

  [in] | iParameterID | The parameter that is changing touch states.
  [in] | iTouchState | The touch state of the parameter.

Implemented in AAX_CEffectParameters.

## ◆ UpdateParameterNormalizedValue()

virtual AAX_Result AAX_IACFEffectParameters::UpdateParameterNormalizedValue | ( | AAX_CParamID | iParameterID,
|  | double | iValue,
|  | AAX_EUpdateSource | iSource
| ) |  |
| pure virtual

Updates a single parameter's state to its current value.

Note
  Do not call this method from the plug-in. This method should be called by the host only. To set parameter values from within the plug-in, use the AAX_IParameter interface.

Todo:
  FLAGGED FOR CONSIDERATION OF REVISION

Parameters

  [in] | iParameterID | The ID of the parameter that is being updated
  [in] | iValue | The parameter's current value, to which its internal state must be updated
  [in] | iSource | The source of the update

Implemented in AAX_CEffectParameters, and AAX_CMonolithicParameters.

## ◆ UpdateParameterNormalizedRelative()

virtual AAX_Result AAX_IACFEffectParameters::UpdateParameterNormalizedRelative | ( | AAX_CParamID | iParameterID,
|  | double | iValue
| ) |  |
| pure virtual

Updates a single parameter's state to its current value, as a difference with the parameter's previous value.

Deprecated:
  This is not called from the host. It may still be useful for internal calls within the plug-in, though it should only ever be used to update non-automatable parameters. Automatable parameters should always be updated through the AAX_IParameter interface, which will ensure proper coordination with other automation clients.

UpdateParameterNormalizedRelative() can be used to incorporate "wraparound" behavior in a parameter's controls, if desired. If this behavior is not desired, then this method must properly account for overflow of the parameter's normalized value.

See also
  SetParameterNormalizedRelative()

Parameters

  [in] | iParameterID | The ID of the parameter that is being updated
  [in] | iValue | The difference between the parameter's current value and its previous value (normalized). The parameter's state must be updated to reflect this difference.

Implemented in AAX_CEffectParameters.

## ◆ GenerateCoefficients()

virtual AAX_Result AAX_IACFEffectParameters::GenerateCoefficients | ( |  | ) |
| pure virtual

Generates and dispatches new coefficient packets.

This method is responsible for updating the coefficient packets associated with all parameters whose states have changed since the last call to GenerateCoefficients(). The host may call this method once for every parameter update, or it may "batch" parameter updates such that changes for several parameters are all handled by a single call to GenerateCoefficients().

For more information on tracking parameters' statuses using the AAX_CPacketDispatcher, helper class, see AAX_CPacketDispatcher::SetDirty().

Note
  Do not call this method from the plug-in. This method should be called by the host only. To set parameter values from within the plug-in, use the AAX_IParameter interface.

Implemented in AAX_CMonolithicParameters, and AAX_CEffectParameters.

## ◆ ResetFieldData()

virtual AAX_Result AAX_IACFEffectParameters::ResetFieldData | ( | AAX_CFieldIndex | inFieldIndex,
|  | void * | oData,
|  | uint32_t | inDataSize
| ) |  | const
| pure virtual

Called by the host to reset a private data field in the plug-in's algorithm.

This method is called sequentially for all private data fields on Effect initialization and during any "reset" event, such as priming for a non-real-time render. This method is called before the algorithm's optional initialization callback, and the initialized private data will be available within that callback via its context block.

See also
  Algorithm initialization.

Warning
  Any data structures that will be passed between platforms (for example, sent to a TI DSP in an AAX DSP plug-in) must be properly data-aligned for compatibility across both platforms. See AAX_ALIGN_FILE_ALG for more information about guaranteeing cross-platform compatibility of data structures used for algorithm processing.

Parameters

  [in] | inFieldIndex | The index of the field that is being initialized
  [out] | oData | The pre-allocated block of data that should be initialized
  [in] | inDataSize | The size of the data block, in bytes

Implemented in AAX_CMonolithicParameters, and AAX_CEffectParameters.

## ◆ GetNumberOfChunks()

virtual AAX_Result AAX_IACFEffectParameters::GetNumberOfChunks | ( | int32_t * | oNumChunks | ) | const
| pure virtual

Retrieves the number of chunks used by this plug-in.

Parameters

  [out] | oNumChunks | The number of distinct chunks used by this plug-in

Implemented in AAX_CEffectParameters.

## ◆ GetChunkIDFromIndex()

virtual AAX_Result AAX_IACFEffectParameters::GetChunkIDFromIndex | ( | int32_t | iIndex,
|  | AAX_CTypeID * | oChunkID
| ) |  | const
| pure virtual

Retrieves the ID associated with a chunk index.

Parameters

  [in] | iIndex | Index of the queried chunk
  [out] | oChunkID | ID of the queried chunk

Implemented in AAX_CEffectParameters.

## ◆ GetChunkSize()

virtual AAX_Result AAX_IACFEffectParameters::GetChunkSize | ( | AAX_CTypeID | iChunkID,
|  | uint32_t * | oSize
| ) |  | const
| pure virtual

Get the size of the data structure that can hold all of a chunk's information.

If chunkID is one of the plug-in's custom chunks, initialize *size to the size of the chunk's data in bytes.

This method is invoked every time a chunk is saved, therefore it is possible to have dynamically sized chunks. However, note that each call to GetChunkSize() will correspond to a following call to GetChunk(). The chunk provided in GetChunk() must have the same size as the size provided by GetChunkSize().

Legacy Porting Notes:
  In AAX, the value provided by GetChunkSize() should NOT include the size of the chunk header. The value should ONLY reflect the size of the chunk's data.

Parameters

  [in] | iChunkID | ID of the queried chunk
  [out] | oSize | The chunk's size in bytes

Implemented in AAX_CEffectParameters.

## ◆ GetChunk()

virtual AAX_Result AAX_IACFEffectParameters::GetChunk | ( | AAX_CTypeID | iChunkID,
|  | AAX_SPlugInChunk * | oChunk
| ) |  | const
| pure virtual

Fills a block of data with chunk information representing the plug-in's current state.

By calling this method, the host is requesting information about the current state of the plug-in. The following chunk fields should be explicitly populated in this method. Other fields will be populated by the host.

- AAX_SPlugInChunk::fData
- AAX_SPlugInChunk::fVersion
- AAX_SPlugInChunk::fName (Optional)
- AAX_SPlugInChunk::fSize (Data size only)

Warning
  Remember that this chunk data may be loaded on a different platform from the one where it is saved. All data structures in the chunk must be properly data-aligned for compatibility across all platforms that the plug-in supports. See AAX_ALIGN_FILE_ALG for notes about common cross-platform pitfalls for data structure alignment.

Parameters

  [in] | iChunkID | ID of the chunk that should be provided
  [out] | oChunk | A preallocated block of memory that should be populated with the chunk's data.

Implemented in AAX_CEffectParameters.

## ◆ SetChunk()

virtual AAX_Result AAX_IACFEffectParameters::SetChunk | ( | AAX_CTypeID | iChunkID,
|  | const AAX_SPlugInChunk * | iChunk
| ) |  |
| pure virtual

Restores a set of plug-in parameters based on chunk information.

By calling this method, the host is attempting to update the plug-in's current state to match the data stored in a chunk. The plug-in should initialize itself to this new state by calling SetParameterNormalizedValue() for each of the relevant parameters.

Parameters

  [in] | iChunkID | ID of the chunk that is being set
  [in] | iChunk | The chunk

Implemented in AAX_CEffectParameters.

## ◆ CompareActiveChunk()

virtual AAX_Result AAX_IACFEffectParameters::CompareActiveChunk | ( | const AAX_SPlugInChunk * | iChunkP,
|  | AAX_CBoolean * | oIsEqual
| ) |  | const
| pure virtual

Determine if a chunk represents settings that are equivalent to the plug-in's current state.

Host Compatibility Notes:
  In Pro Tools, this method will only be called if a prior call to GetNumberOfChanges() has indicated that the plug-in's state has changed. If the plug-in's current settings are different from the settings in `aChunkP` then the plug-in's Compare Light will be illuminated in the plug-in header, allowing users to toggle between the plug-in's custom state and its saved state.

Parameters

  [in] | iChunkP | The chunk that is to be tested
  [out] | oIsEqual | True if the chunk represents equivalent settings when compared with the plug-in's current state. False if the chunk represents non-equivalent settings

Implemented in AAX_CEffectParameters.

## ◆ GetNumberOfChanges()

virtual AAX_Result AAX_IACFEffectParameters::GetNumberOfChanges | ( | int32_t * | oNumChanges | ) | const
| pure virtual

Retrieves the number of parameter changes made since the plug-in's creation.

This method is polled regularly by the host, and can additionally be triggered by some events such as mouse clicks. When the number provided by this method changes, the host subsequently calls CompareActiveChunk() to determine if the plug-in's Compare light should be activated.

The value provided by this method should increment with each call to UpdateParameterNormalizedValue()

Parameters

  [out] | oNumChanges | Must be set to indicate the number of parameter changes that have occurred since plug-in initialization.

Implemented in AAX_CEffectParameters.

## ◆ TimerWakeup()

virtual AAX_Result AAX_IACFEffectParameters::TimerWakeup | ( |  | ) |
| pure virtual

Periodic wakeup callback for idle-time operations.

This method is called from the host using a non-main thread. In general, it should be driven at approximately one call per 30 ms. However, the wakeup is not guaranteed to be called at any regular interval - for example, it could be held off by a high real-time processing load - and there is no host contract regarding maximum latency between wakeup calls.

This wakeup thread runs continuously and cannot be armed/disarmed or by the plug-in.

Implemented in AAX_CMonolithicParameters, and AAX_CEffectParameters.

## ◆ GetCustomData()

virtual AAX_Result AAX_IACFEffectParameters::GetCustomData | ( | AAX_CTypeID | iDataBlockID,
|  | uint32_t | inDataSize,
|  | void * | oData,
|  | uint32_t * | oDataWritten
| ) |  | const
| pure virtual

An optional interface hook for getting custom data from another module.

Parameters

  [in] | iDataBlockID | Identifier for the requested block of custom data
  [in] | inDataSize | Size of provided buffer, in bytes
  [out] | oData | Pointer to an allocated buffer. Data will be written here.
  [out] | oDataWritten | The number of bytes actually written

Implemented in AAX_CEffectParameters.

## ◆ SetCustomData()

virtual AAX_Result AAX_IACFEffectParameters::SetCustomData | ( | AAX_CTypeID | iDataBlockID,
|  | uint32_t | inDataSize,
|  | const void * | iData
| ) |  |
| pure virtual

An optional interface hook for setting custom data for use by another module.

Parameters

  [in] | iDataBlockID | Identifier for the provided block of custom data
  [in] | inDataSize | Size of provided buffer, in bytes
  [in] | iData | Pointer to the data buffer

Implemented in AAX_CEffectParameters.

## ◆ DoMIDITransfers()

virtual AAX_Result AAX_IACFEffectParameters::DoMIDITransfers | ( |  | ) |
| pure virtual

MIDI update callback.

Call AAX_IController::GetNextMIDIPacket() from within this method to retrieve and process MIDI packets directly within the Effect's data model. MIDI data will also be delivered to the Effect algorithm.

This method is called regularly by the host, similarly to AAX_IEffectParameters::TimerWakeup()

Implemented in AAX_CEffectParameters.

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

- AAX_IACFEffectParameters.h