![]() |
AAX SDK
2.4.1
Avid Audio Extensions Development Kit
|
#include <AAX_IController.h>
Interface for the AAX host's view of a single instance of an effect. Used by both clients of the AAX host and by effect components.
Public Member Functions | |
virtual | ~AAX_IController (void) |
Host information getters | |
Call these methods to retrieve environment and run-time information from the AAX host. | |
virtual AAX_Result | GetEffectID (AAX_IString *outEffectID) const =0 |
virtual AAX_Result | GetSampleRate (AAX_CSampleRate *outSampleRate) const =0 |
CALL: Returns the current literal sample rate. More... | |
virtual AAX_Result | GetInputStemFormat (AAX_EStemFormat *outStemFormat) const =0 |
CALL: Returns the plug-in's input stem format. More... | |
virtual AAX_Result | GetOutputStemFormat (AAX_EStemFormat *outStemFormat) const =0 |
CALL: Returns the plug-in's output stem format. More... | |
virtual AAX_Result | GetSignalLatency (int32_t *outSamples) const =0 |
CALL: Returns the most recent signal (algorithmic) latency that has been published by the plug-in. More... | |
virtual AAX_Result | GetCycleCount (AAX_EProperty inWhichCycleCount, AAX_CPropertyValue *outNumCycles) const =0 |
CALL: returns the plug-in's current real-time DSP cycle count. More... | |
virtual AAX_Result | GetTODLocation (AAX_CTimeOfDay *outTODLocation) const =0 |
CALL: Returns the current Time Of Day (TOD) of the system. More... | |
Host information setters | |
Call these methods to set dynamic plug-in run-time information on the AAX host. | |
virtual AAX_Result | SetSignalLatency (int32_t inNumSamples)=0 |
CALL: Submits a request to change the delay compensation value that the host uses to account for the plug-in's signal (algorithmic) latency. More... | |
virtual AAX_Result | SetCycleCount (AAX_EProperty *inWhichCycleCounts, AAX_CPropertyValue *iValues, int32_t numValues)=0 |
CALL: Indicates a change in the plug-in's real-time DSP cycle count. More... | |
Posting methods | |
Call these methods to post new plug-in information to the host's data management system. | |
virtual AAX_Result | PostPacket (AAX_CFieldIndex inFieldIndex, const void *inPayloadP, uint32_t inPayloadSize)=0 |
CALL: Posts a data packet to the host for routing between plug-in components. More... | |
Notification methods | |
Call these methods to send events among plug-in components | |
virtual AAX_Result | SendNotification (AAX_CTypeID inNotificationType, const void *inNotificationData, uint32_t inNotificationDataSize)=0 |
CALL: Dispatch a notification. More... | |
virtual AAX_Result | SendNotification (AAX_CTypeID inNotificationType)=0 |
CALL: Sends an event to the GUI (no payload) More... | |
Metering methods | |
Methods to access the plug-in's host-managed metering information.
| |
virtual AAX_Result | GetCurrentMeterValue (AAX_CTypeID inMeterID, float *outMeterValue) const =0 |
CALL: Retrieves the current value of a host-managed plug-in meter. More... | |
virtual AAX_Result | GetMeterPeakValue (AAX_CTypeID inMeterID, float *outMeterPeakValue) const =0 |
CALL: Retrieves the currently held peak value of a host-managed plug-in meter. More... | |
virtual AAX_Result | ClearMeterPeakValue (AAX_CTypeID inMeterID) const =0 |
CALL: Clears the peak value from a host-managed plug-in meter. More... | |
virtual AAX_Result | GetMeterCount (uint32_t *outMeterCount) const =0 |
CALL: Retrieves the number of host-managed meters registered by a plug-in. More... | |
virtual AAX_Result | GetMeterClipped (AAX_CTypeID inMeterID, AAX_CBoolean *outClipped) const =0 |
CALL: Retrieves the clipped flag from a host-managed plug-in meter. More... | |
virtual AAX_Result | ClearMeterClipped (AAX_CTypeID inMeterID) const =0 |
CALL: Clears the clipped flag from a host-managed plug-in meter. More... | |
MIDI methods | |
Methods to access the plug-in's host-managed MIDI information. | |
virtual AAX_Result | GetNextMIDIPacket (AAX_CFieldIndex *outPort, AAX_CMidiPacket *outPacket)=0 |
CALL: Retrieves MIDI packets for described MIDI nodes. More... | |
virtual AAX_Result | GetHybridSignalLatency (int32_t *outSamples) const =0 |
CALL: Returns the latency between the algorithm normal input samples and the inputs returning from the hyrbid component. More... | |
virtual AAX_Result | GetCurrentAutomationTimestamp (AAX_CTransportCounter *outTimestamp) const =0 |
CALL: Returns the current automation timestamp if called during the GenerateCoefficients() call AND the generation of coefficients is being triggered by an automation point instead of immediate changes. More... | |
virtual AAX_Result | GetHostName (AAX_IString *outHostNameString) const =0 |
CALL: Returns name of the host application this plug-in instance is being loaded by. This string also typically includes version information. More... | |
virtual AAX_Result | GetPlugInTargetPlatform (AAX_CTargetPlatform *outTargetPlatform) const =0 |
CALL: Returns execution platform type, native or TI. More... | |
virtual AAX_Result | GetIsAudioSuite (AAX_CBoolean *outIsAudioSuite) const =0 |
CALL: Returns true for AudioSuite instances. More... | |
virtual AAX_IPageTable * | CreateTableCopyForEffect (AAX_CPropertyValue inManufacturerID, AAX_CPropertyValue inProductID, AAX_CPropertyValue inPlugInID, uint32_t inTableType, int32_t inTablePageSize) const =0 |
Copy the current page table data for a particular plug-in type. More... | |
virtual AAX_IPageTable * | CreateTableCopyForLayout (const char *inEffectID, const char *inLayoutName, uint32_t inTableType, int32_t inTablePageSize) const =0 |
Copy the current page table data for a particular plug-in effect and page table layout. More... | |
virtual AAX_IPageTable * | CreateTableCopyForEffectFromFile (const char *inPageTableFilePath, AAX_ETextEncoding inFilePathEncoding, AAX_CPropertyValue inManufacturerID, AAX_CPropertyValue inProductID, AAX_CPropertyValue inPlugInID, uint32_t inTableType, int32_t inTablePageSize) const =0 |
Copy the current page table data for a particular plug-in type. More... | |
virtual AAX_IPageTable * | CreateTableCopyForLayoutFromFile (const char *inPageTableFilePath, AAX_ETextEncoding inFilePathEncoding, const char *inLayoutName, uint32_t inTableType, int32_t inTablePageSize) const =0 |
Copy the current page table data for a particular plug-in effect and page table layout. More... | |
|
inlinevirtual |
|
pure virtual |
Implemented in AAX_VController.
|
pure virtual |
CALL: Returns the current literal sample rate.
[out] | outSampleRate | The current sample rate |
Implemented in AAX_VController.
|
pure virtual |
CALL: Returns the plug-in's input stem format.
[out] | outStemFormat | The current input stem format |
Implemented in AAX_VController.
|
pure virtual |
CALL: Returns the plug-in's output stem format.
[out] | outStemFormat | The current output stem format |
Implemented in AAX_VController.
|
pure virtual |
CALL: Returns the most recent signal (algorithmic) latency that has been published by the plug-in.
This method provides the most recently published signal latency. The host may not have updated its delay compensation to match this signal latency yet, so plug-ins that dynamically change their latency using SetSignalLatency() should always wait for an AAX_eNotificationEvent_SignalLatencyChanged notification before updating its algorithm to incur this latency.
[out] | outSamples | The number of samples of signal delay published by the plug-in |
Implemented in AAX_VController.
|
pure virtual |
CALL: returns the plug-in's current real-time DSP cycle count.
This method provides the number of cycles that the AAX host expects the DSP plug-in to consume. The host uses this value when allocating DSP resources for the plug-in.
[in] | inWhichCycleCount | Selector for the requested cycle count metric. One of: |
[in] | outNumCycles | The current value of the selected cycle count metric |
Implemented in AAX_VController.
|
pure virtual |
CALL: Returns the current Time Of Day (TOD) of the system.
This method provides a plug-in the TOD (in samples) of the current system. TOD is the number of samples that the playhead has traversed since the beginning of playback.
[out] | outTODLocation | The current Time Of Day as set by the host |
Implemented in AAX_VController.
|
pure virtual |
CALL: Submits a request to change the delay compensation value that the host uses to account for the plug-in's signal (algorithmic) latency.
This method is used to request a change in the number of samples that the AAX host expects the plug-in to delay a signal.
The host is not guaranteed to immediately apply the new latency value. A plug-in should avoid incurring an actual algorithmic latency that is different than the latency accounted for by the host.
To set a new latency value, a plug-in must call AAX_IController::SetSignalLatency(), then wait for an AAX_eNotificationEvent_SignalLatencyChanged notification. Once this notification has been received, AAX_IController::GetSignalLatency() will reflect the updated latency value and the plug-in should immediately apply any relevant algorithmic changes that alter its latency to this new value.
[in] | inNumSamples | The number of samples of signal delay that the plug-in requests to incur |
Implemented in AAX_VController.
|
pure virtual |
CALL: Indicates a change in the plug-in's real-time DSP cycle count.
This method is used to request a change in the number of cycles that the AAX host expects the DSP plug-in to consume.
[in] | inWhichCycleCounts | Array of selectors indicating the specific cycle count metrics that should be set. Each selector must be one of: |
[in] | iValues | An array of values requested, one for each of the selected cycle count metrics. |
[in] | numValues | The size of iValues |
Implemented in AAX_VController.
|
pure virtual |
CALL: Posts a data packet to the host for routing between plug-in components.
The posted packet is identified with a AAX_CFieldIndex packet index value, which is equivalent to the target data port's identifier. The packet's payload must have the expected size for the given packet index / data port, as defined when the port is created in Describe. See AAX_IComponentDescriptor::AddDataInPort().
[in] | inFieldIndex | The packet's destination port |
[in] | inPayloadP | A pointer to the packet's payload data |
[in] | inPayloadSize | The size, in bytes, of the payload data |
Implemented in AAX_VController.
Referenced by AAX_CMonolithicParameters::GenerateCoefficients().
|
pure virtual |
CALL: Dispatch a notification.
The notification is handled by the host and may be delivered back to other plug-in components such as the GUI or data model (via AAX_IEffectGUI::NotificationReceived() or AAX_IEffectParameters::NotificationReceived(), respectively) depending on the notification type.
The host may choose to dispatch the posted notification either synchronously or asynchronously.
See the AAX_ENotificationEvent documentation for more information.
This method is supported by AAX V2 Hosts only. Check the return code on the return of this function. If the error is AAX_ERROR_UNIMPLEMENTED, your plug-in is being loaded into a host that doesn't support this feature.
[in] | inNotificationType | Type of notification to send |
[in] | inNotificationData | Block of notification data |
[in] | inNotificationDataSize | Size of inNotificationData , in bytes |
Implemented in AAX_VController.
|
pure virtual |
CALL: Sends an event to the GUI (no payload)
This version of the notification method is a convenience for notifications which do not take any payload data. Internally, it simply calls AAX_IController::SendNotification(AAX_CTypeID, const void*, uint32_t) with a null payload.
[in] | inNotificationType | Type of notification to send |
Implemented in AAX_VController.
|
pure virtual |
CALL: Retrieves the current value of a host-managed plug-in meter.
[in] | inMeterID | ID of the meter that is being queried |
[out] | outMeterValue | The queried meter's current value |
Implemented in AAX_VController.
|
pure virtual |
CALL: Retrieves the currently held peak value of a host-managed plug-in meter.
[in] | inMeterID | ID of the meter that is being queried |
[out] | outMeterPeakValue | The queried meter's currently held peak value |
Implemented in AAX_VController.
|
pure virtual |
CALL: Clears the peak value from a host-managed plug-in meter.
[in] | inMeterID | ID of the meter that is being cleared |
Implemented in AAX_VController.
|
pure virtual |
CALL: Retrieves the number of host-managed meters registered by a plug-in.
See AAX_IComponentDescriptor::AddMeters().
[out] | outMeterCount | The number of registered plug-in meters. |
Implemented in AAX_VController.
|
pure virtual |
CALL: Retrieves the clipped flag from a host-managed plug-in meter.
See AAX_IComponentDescriptor::AddMeters().
[in] | inMeterID | ID of the meter that is being queried. |
[out] | outClipped | The queried meter's clipped flag. |
Implemented in AAX_VController.
|
pure virtual |
CALL: Clears the clipped flag from a host-managed plug-in meter.
See AAX_IComponentDescriptor::AddMeters().
[in] | inMeterID | ID of the meter that is being cleared. |
Implemented in AAX_VController.
|
pure virtual |
CALL: Retrieves MIDI packets for described MIDI nodes.
[out] | outPort | port ID of the MIDI node that has unhandled packet |
[out] | outPacket | The MIDI packet |
Implemented in AAX_VController.
|
pure virtual |
CALL: Returns the current automation timestamp if called during the GenerateCoefficients() call AND the generation of coefficients is being triggered by an automation point instead of immediate changes.
[out] | outTimestamp | The current coefficient timestamp. Sample count from transport start. |
Implemented in AAX_VController.
|
pure virtual |
CALL: Returns name of the host application this plug-in instance is being loaded by. This string also typically includes version information.
[out] | outHostNameString | The name of the current host application. |
Implemented in AAX_VController.
|
pure virtual |
CALL: Returns execution platform type, native or TI.
[out] | outTargetPlatform | The type of the current execution platform as one of AAX_ETargetPlatform. |
Implemented in AAX_VController.
|
pure virtual |
CALL: Returns true for AudioSuite instances.
[out] | outIsAudioSuite | The boolean flag which indicate true for AudioSuite instances. |
Implemented in AAX_VController.
|
pure virtual |
Copy the current page table data for a particular plug-in type.
The host may restrict plug-ins to only copying page table data from certain plug-in types, such as plug-ins from the same manufacturer or plug-in types within the same effect.
See Page Table Guide for more information about page tables.
inTableType
is unknown or if inTablePageSize
is not a supported size for the given table type.[in] | inManufacturerID | Manufacturer ID of the desired plug-in type |
[in] | inProductID | Product ID of the desired plug-in type |
[in] | inPlugInID | Type ID of the desired plug-in type (AAX_eProperty_PlugInID_Native, AAX_eProperty_PlugInID_TI) |
[in] | inTableType | Four-char type identifier for the requested table type (e.g. 'PgTL' , 'Av81' , etc.) |
[in] | inTablePageSize | Page size for the requested table. Some tables support multiple page sizes. |
Implemented in AAX_VController.
|
pure virtual |
Copy the current page table data for a particular plug-in effect and page table layout.
The host may restrict plug-ins to only copying page table data from certain effects, such as effects registered within the current AAX plug-in bundle.
See Page Table Guide for more information about page tables.
inLayoutName
is not a valid layout name for the page tables registered for the effect.[in] | inEffectID | Effect ID for the desired effect. See AAX_ICollection::AddEffect() |
[in] | inLayoutName | Page table layout name ("name" attribute of the PTLayout XML tag) |
[in] | inTableType | Four-char type identifier for the requested table type (e.g. 'PgTL' , 'Av81' , etc.) |
[in] | inTablePageSize | Page size for the requested table. Some tables support multiple page sizes. |
Implemented in AAX_VController.
|
pure virtual |
Copy the current page table data for a particular plug-in type.
inTableType
is unknown or if inTablePageSize
is not a supported size for the given table type.[in] | inPageTableFilePath | Path to XML page table file. |
[in] | inFilePathEncoding | File path text encoding. |
[in] | inManufacturerID | Manufacturer ID of the desired plug-in type |
[in] | inProductID | Product ID of the desired plug-in type |
[in] | inPlugInID | Type ID of the desired plug-in type (AAX_eProperty_PlugInID_Native, AAX_eProperty_PlugInID_TI) |
[in] | inTableType | Four-char type identifier for the requested table type (e.g. 'PgTL' , 'Av81' , etc.) |
[in] | inTablePageSize | Page size for the requested table. Some tables support multiple page sizes. |
Implemented in AAX_VController.
|
pure virtual |
Copy the current page table data for a particular plug-in effect and page table layout.
inLayoutName
is not a valid layout name for the page tables file.[in] | inPageTableFilePath | Path to XML page table file. |
[in] | inFilePathEncoding | File path text encoding. |
[in] | inLayoutName | Page table layout name ("name" attribute of the PTLayout XML tag) |
[in] | inTableType | Four-char type identifier for the requested table type (e.g. 'PgTL' , 'Av81' , etc.) |
[in] | inTablePageSize | Page size for the requested table. Some tables support multiple page sizes. |
Implemented in AAX_VController.