| 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 | 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.
virtual AAX_Result | GetInputStemFormat (AAX_EStemFormat *outStemFormat) const =0
| CALL: Returns the plug-in's input stem format.
virtual AAX_Result | GetOutputStemFormat (AAX_EStemFormat *outStemFormat) const =0
| CALL: Returns the plug-in's output stem format.
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.
virtual AAX_Result | GetCycleCount (AAX_EProperty inWhichCycleCount, AAX_CPropertyValue *outNumCycles) const =0
| CALL: returns the plug-in's current real-time DSP cycle count.
virtual AAX_Result | GetTODLocation (AAX_CTimeOfDay *outTODLocation) const =0
| CALL: Returns the current Time Of Day (TOD) of the system.
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.
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.
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.
virtual AAX_Result | GetCurrentMeterValue (AAX_CTypeID inMeterID, float *outMeterValue) const =0
| CALL: Retrieves the current value of a host-managed plug-in meter.
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.
virtual AAX_Result | ClearMeterPeakValue (AAX_CTypeID inMeterID) const =0
| CALL: Clears the peak value from a host-managed plug-in meter.
virtual AAX_Result | GetMeterClipped (AAX_CTypeID inMeterID, AAX_CBoolean *outClipped) const =0
| CALL: Retrieves the clipped flag from a host-managed plug-in meter.
virtual AAX_Result | ClearMeterClipped (AAX_CTypeID inMeterID) const =0
| CALL: Clears the clipped flag from a host-managed plug-in meter.
virtual AAX_Result | GetMeterCount (uint32_t *outMeterCount) const =0
| CALL: Retrieves the number of host-managed meters registered by a plug-in.
virtual AAX_Result | GetNextMIDIPacket (AAX_CFieldIndex *outPort, AAX_CMidiPacket *outPacket)=0
| CALL: Retrieves MIDI packets for described MIDI nodes.
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

## ◆ 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] | outSampleRate | The 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] | outStemFormat | The 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] | outStemFormat | The 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] | outSamples | The 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] | inWhichCycleCount | Selector for the requested cycle count metric. One of: AAX_eProperty_TI_SharedCycleCount AAX_eProperty_TI_InstanceCycleCount AAX_eProperty_TI_MaxInstancesPerChip
  [in] | outNumCycles | The 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] | outTODLocation | The 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] | inNumSamples | The 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] | inWhichCycleCounts | Array of selectors indicating the specific cycle count metrics that should be set. Each selector must be one of: AAX_eProperty_TI_SharedCycleCount AAX_eProperty_TI_InstanceCycleCount AAX_eProperty_TI_MaxInstancesPerChip
  [in] | iValues | An array of values requested, one for each of the selected cycle count metrics.
  [in] | numValues | The 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] | 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

## ◆ 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] | inMeterID | ID of the meter that is being queried
  [out] | outMeterValue | The 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] | inMeterID | ID of the meter that is being queried
  [out] | outMeterPeakValue | The 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] | inMeterID | ID 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] | inMeterID | ID of the meter that is being queried.
  [out] | outClipped | The 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] | inMeterID | ID 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] | outMeterCount | The 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] | outPort | port ID of the MIDI node that has unhandled packet
  [out] | outPacket | The MIDI packet

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

- AAX_IACFController.h