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

#include <AAX_CInstrumentParameters.h>

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

Description

Virtual Instrument extension of the AAX_CEffectParameters class.

This extension to AAX_CEffectParameters adds some Virtual Instrument (VI) conveniences:

Note
This convenience class assumes a monolithic processing environment (i.e. AAX_eConstraintLocationMask_DataModel .) This precludes the use of AAX_CInstrumentParameters -derived Effects in distributed-processing formats such as AAX DSP.

Public Member Functions

 AAX_CInstrumentParameters (void)
 
virtual ~AAX_CInstrumentParameters (void)
 
Render Functions

virtual functions to override when you want to generate audio output.

virtual void RenderAudio (AAX_SInstrumentRenderInfo *ioRenderInfo)
 
- Public Member Functions inherited from AAX_CEffectParameters
 AAX_CEffectParameters (void)
 
virtual ~AAX_CEffectParameters (void)
 
AAX_CEffectParametersoperator= (const AAX_CEffectParameters &other)
 
virtual AAX_Result Initialize (IACFUnknown *iController)
 Main data model initialization. Called when plug-in instance is first instantiated. More...
 
virtual AAX_Result Uninitialize (void)
 Main data model uninitialization. More...
 
virtual AAX_Result NotificationReceived (AAX_CTypeID iNotificationType, const void *iNotificationData, uint32_t iNotificationDataSize)
 Notification Hook. More...
 
virtual AAX_Result GetNumberOfParameters (int32_t *oNumControls) const
 CALL: Retrieves the total number of plug-in parameters. More...
 
virtual AAX_Result GetMasterBypassParameter (AAX_IString *oIDString) const
 CALL: Retrieves the ID of the plug-in's Master Bypass parameter. More...
 
virtual AAX_Result GetParameterIsAutomatable (AAX_CParamID iParameterID, AAX_CBoolean *oAutomatable) const
 CALL: Retrieves information about a parameter's automatable status. More...
 
virtual AAX_Result GetParameterNumberOfSteps (AAX_CParamID iParameterID, int32_t *oNumSteps) const
 CALL: Retrieves the number of discrete steps for a parameter. More...
 
virtual AAX_Result GetParameterName (AAX_CParamID iParameterID, AAX_IString *oName) const
 CALL: Retrieves the full name for a parameter. More...
 
virtual AAX_Result GetParameterNameOfLength (AAX_CParamID iParameterID, AAX_IString *oName, int32_t iNameLength) const
 CALL: Retrieves an abbreviated name for a parameter. More...
 
virtual AAX_Result GetParameterDefaultNormalizedValue (AAX_CParamID iParameterID, double *oValue) const
 CALL: Retrieves default value of a parameter. More...
 
virtual AAX_Result SetParameterDefaultNormalizedValue (AAX_CParamID iParameterID, double iValue)
 CALL: Sets the default value of a parameter. More...
 
virtual AAX_Result GetParameterType (AAX_CParamID iParameterID, AAX_EParameterType *oParameterType) const
 CALL: Retrieves the type of a parameter. More...
 
virtual AAX_Result GetParameterOrientation (AAX_CParamID iParameterID, AAX_EParameterOrientation *oParameterOrientation) const
 CALL: Retrieves the orientation that should be applied to a parameter's controls. More...
 
virtual AAX_Result GetParameter (AAX_CParamID iParameterID, AAX_IParameter **oParameter)
 CALL: Retrieves an arbitrary setting within a parameter. More...
 
virtual AAX_Result GetParameterIndex (AAX_CParamID iParameterID, int32_t *oControlIndex) const
 CALL: Retrieves the index of a parameter. More...
 
virtual AAX_Result GetParameterIDFromIndex (int32_t iControlIndex, AAX_IString *oParameterIDString) const
 CALL: Retrieves the ID of a parameter. More...
 
virtual AAX_Result GetParameterValueInfo (AAX_CParamID iParameterID, int32_t iSelector, int32_t *oValue) const
 CALL: Retrieves a property of a parameter. More...
 
virtual AAX_Result GetParameterValueFromString (AAX_CParamID iParameterID, double *oValue, const AAX_IString &iValueString) const
 CALL: Converts a value string to a value. More...
 
virtual AAX_Result GetParameterStringFromValue (AAX_CParamID iParameterID, double iValue, AAX_IString *oValueString, int32_t iMaxLength) const
 CALL: Converts a normalized parameter value into a string representing its corresponding real value. More...
 
virtual AAX_Result GetParameterValueString (AAX_CParamID iParameterID, AAX_IString *oValueString, int32_t iMaxLength) const
 CALL: Retrieves the value string associated with a parameter's current value. More...
 
virtual AAX_Result GetParameterNormalizedValue (AAX_CParamID iParameterID, double *oValuePtr) const
 CALL: Retrieves a parameter's current value. More...
 
virtual AAX_Result SetParameterNormalizedValue (AAX_CParamID iParameterID, double iValue)
 CALL: Sets the specified parameter to a new value. More...
 
