AAX SDK  2.1.1
Avid Audio Extensions Development Kit
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions
AAX_IController Class Referenceabstract

#include <AAX_IController.h>

Inheritance diagram for AAX_IController:
Inheritance graph
[legend]

Description

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.

:Implemented by the AAX Host:

Public Member Functions

virtual ~AAX_IController (void)
 
virtual AAX_Result GetHybridSignalLatency (int32_t *oSamples) 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 *oTimestamp) 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 *oHostNameString) 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...
 
Host information getters

Call these methods to retrieve environment and run-time information from the AAX host.

virtual AAX_Result GetEffectID (AAX_IString *oEffectID) const =0
 
virtual AAX_Result GetSampleRate (AAX_CSampleRate *oSampleRate) const =0
 CALL: Returns the current literal sample rate. More...
 
virtual AAX_Result GetInputStemFormat (AAX_EStemFormat *oStemFormat) const =0
 CALL: Returns the plug-in's input stem format. More...
 
virtual AAX_Result GetOutputStemFormat (AAX_EStemFormat *oStemFormat) const =0
 CALL: Returns the plug-in's output stem format. More...
 
virtual AAX_Result GetSignalLatency (int32_t *oSamples) 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 iWhichCycleCount, AAX_CPropertyValue *oValue) const =0
 CALL: returns the plug-in's current real-time DSP cycle count. More...
 
virtual AAX_Result GetTODLocation (AAX_CTimeOfDay *oTODLocation) 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 iNumSamples)=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 *iWhichCycleCounts, AAX_CPropertyValue *iValues, int32_t oNumValues)=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 iFieldIndex, const void *iPayloadP, uint32_t iPayloadSize)=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 iNotificationType, const void *iNotificationData, uint32_t iNotificationDataSize)=0
 CALL: Sends an event to the GUI. More...
 
Metering methods

Methods to access the plug-in's host-managed metering information.

See Also
Plug-in meters
virtual AAX_Result GetCurrentMeterValue (AAX_CTypeID iMeterID, float *oMeterValue) const =0
 CALL: Retrieves the current value of a host-managed plug-in meter. More...
 
virtual AAX_Result GetMeterPeakValue (AAX_CTypeID iMeterID, float *oPeakValue) const =0
 CALL: Retrieves the currently held peak value of a host-managed plug-in meter. More...
 
virtual AAX_Result ClearMeterPeakValue (AAX_CTypeID iMeterID) const =0
 CALL: Clears the peak value from a host-managed plug-in meter. More...
 
virtual AAX_Result GetMeterCount (uint32_t *oMeterCount) const =0
 CALL: Retrieves the number of host-managed meters registered by a plug-in. More...
 
virtual AAX_Result GetMeterClipped (AAX_CTypeID iMeterID, AAX_CBoolean *oClipped) const =0
 CALL: Retrieves the clipped flag from a host-managed plug-in meter. More...
 
virtual AAX_Result ClearMeterClipped (AAX_CTypeID iMeterID) 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 *oPort, AAX_CMidiPacket *oPacket)=0
 CALL: Retrieves MIDI packets for described MIDI nodes. More...
 

Constructor & Destructor Documentation

virtual AAX_IController::~AAX_IController ( void  )
inlinevirtual

Member Function Documentation

virtual AAX_Result AAX_IController::GetEffectID ( AAX_IString oEffectID) const
pure virtual

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::GetSampleRate ( AAX_CSampleRate oSampleRate) const
pure virtual

CALL: Returns the current literal sample rate.

Parameters
[out]oSampleRateThe current sample rate

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::GetInputStemFormat ( AAX_EStemFormat oStemFormat) const
pure virtual

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

Parameters
[out]oStemFormatThe current input stem format

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::GetOutputStemFormat ( AAX_EStemFormat oStemFormat) const
pure virtual

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

Parameters
[out]oStemFormatThe current output stem format

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::GetSignalLatency ( int32_t *  oSamples) 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]oSamplesThe number of samples of signal delay published by the plug-in

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::GetCycleCount ( AAX_EProperty  iWhichCycleCount,
AAX_CPropertyValue oValue 
) 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]iWhichCycleCountSelector for the requested cycle count metric. One of:
[in]oValueThe current value of the selected cycle count metric
Todo:
PLACEHOLDER - NOT CURRENTLY IMPLEMENTED IN HOST

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::GetTODLocation ( AAX_CTimeOfDay oTODLocation) 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.

Parameters
[out]oTODLocationThe current Time Of Day as set by the host

Implemented in AAX_VController.

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

Parameters
[in]iNumSamplesThe number of samples of signal delay that the plug-in requests to incur

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::SetCycleCount ( AAX_EProperty iWhichCycleCounts,
AAX_CPropertyValue iValues,
int32_t  oNumValues 
)
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]iWhichCycleCountsArray 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.
[out]oNumValuesThe number of values provided
Todo:
PLACEHOLDER - NOT CURRENTLY IMPLEMENTED IN HOST

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::PostPacket ( AAX_CFieldIndex  iFieldIndex,
const void *  iPayloadP,
uint32_t  iPayloadSize 
)
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().

Parameters
[in]iFieldIndexThe packet's destination port
[in]iPayloadPA pointer to the packet's payload data
[in]iPayloadSizeThe size, in bytes, of the payload data

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::SendNotification ( AAX_CTypeID  iNotificationType,
const void *  iNotificationData,
uint32_t  iNotificationDataSize 
)
pure virtual

CALL: Sends an event to the GUI.

This 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.

Parameters
[in]iNotificationTypeType of notification to send
[in]iNotificationDataBlock of notification data
[in]iNotificationDataSizeSize of iNotificationData, in bytes

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::GetCurrentMeterValue ( AAX_CTypeID  iMeterID,
float *  oMeterValue 
) const
pure virtual

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

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

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::GetMeterPeakValue ( AAX_CTypeID  iMeterID,
float *  oPeakValue 
) const
pure virtual

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

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

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::ClearMeterPeakValue ( AAX_CTypeID  iMeterID) const
pure virtual

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

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

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::GetMeterCount ( uint32_t *  oMeterCount) const
pure virtual

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

See AAX_IComponentDescriptor::AddMeters().

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

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::GetMeterClipped ( AAX_CTypeID  iMeterID,
AAX_CBoolean oClipped 
) const
pure virtual

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

See AAX_IComponentDescriptor::AddMeters().

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

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::ClearMeterClipped ( AAX_CTypeID  iMeterID) const
pure virtual

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

See AAX_IComponentDescriptor::AddMeters().

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

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::GetNextMIDIPacket ( AAX_CFieldIndex oPort,
AAX_CMidiPacket oPacket 
)
pure virtual

CALL: Retrieves MIDI packets for described MIDI nodes.

Parameters
[out]oPortport ID of the MIDI node that has unhandled packet
[out]oPacketThe MIDI packet

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::GetCurrentAutomationTimestamp ( AAX_CTransportCounter oTimestamp) const
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.

Note
This function will return 0 if called from outside of GenerateCoefficients() or if the GenerateCoefficients() call was initiated due to a non-automated change. In those cases, you can get your sample offset from the transport start using getTODLocation().
Parameters
[out]oTimestampThe current coefficient timestamp. Sample count from transport start.

Implemented in AAX_VController.

virtual AAX_Result AAX_IController::GetHostName ( AAX_IString oHostNameString) const
pure virtual

CALL: Returns name of the host application this plug-in instance is being loaded by. This string also typically includes version information.

Parameters
[out]oHostNameStringThe name of the current host application.

Implemented in AAX_VController.


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