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

#include <AAX_IACFController.h>

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

Description

Interface for the AAX host's view of a single instance of an effect. Used by both clients of the AAXHost and by effect components.

Public Member Functions

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...
 
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...
 
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...
 
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 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...
 
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 GetNextMIDIPacket (AAX_CFieldIndex *outPort, AAX_CMidiPacket *outPacket)=0
 CALL: Retrieves MIDI packets for described MIDI nodes. More...
 
- Public Member Functions inherited from IACFUnknown
virtual BEGIN_ACFINTERFACE ACFRESULT ACFMETHODCALLTYPE QueryInterface (const acfIID &iid, void **ppOut)=0
 Returns pointers to supported interfaces. More...
 
virtual acfUInt32 ACFMETHODCALLTYPE AddRef (void)=0
 Increments reference count. More...
 
virtual acfUInt32 ACFMETHODCALLTYPE Release (void)=0
 Decrements reference count. More...
 

Member Function Documentation

◆ GetEffectID()

virtual AAX_Result AAX_IACFController::GetEffectID ( AAX_IString outEffectID) const
pure virtual

◆ GetSampleRate()

virtual AAX_Result AAX_IACFController::GetSampleRate ( AAX_CSampleRate outSampleRate) const
pure virtual

CALL: Returns the current literal sample rate.

Parameters
[out]outSampleRateThe current sample rate

◆ GetInputStemFormat()

virtual AAX_Result AAX_IACFController::GetInputStemFormat ( AAX_EStemFormat outStemFormat) const
pure virtual

CALL: Returns the plug-in's input stem format.

Parameters
[out]outStemFormatThe current input stem format

◆ GetOutputStemFormat()

virtual AAX_Result AAX_IACFController::GetOutputStemFormat ( AAX_EStemFormat outStemFormat) const
pure virtual

CALL: Returns the plug-in's output stem format.

Parameters
[out]outStemFormatThe current output stem format

◆ GetSignalLatency()

virtual AAX_Result AAX_IACFController::GetSignalLatency ( int32_t *  outSamples) const
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.

See also
SetSignalLatency()
Parameters
[out]outSamplesThe number of samples of signal delay published by the plug-in

◆ GetCycleCount()

virtual AAX_Result AAX_IACFController::GetCycleCount ( AAX_EProperty  inWhichCycleCount,
AAX_CPropertyValue outNumCycles 
) const
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.

Note
A plug-in should never apply a DSP algorithm with more demanding resource requirements than what is currently accounted for by the host. To set a higher cycle count value, a plug-in must call AAX_IController::SetCycleCount(), then poll AAX_IController::GetCycleCount() until the new value has been applied. Once the host has recognized the new cycle count value, the plug-in may apply the more demanding algorithm.
Parameters
[in]inWhichCycleCountSelector for the requested cycle count metric. One of:
[in]outNumCyclesThe current value of the selected cycle count metric
Todo:
PLACEHOLDER - NOT CURRENTLY IMPLEMENTED IN HOST

◆ GetTODLocation()

virtual AAX_Result AAX_IACFController::GetTODLocation ( AAX_CTimeOfDay outTODLocation) const
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.

Note
The TOD value is the immediate value of the audio engine playhead. This value is incremented within the audio engine's real-time rendering context; it is not synchronized with non-real-time calls to plug-in interface methods.
Parameters
[out]outTODLocationThe current Time Of Day as set by the host

◆ SetSignalLatency()

virtual AAX_Result AAX_IACFController::SetSignalLatency ( int32_t  inNumSamples)
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.

Warning
Parameters which affect the latency of a plug-in should not be made available for control through automation. This will result in audible glitches when delay compensation is adjusted while playing back automation for these parameters.
Parameters
[in]inNumSamplesThe number of samples of signal delay that the plug-in requests to incur

◆ SetCycleCount()

virtual AAX_Result AAX_IACFController::SetCycleCount ( AAX_EProperty inWhichCycleCounts,
AAX_CPropertyValue iValues,
int32_t  numValues 
)
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.