virtual AAX_Result SetParameterNormalizedRelative (AAX_CParamID iParameterID, double iValue)
 CALL: Sets the specified parameter to a new value relative to its current value. More...
 
virtual AAX_Result TouchParameter (AAX_CParamID iParameterID)
 "Touches" (locks) a parameter in the automation system to a particular control in preparation for updates More...
 
virtual AAX_Result ReleaseParameter (AAX_CParamID iParameterID)
 Releases a parameter from a "touched" state. More...
 
virtual AAX_Result UpdateParameterTouch (AAX_CParamID iParameterID, AAX_CBoolean iTouchState)
 Sets a "touched" state on a parameter. More...
 
virtual AAX_Result UpdateParameterNormalizedValue (AAX_CParamID iParameterID, double iValue, AAX_EUpdateSource iSource)
 Updates a single parameter's state to its current value. More...
 
virtual AAX_Result UpdateParameterNormalizedRelative (AAX_CParamID iParameterID, double iValue)
 Updates a single parameter's state to its current value, as a difference with the parameter's previous value. More...
 
virtual AAX_Result GenerateCoefficients (void)
 Generates and dispatches new coefficient packets. More...
 
virtual AAX_Result GetNumberOfChunks (int32_t *oNumChunks) const
 Retrieves the number of chunks used by this plug-in. More...
 
virtual AAX_Result GetChunkIDFromIndex (int32_t iIndex, AAX_CTypeID *oChunkID) const
 Retrieves the ID associated with a chunk index. More...
 
virtual AAX_Result GetChunkSize (AAX_CTypeID iChunkID, uint32_t *oSize) const
 Get the size of the data structure that can hold all of a chunk's information. More...
 
virtual AAX_Result GetChunk (AAX_CTypeID iChunkID, AAX_SPlugInChunk *oChunk) const
 Fills a block of data with chunk information representing the plug-in's current state. More...
 
virtual AAX_Result SetChunk (AAX_CTypeID iChunkID, const AAX_SPlugInChunk *iChunk)
 Restores a set of plug-in parameters based on chunk information. More...
 
virtual AAX_Result CompareActiveChunk (const AAX_SPlugInChunk *iChunkP, AAX_CBoolean *oIsEqual) const
 Determine if a chunk represents settings that are equivalent to the plug-in's current state. More...
 
virtual AAX_Result GetNumberOfChanges (int32_t *oNumChanges) const
 Retrieves the number of parameter changes made since the plug-in's creation. More...
 
virtual AAX_Result TimerWakeup ()
 Periodic wakeup callback for idle-time operations. More...
 
virtual AAX_Result GetCurveData (AAX_CTypeID iCurveType, const float *iValues, uint32_t iNumValues, float *oValues) const
 Generate a set of output values based on a set of given input values. More...
 
virtual AAX_Result GetCustomData (AAX_CTypeID iDataBlockID, uint32_t iDataSize, void *oData, uint32_t *oDataWritten) const
 An optional interface hook for getting custom data from another module. More...
 
virtual AAX_Result SetCustomData (AAX_CTypeID iDataBlockID, uint32_t iDataSize, const void *iData)
 An optional interface hook for setting custom data for use by another module. More...
 
virtual AAX_Result DoMIDITransfers ()
 MIDI update callback. More...
 
virtual AAX_Result UpdateMIDINodes (AAX_CFieldIndex iFieldIndex, AAX_CMidiPacket &iPacket)
 MIDI update callback. More...
 
virtual AAX_Result UpdateControlMIDINodes (AAX_CTypeID nodeID, AAX_CMidiPacket &iPacket)
 MIDI update callback for control MIDI nodes. More...
 
virtual AAX_Result RenderAudio_Hybrid (AAX_SHybridRenderInfo *ioRenderInfo)
 Hybrid audio render function. More...
 
AAX_IControllerController ()
 Access to the Effect controller. More...
 
const AAX_IControllerController () const
 const access to the Effect controller More...
 
AAX_ITransportTransport ()
 Access to the Transport object. More...
 
const AAX_ITransportTransport () const
 const access to the Transport object More...
 
AAX_IAutomationDelegateAutomationDelegate ()
 
const AAX_IAutomationDelegateAutomationDelegate () const
 
- Public Member Functions inherited from AAX_IEffectParameters
ACFMETHOD() InternalQueryInterface (const acfIID &riid, void **ppvObjOut)
 
Hybrid audio methods
MIDI methods
Initialization and uninitialization
AAX host and plug-in event notification
Parameter information

These methods are used by the AAX host to retrieve information about the plug-in's data model.



For information about adding parameters to the plug-in and otherwise modifying the plug-in's data model, see AAX_CParameterManager. For information about parameters, see AAX_IParameter.

Parameter setters and getters

These methods are used by the AAX host and by the plug-in's UI to retrieve and modify the values of the plug-in's parameters.

Note
The parameter setters in this section may generate asynchronous requests.
Automated parameter helpers

These methods are used to lock and unlock automation system 'resources' when updating automatable parameters.

