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_VController Class Reference

#include <AAX_VController.h>

Inheritance diagram for AAX_VController:
Inheritance graph
[legend]
Collaboration diagram for AAX_VController:
Collaboration graph
[legend]

Description

Version-managed concrete Controller class.

For usage information, see Host-provided interfaces

Public Member Functions

 AAX_VController (IACFUnknown *pUnknown)
 
virtual ~AAX_VController ()
 
virtual AAX_Result GetEffectID (AAX_IString *oEffectID) const
 
virtual AAX_Result GetSampleRate (AAX_CSampleRate *oSampleRate) const
 CALL: Returns the current literal sample rate. More...
 
virtual AAX_Result GetInputStemFormat (AAX_EStemFormat *oStemFormat) const
 CALL: Returns the plug-in's input stem format. More...
 
virtual AAX_Result GetOutputStemFormat (AAX_EStemFormat *oStemFormat) const
 CALL: Returns the plug-in's output stem format. More...
 
virtual AAX_Result GetSignalLatency (int32_t *oSamples) const
 CALL: Returns the most recent signal (algorithmic) latency that has been published by the plug-in. More...
 
virtual AAX_Result GetHybridSignalLatency (int32_t *oSamples) const
 CALL: Returns the latency between the algorithm normal input samples and the inputs returning from the hyrbid component. More...
 
virtual AAX_Result GetCycleCount (AAX_EProperty iWhichCycleCount, AAX_CPropertyValue *oNumCycles) const
 CALL: returns the plug-in's current real-time DSP cycle count. More...
 
virtual AAX_Result GetTODLocation (AAX_CTimeOfDay *oTODLocation) const
 CALL: Returns the current Time Of Day (TOD) of the system. More...
 
virtual AAX_Result GetCurrentAutomationTimestamp (AAX_CTransportCounter *oTimestamp) const
 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
 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 SetSignalLatency (int32_t numSamples)
 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 numValues)
 CALL: Indicates a change in the plug-in's real-time DSP cycle count. More...
 
virtual AAX_Result PostPacket (AAX_CFieldIndex iFieldIndex, const void *iPayloadP, uint32_t iPayloadSize)
 CALL: Posts a data packet to the host for routing between plug-in components. More...
 
virtual AAX_Result SendNotification (AAX_CTypeID iNotificationType, const void *iNotificationData, uint32_t iNotificationDataSize)
 CALL: Sends an event to the GUI. More...
 
virtual AAX_Result GetCurrentMeterValue (AAX_CTypeID iMeterID, float *oMeterValue) const
 CALL: Retrieves the current value of a host-managed plug-in meter. More...
 
virtual AAX_Result GetMeterPeakValue (AAX_CTypeID iMeterID, float *oMeterPeakValue) const
 CALL: Retrieves the currently held peak value of a host-managed plug-in meter. More...
 
virtual AAX_Result ClearMeterPeakValue (AAX_CTypeID iMeterID) const
 CALL: Clears the peak value from a host-managed plug-in meter. More...
 
virtual AAX_Result GetMeterClipped (AAX_CTypeID iMeterID, AAX_CBoolean *oClipped) const
 CALL: Retrieves the clipped flag from a host-managed plug-in meter. More...
 
virtual AAX_Result ClearMeterClipped (AAX_CTypeID iMeterID) const
 CALL: Clears the clipped flag from a host-managed plug-in meter. More...
 
virtual AAX_Result GetMeterCount (uint32_t *oMeterCount) const
 CALL: Retrieves the number of host-managed meters registered by a plug-in. More...
 
virtual AAX_Result GetNextMIDIPacket (AAX_CFieldIndex *oPort, AAX_CMidiPacket *oPacket)
 CALL: Retrieves MIDI packets for described MIDI nodes. More...
 
- Public Member Functions inherited from AAX_IController
virtual ~AAX_IController (void)
 

Constructor & Destructor Documentation

AAX_VController::AAX_VController ( IACFUnknown pUnknown)
virtual AAX_VController::~AAX_VController ( )
virtual

Member Function Documentation

virtual AAX_Result AAX_VController::GetEffectID ( AAX_IString oEffectID) const
virtual

Implements AAX_IController.

virtual AAX_Result AAX_VController::GetSampleRate ( AAX_CSampleRate oSampleRate) const
virtual

CALL: Returns the current literal sample rate.

Parameters
[out]oSampleRateThe current sample rate

Implements AAX_IController.

virtual AAX_Result AAX_VController::GetInputStemFormat ( AAX_EStemFormat oStemFormat) const
virtual

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

Parameters
[out]oStemFormatThe current input stem format

Implements AAX_IController.

virtual AAX_Result AAX_VController::GetOutputStemFormat ( AAX_EStemFormat oStemFormat) const
virtual

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

Parameters
[out]oStemFormatThe current output stem format

Implements AAX_IController.

virtual AAX_Result AAX_VController::GetSignalLatency ( int32_t *  oSamples) const
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

Implements AAX_IController.

virtual AAX_Result AAX_VController::GetHybridSignalLatency ( int32_t *  oSamples) const
virtual

CALL: Returns the latency between the algorithm normal input samples and the inputs returning from the hyrbid component.

This method provides the number of samples that the AAX host expects the plug-in to delay a signal. The host will use this value when accounting for latency across the system.

Note
This value will generally scale up with sample rate, although it's not a simple multiple due to some fixed overhead. This value will be fixed for any given sample rate regardless of other buffer size settings in the host app.
Parameters
[out]oSamplesThe number of samples of hybrid signal delay

Implements AAX_IController.

virtual AAX_Result AAX_VController::GetCycleCount ( AAX_EProperty  iWhichCycleCount,
AAX_CPropertyValue oValue 
) const
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

Implements AAX_IController.

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

Implements AAX_IController.

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

Implements AAX_IController.

virtual AAX_Result AAX_VController::GetHostName ( AAX_IString oHostNameString) const
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.

Implements AAX_IController.

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

Implements AAX_IController.

virtual AAX_Result AAX_VController::SetCycleCount ( AAX_EProperty iWhichCycleCounts,
AAX_CPropertyValue iValues,
int32_t  oNumValues 
)
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

Implements AAX_IController.

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

Implements AAX_IController.

virtual AAX_Result AAX_VController::SendNotification ( AAX_CTypeID  iNotificationType,
const void *  iNotificationData,
uint32_t  iNotificationDataSize 
)
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

Implements AAX_IController.

virtual AAX_Result AAX_VController::GetCurrentMeterValue ( AAX_CTypeID  iMeterID,
float *  oMeterValue 
) const
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

Implements AAX_IController.

virtual AAX_Result AAX_VController::GetMeterPeakValue ( AAX_CTypeID  iMeterID,
float *  oPeakValue 
) const
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

Implements AAX_IController.

virtual AAX_Result AAX_VController::ClearMeterPeakValue ( AAX_CTypeID  iMeterID) const
virtual

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

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

Implements AAX_IController.

virtual AAX_Result AAX_VController::GetMeterClipped ( AAX_CTypeID  iMeterID,
AAX_CBoolean oClipped 
) const
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.

Implements AAX_IController.

virtual AAX_Result AAX_VController::ClearMeterClipped ( AAX_CTypeID  iMeterID) const
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.

Implements AAX_IController.

virtual AAX_Result AAX_VController::GetMeterCount ( uint32_t *  oMeterCount) const
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.

Implements AAX_IController.

virtual AAX_Result AAX_VController::GetNextMIDIPacket ( AAX_CFieldIndex oPort,
AAX_CMidiPacket oPacket 
)
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

Implements AAX_IController.


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