AAX SDK  2.4.1
Avid Audio Extensions Development Kit
AAX_IACFEffectParameters.h
Go to the documentation of this file.
1 /*================================================================================================*/
2 /*
3  *
4  * Copyright 2013-2017, 2019 by Avid Technology, Inc.
5  * All rights reserved.
6  *
7  * CONFIDENTIAL: This document contains confidential information. Do not
8  * read or examine this document unless you are an Avid Technology employee
9  * or have signed a non-disclosure agreement with Avid Technology which protects
10  * the confidentiality of this document. DO NOT DISCLOSE ANY INFORMATION
11  * CONTAINED IN THIS DOCUMENT TO ANY THIRD-PARTY WITHOUT THE PRIOR WRITTEN CONSENT
12  * OF Avid Technology, INC.
13  *
14  */
15 
22 /*================================================================================================*/
23 
24 
25 #ifndef AAX_IACFEFFECTPARAMETERS_H
26 #define AAX_IACFEFFECTPARAMETERS_H
27 
28 #include "AAX.h"
29 
30 class AAX_IString;
31 class AAX_IParameter;
32 
33 
34 #ifdef __clang__
35 #pragma clang diagnostic push
36 #pragma clang diagnostic ignored "-Wnon-virtual-dtor"
37 #endif
38 
39 #include "acfunknown.h"
40 
57 {
58 public:
59 
71  virtual AAX_Result Initialize(IACFUnknown * iController) = 0;
78  virtual AAX_Result Uninitialize () = 0;
80 
81 
110  virtual AAX_Result NotificationReceived( /* AAX_ENotificationEvent */ AAX_CTypeID inNotificationType, const void * inNotificationData, uint32_t inNotificationDataSize) = 0;
112 
113 
132  virtual AAX_Result GetNumberOfParameters ( int32_t * oNumControls ) const = 0;
141  virtual AAX_Result GetMasterBypassParameter ( AAX_IString * oIDString ) const = 0;
151  virtual AAX_Result GetParameterIsAutomatable ( AAX_CParamID iParameterID, AAX_CBoolean * oAutomatable ) const = 0;
164  virtual AAX_Result GetParameterNumberOfSteps ( AAX_CParamID iParameterID, int32_t * oNumSteps ) const = 0;
175  virtual AAX_Result GetParameterName ( AAX_CParamID iParameterID, AAX_IString * oName ) const = 0;
197  virtual AAX_Result GetParameterNameOfLength ( AAX_CParamID iParameterID, AAX_IString * oName, int32_t iNameLength ) const = 0;
207  virtual AAX_Result GetParameterDefaultNormalizedValue ( AAX_CParamID iParameterID, double * oValue ) const = 0;
219  virtual AAX_Result SetParameterDefaultNormalizedValue ( AAX_CParamID iParameterID, double iValue ) = 0;
231  virtual AAX_Result GetParameterType ( AAX_CParamID iParameterID, AAX_EParameterType * oParameterType ) const = 0;
266  virtual AAX_Result GetParameterOrientation ( AAX_CParamID iParameterID, AAX_EParameterOrientation * oParameterOrientation ) const = 0;
282  virtual AAX_Result GetParameter ( AAX_CParamID iParameterID, AAX_IParameter ** oParameter ) = 0;
295  virtual AAX_Result GetParameterIndex ( AAX_CParamID iParameterID, int32_t * oControlIndex ) const = 0;
308  virtual AAX_Result GetParameterIDFromIndex ( int32_t iControlIndex, AAX_IString * oParameterIDString ) const = 0;
324  virtual AAX_Result GetParameterValueInfo ( AAX_CParamID iParameterID, int32_t iSelector, int32_t* oValue) const = 0;
326 
327 
328 
354  virtual AAX_Result GetParameterValueFromString ( AAX_CParamID iParameterID, double * oValue, const AAX_IString & iValueString ) const = 0;
374  virtual AAX_Result GetParameterStringFromValue ( AAX_CParamID iParameterID, double iValue, AAX_IString * oValueString, int32_t iMaxLength ) const = 0;
389  virtual AAX_Result GetParameterValueString ( AAX_CParamID iParameterID, AAX_IString* oValueString, int32_t iMaxLength ) const = 0;
399  virtual AAX_Result GetParameterNormalizedValue ( AAX_CParamID iParameterID, double * oValuePtr ) const = 0;
414  virtual AAX_Result SetParameterNormalizedValue ( AAX_CParamID iParameterID, double iValue ) = 0;
444  virtual AAX_Result SetParameterNormalizedRelative ( AAX_CParamID iParameterID, double iValue ) = 0;
446 
447 
448 
474  virtual AAX_Result TouchParameter ( AAX_CParamID iParameterID ) = 0;
488  virtual AAX_Result ReleaseParameter ( AAX_CParamID iParameterID ) = 0;
502  virtual AAX_Result UpdateParameterTouch ( AAX_CParamID iParameterID, AAX_CBoolean iTouchState ) = 0;
504 
505 
539  virtual AAX_Result UpdateParameterNormalizedValue ( AAX_CParamID iParameterID, double iValue, AAX_EUpdateSource iSource ) = 0;
562  virtual AAX_Result UpdateParameterNormalizedRelative ( AAX_CParamID iParameterID, double iValue ) = 0;
582 
583 
610  virtual AAX_Result ResetFieldData (AAX_CFieldIndex inFieldIndex, void * oData, uint32_t inDataSize) const = 0;
612 
613 
644  virtual AAX_Result GetNumberOfChunks ( int32_t * oNumChunks ) const = 0;
654  virtual AAX_Result GetChunkIDFromIndex ( int32_t iIndex, AAX_CTypeID * oChunkID ) const = 0;
675  virtual AAX_Result GetChunkSize ( AAX_CTypeID iChunkID, uint32_t * oSize ) const = 0;
699  virtual AAX_Result GetChunk ( AAX_CTypeID iChunkID, AAX_SPlugInChunk * oChunk ) const = 0;
713  virtual AAX_Result SetChunk ( AAX_CTypeID iChunkID, const AAX_SPlugInChunk * iChunk ) = 0;
732  virtual AAX_Result CompareActiveChunk ( const AAX_SPlugInChunk * iChunkP, AAX_CBoolean * oIsEqual ) const = 0;
750  virtual AAX_Result GetNumberOfChanges ( int32_t * oNumChanges ) const = 0;
752 
769  virtual AAX_Result TimerWakeup( ) = 0;
771 
816  virtual AAX_Result GetCurveData( /* AAX_ECurveType */ AAX_CTypeID iCurveType, const float * iValues, uint32_t iNumValues, float * oValues ) const = 0;
818 
840  virtual AAX_Result GetCustomData( AAX_CTypeID iDataBlockID, uint32_t inDataSize, void* oData, uint32_t* oDataWritten) const = 0;
841 
851  virtual AAX_Result SetCustomData( AAX_CTypeID iDataBlockID, uint32_t inDataSize, const void* iData ) = 0;
853 
869 };
870 
878 {
879  float** mAudioInputs;
880  int32_t* mNumAudioInputs;
881  float** mAudioOutputs;
883  int32_t* mNumSamples;
885 };
886 
902 {
903 public:
904 
919 
940  virtual AAX_Result UpdateMIDINodes ( AAX_CFieldIndex inFieldIndex, AAX_CMidiPacket& iPacket ) = 0;
942 
961 };
962 
978 {
979 public:
980 
1002  virtual AAX_Result GetCurveDataMeterIds( /* AAX_ECurveType */ AAX_CTypeID iCurveType, uint32_t *oXMeterId, uint32_t *oYMeterId) const = 0;
1003 
1024  virtual AAX_Result GetCurveDataDisplayRange( /* AAX_ECurveType */ AAX_CTypeID iCurveType, float *oXMin, float *oXMax, float *oYMin, float *oYMax ) const = 0;
1026 };
1027 
1043 {
1044 public:
1045 
1090  virtual AAX_Result UpdatePageTable(uint32_t inTableType, int32_t inTablePageSize, IACFUnknown* iHostUnknown, IACFUnknown* ioPageTableUnknown) const = 0;
1092 };
1093 
1094 #ifdef __clang__
1095 #pragma clang diagnostic pop
1096 #endif
1097 
1098 #endif // AAX_IACFEFFECTPARAMETERS_H
Various utility definitions for AAX.
const char * AAX_CParamID
Parameter identifier.
Definition: AAX.h:352
int32_t AAX_Result
Definition: AAX.h:337
uint8_t AAX_CBoolean
Cross-compiler boolean type used by AAX interfaces.
Definition: AAX.h:329
int64_t AAX_CTimestamp
Time stamp value. Measured against the DAE clock (see AAX_IComponentDescriptor::AddClock() )
Definition: AAX.h:331
uint32_t AAX_CTypeID
Matches type of OSType used in classic plugins.
Definition: AAX.h:336
AAX_CIndex AAX_CFieldIndex
Not used by AAX plug-ins (except in AAX_FIELD_INDEX macro)
Definition: AAX.h:349
AAX_EUpdateSource
Source for values passed into UpdateParameterNormalizedValue().
Definition: AAX_Enums.h:1028
AAX_EParameterType
FIC stuff that I can't include without DAE library dependence.
Definition: AAX_Enums.h:833
int32_t AAX_EParameterOrientation
Typedef for a bitfield of AAX_EParameterOrientationBits values.
Definition: AAX_Enums.h:866
virtual AAX_Result RenderAudio_Hybrid(AAX_SHybridRenderInfo *ioRenderInfo)=0
Hybrid audio render function.
virtual AAX_Result GetCurveDataDisplayRange(AAX_CTypeID iCurveType, float *oXMin, float *oXMax, float *oYMin, float *oYMax) const =0
Determines the range of the graph shown by the plug-in.
virtual AAX_Result GetCurveData(AAX_CTypeID iCurveType, const float *iValues, uint32_t iNumValues, float *oValues) const =0
Generate a set of output values based on a set of given input values.
virtual AAX_Result GetCurveDataMeterIds(AAX_CTypeID iCurveType, uint32_t *oXMeterId, uint32_t *oYMeterId) const =0
Indicates which meters correspond to the X and Y axes of the EQ or Dynamics graph.
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.doxygen:248
Plug-in chunk header + data.
Definition: AAX.h:537
Packet structure for MIDI data.
Definition: AAX.h:637
The interface for an AAX Plug-in's data model.
Definition: AAX_IACFEffectParameters.h:57
virtual AAX_Result GenerateCoefficients()=0
Generates and dispatches new coefficient packets.
virtual AAX_Result GetChunkIDFromIndex(int32_t iIndex, AAX_CTypeID *oChunkID) const =0
Retrieves the ID associated with a chunk index.
virtual AAX_Result GetParameter(AAX_CParamID iParameterID, AAX_IParameter **oParameter)=0
CALL: Retrieves an arbitrary setting within a parameter.
virtual AAX_Result GetParameterValueInfo(AAX_CParamID iParameterID, int32_t iSelector, int32_t *oValue) const =0
CALL: Retrieves a property of a parameter.
virtual AAX_Result GetNumberOfChanges(int32_t *oNumChanges) const =0
Retrieves the number of parameter changes made since the plug-in's creation.
virtual AAX_Result GetParameterNormalizedValue(AAX_CParamID iParameterID, double *oValuePtr) const =0
CALL: Retrieves a parameter's current value.
virtual AAX_Result CompareActiveChunk(const AAX_SPlugInChunk *iChunkP, AAX_CBoolean *oIsEqual) const =0
Determine if a chunk represents settings that are equivalent to the plug-in's current state.
virtual AAX_Result GetParameterNumberOfSteps(AAX_CParamID iParameterID, int32_t *oNumSteps) const =0
CALL: Retrieves the number of discrete steps for a parameter.
virtual AAX_Result ReleaseParameter(AAX_CParamID iParameterID)=0
Releases a parameter from a "touched" state.
virtual AAX_Result SetChunk(AAX_CTypeID iChunkID, const AAX_SPlugInChunk *iChunk)=0
Restores a set of plug-in parameters based on chunk information.
virtual AAX_Result SetParameterDefaultNormalizedValue(AAX_CParamID iParameterID, double iValue)=0
CALL: Sets the default value of a parameter.
virtual AAX_Result SetParameterNormalizedValue(AAX_CParamID iParameterID, double iValue)=0
CALL: Sets the specified parameter to a new value.
virtual AAX_Result GetNumberOfChunks(int32_t *oNumChunks) const =0
Retrieves the number of chunks used by this plug-in.
virtual AAX_Result GetCustomData(AAX_CTypeID iDataBlockID, uint32_t inDataSize, void *oData, uint32_t *oDataWritten) const =0
An optional interface hook for getting custom data from another module.
virtual AAX_Result GetParameterIsAutomatable(AAX_CParamID iParameterID, AAX_CBoolean *oAutomatable) const =0
CALL: Retrieves information about a parameter's automatable status.
virtual AAX_Result GetParameterIDFromIndex(int32_t iControlIndex, AAX_IString *oParameterIDString) const =0
CALL: Retrieves the ID of a parameter.
virtual AAX_Result UpdateParameterNormalizedRelative(AAX_CParamID iParameterID, double iValue)=0
Updates a single parameter's state to its current value, as a difference with the parameter's previou...
virtual AAX_Result GetParameterValueFromString(AAX_CParamID iParameterID, double *oValue, const AAX_IString &iValueString) const =0
CALL: Converts a value string to a value.
virtual AAX_Result GetParameterNameOfLength(AAX_CParamID iParameterID, AAX_IString *oName, int32_t iNameLength) const =0
CALL: Retrieves an abbreviated name for a parameter.
virtual AAX_Result UpdateParameterNormalizedValue(AAX_CParamID iParameterID, double iValue, AAX_EUpdateSource iSource)=0
Updates a single parameter's state to its current value.
virtual AAX_Result SetParameterNormalizedRelative(AAX_CParamID iParameterID, double iValue)=0
CALL: Sets the specified parameter to a new value relative to its current value.
virtual AAX_Result ResetFieldData(AAX_CFieldIndex inFieldIndex, void *oData, uint32_t inDataSize) const =0
Called by the host to reset a private data field in the plug-in's algorithm.
virtual AAX_Result Uninitialize()=0
Main data model uninitialization.
virtual AAX_Result GetParameterDefaultNormalizedValue(AAX_CParamID iParameterID, double *oValue) const =0
CALL: Retrieves default value of a parameter.
virtual AAX_Result GetNumberOfParameters(int32_t *oNumControls) const =0
CALL: Retrieves the total number of plug-in parameters.
virtual AAX_Result GetParameterName(AAX_CParamID iParameterID, AAX_IString *oName) const =0
CALL: Retrieves the full name for a parameter.
virtual AAX_Result UpdateParameterTouch(AAX_CParamID iParameterID, AAX_CBoolean iTouchState)=0
Sets a "touched" state on a parameter.
virtual AAX_Result NotificationReceived(AAX_CTypeID inNotificationType, const void *inNotificationData, uint32_t inNotificationDataSize)=0
Notification Hook.
virtual AAX_Result SetCustomData(AAX_CTypeID iDataBlockID, uint32_t inDataSize, const void *iData)=0
An optional interface hook for setting custom data for use by another module.
virtual AAX_Result GetChunkSize(AAX_CTypeID iChunkID, uint32_t *oSize) const =0
Get the size of the data structure that can hold all of a chunk's information.
virtual AAX_Result GetParameterValueString(AAX_CParamID iParameterID, AAX_IString *oValueString, int32_t iMaxLength) const =0
CALL: Retrieves the value string associated with a parameter's current value.
virtual AAX_Result TimerWakeup()=0
Periodic wakeup callback for idle-time operations.
virtual AAX_Result GetMasterBypassParameter(AAX_IString *oIDString) const =0
CALL: Retrieves the ID of the plug-in's Master Bypass parameter.
virtual AAX_Result GetChunk(AAX_CTypeID iChunkID, AAX_SPlugInChunk *oChunk) const =0
Fills a block of data with chunk information representing the plug-in's current state.
virtual AAX_Result GetParameterOrientation(AAX_CParamID iParameterID, AAX_EParameterOrientation *oParameterOrientation) const =0
CALL: Retrieves the orientation that should be applied to a parameter's controls.
virtual AAX_Result Initialize(IACFUnknown *iController)=0
Main data model initialization. Called when plug-in instance is first instantiated.
virtual AAX_Result GetParameterStringFromValue(AAX_CParamID iParameterID, double iValue, AAX_IString *oValueString, int32_t iMaxLength) const =0
CALL: Converts a normalized parameter value into a string representing its corresponding real value.
virtual AAX_Result GetParameterType(AAX_CParamID iParameterID, AAX_EParameterType *oParameterType) const =0
CALL: Retrieves the type of a parameter.
virtual AAX_Result TouchParameter(AAX_CParamID iParameterID)=0
"Touches" (locks) a parameter in the automation system to a particular control in preparation for upd...
virtual AAX_Result DoMIDITransfers()=0
MIDI update callback.
virtual AAX_Result GetParameterIndex(AAX_CParamID iParameterID, int32_t *oControlIndex) const =0
CALL: Retrieves the index of a parameter.
Hybrid render processing context.
Definition: AAX_IACFEffectParameters.h:878
float ** mAudioOutputs
Definition: AAX_IACFEffectParameters.h:881
int32_t * mNumAudioOutputs
Definition: AAX_IACFEffectParameters.h:882
int32_t * mNumSamples
Definition: AAX_IACFEffectParameters.h:883
int32_t * mNumAudioInputs
Definition: AAX_IACFEffectParameters.h:880
float ** mAudioInputs
Definition: AAX_IACFEffectParameters.h:879
AAX_CTimestamp * mClock
Definition: AAX_IACFEffectParameters.h:884
Supplemental interface for an AAX Plug-in's data model.
Definition: AAX_IACFEffectParameters.h:902
virtual AAX_Result UpdateMIDINodes(AAX_CFieldIndex inFieldIndex, AAX_CMidiPacket &iPacket)=0
MIDI update callback.
virtual AAX_Result UpdateControlMIDINodes(AAX_CTypeID nodeID, AAX_CMidiPacket &iPacket)=0
MIDI update callback for control MIDI nodes.
Supplemental interface for an AAX Plug-in's data model.
Definition: AAX_IACFEffectParameters.h:978
Supplemental interface for an AAX Plug-in's data model.
Definition: AAX_IACFEffectParameters.h:1043
virtual AAX_Result UpdatePageTable(uint32_t inTableType, int32_t inTablePageSize, IACFUnknown *iHostUnknown, IACFUnknown *ioPageTableUnknown) const =0
Allow the plug-in to update its page tables.
The base interface for all normalizable plug-in parameters.
Definition: AAX_IParameter.h:140
A simple string container that can be passed across a binary boundary. This class,...
Definition: AAX_IString.h:41