Note
A plug-in should never apply a DSP algorithm with more demanding resource requirements than what is currently accounted for by the host. To set a higher cycle count value, a plug-in must call AAX_IController::SetCycleCount(), then poll AAX_IController::GetCycleCount() until the new value has been applied. Once the host has recognized the new cycle count value, the plug-in may apply the more demanding algorithm.
Parameters
[in]inWhichCycleCountsArray of selectors indicating the specific cycle count metrics that should be set. Each selector must be one of:
[in]iValuesAn array of values requested, one for each of the selected cycle count metrics.
[in]numValuesThe size of iValues
Todo:
PLACEHOLDER - NOT CURRENTLY IMPLEMENTED IN HOST

◆ PostPacket()

virtual AAX_Result AAX_IACFController::PostPacket ( AAX_CFieldIndex  inFieldIndex,
const void *  inPayloadP,
uint32_t  inPayloadSize 
)
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().

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.
Note
All calls to this method should be made within the scope of AAX_IEffectParameters::GenerateCoefficients(). Calls from outside this method may result in packets not being delivered. See PT-206161
Parameters
[in]inFieldIndexThe packet's destination port
[in]inPayloadPA pointer to the packet's payload data
[in]inPayloadSizeThe size, in bytes, of the payload data

◆ GetCurrentMeterValue()

virtual AAX_Result AAX_IACFController::GetCurrentMeterValue ( AAX_CTypeID  inMeterID,
float *  outMeterValue 
) const
pure virtual

CALL: Retrieves the current value of a host-managed plug-in meter.

Parameters
[in]inMeterIDID of the meter that is being queried
[out]outMeterValueThe queried meter's current value

◆ GetMeterPeakValue()

virtual AAX_Result AAX_IACFController::GetMeterPeakValue ( AAX_CTypeID  inMeterID,
float *  outMeterPeakValue 
) const
pure virtual

CALL: Retrieves the currently held peak value of a host-managed plug-in meter.

Parameters
[in]inMeterIDID of the meter that is being queried
[out]outMeterPeakValueThe queried meter's currently held peak value

◆ ClearMeterPeakValue()

virtual AAX_Result AAX_IACFController::ClearMeterPeakValue ( AAX_CTypeID  inMeterID) const
pure virtual

CALL: Clears the peak value from a host-managed plug-in meter.

Parameters
[in]inMeterIDID of the meter that is being cleared

◆ GetMeterClipped()

virtual AAX_Result AAX_IACFController::GetMeterClipped ( AAX_CTypeID  inMeterID,
AAX_CBoolean outClipped 
) const
pure virtual

CALL: Retrieves the clipped flag from a host-managed plug-in meter.

See AAX_IComponentDescriptor::AddMeters().

Parameters
[in]inMeterIDID of the meter that is being queried.
[out]outClippedThe queried meter's clipped flag.

◆ ClearMeterClipped()

virtual AAX_Result AAX_IACFController::ClearMeterClipped ( AAX_CTypeID  inMeterID) const
pure virtual

CALL: Clears the clipped flag from a host-managed plug-in meter.

See AAX_IComponentDescriptor::AddMeters().

Parameters
[in]inMeterIDID of the meter that is being cleared.

◆ GetMeterCount()

virtual AAX_Result AAX_IACFController::GetMeterCount ( uint32_t *  outMeterCount) const
pure virtual

CALL: Retrieves the number of host-managed meters registered by a plug-in.

See AAX_IComponentDescriptor::AddMeters().

Parameters
[out]outMeterCountThe number of registered plug-in meters.

◆ GetNextMIDIPacket()

virtual AAX_Result AAX_IACFController::GetNextMIDIPacket ( AAX_CFieldIndex outPort,
AAX_CMidiPacket outPacket 
)
pure virtual

CALL: Retrieves MIDI packets for described MIDI nodes.

Parameters
[out]outPortport ID of the MIDI node that has unhandled packet
[out]outPacketThe MIDI packet

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