Note
You should never need to override these methods to extend their behavior beyond what is provided in AAX_CEffectParameters and AAX_IParameter
Todo:
Do these methods belong in the data model? Should integration with automation system be bolt-on or otherwise modular?
Asynchronous parameter update methods

These methods are called by the AAX host when parameter values have been updated. They are called by the host and can be triggered by other plug-in modules via calls to AAX_IParameter's SetValue methods, e.g. SetValueWithFloat()

These methods are responsible for updating parameter values.

Do not call these methods directly! To ensure proper synchronization and to avoid problematic dependency chains, other methods (e.g. SetParameterNormalizedValue()) and components (e.g. AAX_IEffectGUI) should always call a SetValue method on AAX_IParameter to update parameter values. The SetValue method will properly manage automation locks and other system resources.

State reset handlers
Chunk methods

These methods are used to save and restore collections of plug-in state information, known as chunks. Chunks are used by the host when saving or restoring presets and session settings and when providing "compare" functionality for plug-ins.

The default implementation of these methods in AAX_CEffectParameters provides save and restore functionality for all of the plug-in's registered parameters. Override these methods to provide additional plug-in state details that are not encapsulated by the plug-in's set of parameters.

For reference, see also:

Thread Methods
EUCON Methods
Custom Data Methods

These functions exist as a proxiable way to move data between different modules (e.g. AAX_IEffectParameters and AAX_IEffectGUI.) Using these, the GUI can query any data through GetCustomData() with a plug-in defined typeID, void* and size. This has an advantage over just sharing memory in that this function can work as a remote proxy as we enable those sorts of features later in the platform. Likewise, the GUI can also set arbitrary data on the data model by using the SetCustomData() function with the same idea.

Note
These are plug-in internal only. They are not called from the host right now, or likely ever.
MIDI methods
- 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...
 

Convenience Layer Methods

Note
You should not need to override these methods, but if you do, make sure to call into the base class.
virtual AAX_Result ResetFieldData (AAX_CFieldIndex iFieldIndex, void *oData, uint32_t iDataSize) const
 
static AAX_Result StaticDescribe (AAX_IEffectDescriptor *ioDescriptor, const AAX_SInstrumentSetupInfo &setupInfo)
 
static void AAX_CALLBACK StaticRenderAudio (AAX_SInstrumentRenderInfo *const inInstancesBegin[], const void *inInstancesEnd)
 

Additional Inherited Members

- Protected Member Functions inherited from AAX_CEffectParameters
void BuildChunkData (void) const
 Clears out the current chunk in Chunk Parser and adds all of the new values. Used by default implementations of GetChunk() and GetChunkSize(). More...
 
AAX_Result SetTaperDelegate (AAX_CParamID iParameterID, AAX_ITaperDelegateBase &iTaperDelegate, bool iPreserveValue)
 
AAX_Result SetDisplayDelegate (AAX_CParamID iParameterID, AAX_IDisplayDelegateBase &iDisplayDelegate)
 
bool IsParameterTouched (AAX_CParamID iParameterID) const
 
bool IsParameterLinkReady (AAX_CParamID inParameterID, AAX_EUpdateSource inSource) const
 
virtual AAX_Result EffectInit (void)
 Initialization helper routine. Called from AAX_CEffectParameters::Initialize. More...
 
void FilterParameterIDOnSave (AAX_CParamID controlID)
 CALL: Indicates the indices of parameters that should not be saved in the default AAX_CEffectParameters chunk. More...
 
- Protected Attributes inherited from AAX_CEffectParameters
int32_t mNumPlugInChanges
 
int32_t mChunkSize
 
AAX_CChunkDataParser mChunkParser
 
int32_t mNumChunkedParameters
 
AAX_CBoolean mClipped
 Set by SetClipped() and returned by GetClipped(). More...
 
AAX_CPacketDispatcher mPacketDispatcher
 
AAX_CParameterManager mParameterManager
 
std::set< std::string > mFilteredParameters
 

Constructor & Destructor Documentation

AAX_CInstrumentParameters::AAX_CInstrumentParameters ( void  )
virtual AAX_CInstrumentParameters::~AAX_CInstrumentParameters ( void  )
virtual

Member Function Documentation

virtual void AAX_CInstrumentParameters::RenderAudio ( AAX_SInstrumentRenderInfo ioRenderInfo)
virtual
virtual AAX_Result AAX_CInstrumentParameters::ResetFieldData ( AAX_CFieldIndex  iFieldIndex,
void *  oData,
uint32_t  iDataSize 
) const
virtual

Overridden from AAX_CEffectParameters.

Reimplemented from AAX_CEffectParameters.

static AAX_Result AAX_CInstrumentParameters::StaticDescribe ( AAX_IEffectDescriptor ioDescriptor,
const AAX_SInstrumentSetupInfo setupInfo 
)
static

This method performs all of the basic context setup and pointer passing work. Call this from Describe.

static void AAX_CALLBACK AAX_CInstrumentParameters::StaticRenderAudio ( AAX_SInstrumentRenderInfo *const  inInstancesBegin[],
const void *  inInstancesEnd 
)
static

Static RenderAudio ( This version would only work for non-distributed algorithms. )


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