| AAX SDK 2.6.1 Avid Audio Extensions Development Kit

- Welcome
- Manual
- Classes
- Files
- Lists
- Support

- File List
- File Members

Loading...
Searching...
No Matches
AAX_IACFEffectParameters.h
Go to the documentation of this file.
1/*================================================================================================*/
2/*
3 *
4 * Copyright 2013-2017, 2019, 2023 Avid Technology, Inc.
5 * All rights reserved.
6 *
7 * CONFIDENTIAL: this document contains confidential information of Avid. Do
8 * not disclose to any third party. Use of the information contained in this
9 * document is subject to an Avid SDK license.
10 *
11 */
12
19/*================================================================================================*/
20
21
22#ifndef AAX_IACFEFFECTPARAMETERS_H
23#define AAX_IACFEFFECTPARAMETERS_H
24
25#include "AAX.h"
26
27 class AAX_IString;
28 class AAX_IParameter;
29
30
31#ifdef __clang__
32#pragma clang diagnostic push
33#pragma clang diagnostic ignored "-Wnon-virtual-dtor"
34#endif
35
36#include "acfunknown.h"
37
53 class AAX_IACFEffectParameters : public IACFUnknown
54{
55 public:
56
68 virtual AAX_Result Initialize(IACFUnknown * iController) = 0;
75 virtual AAX_Result Uninitialize () = 0;
77
78
107 virtual AAX_Result NotificationReceived( /* AAX_ENotificationEvent */ AAX_CTypeID inNotificationType, const void * inNotificationData, uint32_t inNotificationDataSize) = 0;
109
110
129 virtual AAX_Result GetNumberOfParameters ( int32_t * oNumControls ) const = 0;
138 virtual AAX_Result GetMasterBypassParameter ( AAX_IString * oIDString ) const = 0;
148 virtual AAX_Result GetParameterIsAutomatable ( AAX_CParamID iParameterID, AAX_CBoolean * oAutomatable ) const = 0;
161 virtual AAX_Result GetParameterNumberOfSteps ( AAX_CParamID iParameterID, int32_t * oNumSteps ) const = 0;
172 virtual AAX_Result GetParameterName ( AAX_CParamID iParameterID, AAX_IString * oName ) const = 0;
194 virtual AAX_Result GetParameterNameOfLength ( AAX_CParamID iParameterID, AAX_IString * oName, int32_t iNameLength ) const = 0;
204 virtual AAX_Result GetParameterDefaultNormalizedValue ( AAX_CParamID iParameterID, double * oValue ) const = 0;
216 virtual AAX_Result SetParameterDefaultNormalizedValue ( AAX_CParamID iParameterID, double iValue ) = 0;
228 virtual AAX_Result GetParameterType ( AAX_CParamID iParameterID, AAX_EParameterType * oParameterType ) const = 0;
263 virtual AAX_Result GetParameterOrientation ( AAX_CParamID iParameterID, AAX_EParameterOrientation * oParameterOrientation ) const = 0;
279 virtual AAX_Result GetParameter ( AAX_CParamID iParameterID, AAX_IParameter ** oParameter ) = 0;
292 virtual AAX_Result GetParameterIndex ( AAX_CParamID iParameterID, int32_t * oControlIndex ) const = 0;
305 virtual AAX_Result GetParameterIDFromIndex ( int32_t iControlIndex, AAX_IString * oParameterIDString ) const = 0;
321 virtual AAX_Result GetParameterValueInfo ( AAX_CParamID iParameterID, int32_t iSelector, int32_t* oValue) const = 0;
323
324
325
351 virtual AAX_Result GetParameterValueFromString ( AAX_CParamID iParameterID, double * oValue, const AAX_IString & iValueString ) const = 0;
371 virtual AAX_Result GetParameterStringFromValue ( AAX_CParamID iParameterID, double iValue, AAX_IString * oValueString, int32_t iMaxLength ) const = 0;
386 virtual AAX_Result GetParameterValueString ( AAX_CParamID iParameterID, AAX_IString* oValueString, int32_t iMaxLength ) const = 0;
396 virtual AAX_Result GetParameterNormalizedValue ( AAX_CParamID iParameterID, double * oValuePtr ) const = 0;
411 virtual AAX_Result SetParameterNormalizedValue ( AAX_CParamID iParameterID, double iValue ) = 0;
441 virtual AAX_Result SetParameterNormalizedRelative ( AAX_CParamID iParameterID, double iValue ) = 0;
443
444
445
471 virtual AAX_Result TouchParameter ( AAX_CParamID iParameterID ) = 0;
485 virtual AAX_Result ReleaseParameter ( AAX_CParamID iParameterID ) = 0;
499 virtual AAX_Result UpdateParameterTouch ( AAX_CParamID iParameterID, AAX_CBoolean iTouchState ) = 0;
501
502
536 virtual AAX_Result UpdateParameterNormalizedValue ( AAX_CParamID iParameterID, double iValue, AAX_EUpdateSource iSource ) = 0;
559 virtual AAX_Result UpdateParameterNormalizedRelative ( AAX_CParamID iParameterID, double iValue ) = 0;
577 virtual AAX_Result GenerateCoefficients() = 0;
579
580
607 virtual AAX_Result ResetFieldData (AAX_CFieldIndex inFieldIndex, void * oData, uint32_t inDataSize) const = 0;
609
610
641 virtual AAX_Result GetNumberOfChunks ( int32_t * oNumChunks ) const = 0;
651 virtual AAX_Result GetChunkIDFromIndex ( int32_t iIndex, AAX_CTypeID * oChunkID ) const = 0;
672 virtual AAX_Result GetChunkSize ( AAX_CTypeID iChunkID, uint32_t * oSize ) const = 0;
696 virtual AAX_Result GetChunk ( AAX_CTypeID iChunkID, AAX_SPlugInChunk * oChunk ) const = 0;
710 virtual AAX_Result SetChunk ( AAX_CTypeID iChunkID, const AAX_SPlugInChunk * iChunk ) = 0;
729 virtual AAX_Result CompareActiveChunk ( const AAX_SPlugInChunk * iChunkP, AAX_CBoolean * oIsEqual ) const = 0;
747 virtual AAX_Result GetNumberOfChanges ( int32_t * oNumChanges ) const = 0;
749
766 virtual AAX_Result TimerWakeup( ) = 0;
768
813 virtual AAX_Result GetCurveData( /* AAX_ECurveType */ AAX_CTypeID iCurveType, const float * iValues, uint32_t iNumValues, float * oValues ) const = 0;
815
837 virtual AAX_Result GetCustomData( AAX_CTypeID iDataBlockID, uint32_t inDataSize, void* oData, uint32_t* oDataWritten) const = 0;
838
848 virtual AAX_Result SetCustomData( AAX_CTypeID iDataBlockID, uint32_t inDataSize, const void* iData ) = 0;
850
864 virtual AAX_Result DoMIDITransfers() = 0;
866};
867
874 struct AAX_SHybridRenderInfo
875{
876 float** mAudioInputs;
877 int32_t* mNumAudioInputs;
878 float** mAudioOutputs;
879 int32_t* mNumAudioOutputs;
880 int32_t* mNumSamples;
881 AAX_CTimestamp* mClock;
882};
883
898 class AAX_IACFEffectParameters_V2 : public AAX_IACFEffectParameters
899{
900 public:
901
914 virtual AAX_Result RenderAudio_Hybrid(AAX_SHybridRenderInfo* ioRenderInfo) = 0;
916
937 virtual AAX_Result UpdateMIDINodes ( AAX_CFieldIndex inFieldIndex, AAX_CMidiPacket& iPacket ) = 0;
939
956 virtual AAX_Result UpdateControlMIDINodes ( AAX_CTypeID nodeID, AAX_CMidiPacket& iPacket ) = 0;
958};
959
974 class AAX_IACFEffectParameters_V3 : public AAX_IACFEffectParameters_V2
975{
976 public:
977
999 virtual AAX_Result GetCurveDataMeterIds( /* AAX_ECurveType */ AAX_CTypeID iCurveType, uint32_t *oXMeterId, uint32_t *oYMeterId) const = 0;
1000
1021 virtual AAX_Result GetCurveDataDisplayRange( /* AAX_ECurveType */ AAX_CTypeID iCurveType, float *oXMin, float *oXMax, float *oYMin, float *oYMax ) const = 0;
1023};
1024
1039 class AAX_IACFEffectParameters_V4 : public AAX_IACFEffectParameters_V3
1040{
1041 public:
1042
1087 virtual AAX_Result UpdatePageTable(uint32_t inTableType, int32_t inTablePageSize, IACFUnknown* iHostUnknown, IACFUnknown* ioPageTableUnknown) const = 0;
1089};
1090
1091#ifdef __clang__
1092#pragma clang diagnostic pop
1093#endif
1094
1095#endif // AAX_IACFEFFECTPARAMETERS_H
AAX_EUpdateSource
AAX_EUpdateSource
Source for values passed into UpdateParameterNormalizedValue().
Definition: AAX_Enums.h:1049
AAX_EParameterType
AAX_EParameterType
FIC stuff that I can't include without DAE library dependence.
Definition: AAX_Enums.h:852
AAX_EParameterOrientation
int32_t AAX_EParameterOrientation
Typedef for a bitfield of AAX_EParameterOrientationBits values.
Definition: AAX_Enums.h:885
AAX.h
Various utility definitions for AAX.
AAX_CParamID
const char * AAX_CParamID
Parameter identifier.
Definition: AAX.h:349
AAX_Result
int32_t AAX_Result
Definition: AAX.h:334
AAX_CBoolean
uint8_t AAX_CBoolean
Cross-compiler boolean type used by AAX interfaces.
Definition: AAX.h:326
AAX_CTimestamp
int64_t AAX_CTimestamp
Time stamp value. Measured against the DAE clock (see AAX_IComponentDescriptor::AddClock() )
Definition: AAX.h:328
AAX_CTypeID
uint32_t AAX_CTypeID
Matches type of OSType used in classic plugins.
Definition: AAX.h:333
AAX_CFieldIndex
AAX_CIndex AAX_CFieldIndex
Not used by AAX plug-ins (except in AAX_FIELD_INDEX macro)
Definition: AAX.h:346
AAX_IACFEffectParameters_V2::RenderAudio_Hybrid
virtual AAX_Result RenderAudio_Hybrid(AAX_SHybridRenderInfo *ioRenderInfo)=0
Hybrid audio render function.
AAX_IACFEffectParameters_V3::GetCurveDataDisplayRange
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.
AAX_IACFEffectParameters::GetCurveData
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.
AAX_IACFEffectParameters_V3::GetCurveDataMeterIds
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.
IACFUnknown
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.doxygen:252
AAX_SPlugInChunk
Plug-in chunk header + data.
Definition: AAX.h:536
AAX_CMidiPacket
Packet structure for MIDI data.
Definition: AAX.h:636
AAX_IACFEffectParameters
The interface for an AAX Plug-in's data model.
Definition: AAX_IACFEffectParameters.h:54
AAX_IACFEffectParameters::GenerateCoefficients
virtual AAX_Result GenerateCoefficients()=0
Generates and dispatches new coefficient packets.
AAX_IACFEffectParameters::GetChunkIDFromIndex
virtual AAX_Result GetChunkIDFromIndex(int32_t iIndex, AAX_CTypeID *oChunkID) const =0
Retrieves the ID associated with a chunk index.
AAX_IACFEffectParameters::GetParameter
virtual AAX_Result GetParameter(AAX_CParamID iParameterID, AAX_IParameter **oParameter)=0
CALL: Retrieves an arbitrary setting within a parameter.
AAX_IACFEffectParameters::GetParameterValueInfo
virtual AAX_Result GetParameterValueInfo(AAX_CParamID iParameterID, int32_t iSelector, int32_t *oValue) const =0
CALL: Retrieves a property of a parameter.
AAX_IACFEffectParameters::GetNumberOfChanges
virtual AAX_Result GetNumberOfChanges(int32_t *oNumChanges) const =0
Retrieves the number of parameter changes made since the plug-in's creation.
AAX_IACFEffectParameters::GetParameterNormalizedValue
virtual AAX_Result GetParameterNormalizedValue(AAX_CParamID iParameterID, double *oValuePtr) const =0
CALL: Retrieves a parameter's current value.
AAX_IACFEffectParameters::CompareActiveChunk
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.
AAX_IACFEffectParameters::GetParameterNumberOfSteps
virtual AAX_Result GetParameterNumberOfSteps(AAX_CParamID iParameterID, int32_t *oNumSteps) const =0
CALL: Retrieves the number of discrete steps for a parameter.
AAX_IACFEffectParameters::ReleaseParameter
virtual AAX_Result ReleaseParameter(AAX_CParamID iParameterID)=0
Releases a parameter from a "touched" state.
AAX_IACFEffectParameters::SetChunk
virtual AAX_Result SetChunk(AAX_CTypeID iChunkID, const AAX_SPlugInChunk *iChunk)=0
Restores a set of plug-in parameters based on chunk information.
AAX_IACFEffectParameters::SetParameterDefaultNormalizedValue
virtual AAX_Result SetParameterDefaultNormalizedValue(AAX_CParamID iParameterID, double iValue)=0
CALL: Sets the default value of a parameter.
AAX_IACFEffectParameters::SetParameterNormalizedValue
virtual AAX_Result SetParameterNormalizedValue(AAX_CParamID iParameterID, double iValue)=0
CALL: Sets the specified parameter to a new value.
AAX_IACFEffectParameters::GetNumberOfChunks
virtual AAX_Result GetNumberOfChunks(int32_t *oNumChunks) const =0
Retrieves the number of chunks used by this plug-in.
AAX_IACFEffectParameters::GetCustomData
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.
AAX_IACFEffectParameters::GetParameterIsAutomatable
virtual AAX_Result GetParameterIsAutomatable(AAX_CParamID iParameterID, AAX_CBoolean *oAutomatable) const =0
CALL: Retrieves information about a parameter's automatable status.
AAX_IACFEffectParameters::GetParameterIDFromIndex
virtual AAX_Result GetParameterIDFromIndex(int32_t iControlIndex, AAX_IString *oParameterIDString) const =0
CALL: Retrieves the ID of a parameter.
AAX_IACFEffectParameters::UpdateParameterNormalizedRelative
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...
AAX_IACFEffectParameters::GetParameterValueFromString
virtual AAX_Result GetParameterValueFromString(AAX_CParamID iParameterID, double *oValue, const AAX_IString &iValueString) const =0
CALL: Converts a value string to a value.
AAX_IACFEffectParameters::GetParameterNameOfLength
virtual AAX_Result GetParameterNameOfLength(AAX_CParamID iParameterID, AAX_IString *oName, int32_t iNameLength) const =0
CALL: Retrieves an abbreviated name for a parameter.
AAX_IACFEffectParameters::UpdateParameterNormalizedValue
virtual AAX_Result UpdateParameterNormalizedValue(AAX_CParamID iParameterID, double iValue, AAX_EUpdateSource iSource)=0
Updates a single parameter's state to its current value.
AAX_IACFEffectParameters::SetParameterNormalizedRelative
virtual AAX_Result SetParameterNormalizedRelative(AAX_CParamID iParameterID, double iValue)=0
CALL: Sets the specified parameter to a new value relative to its current value.
AAX_IACFEffectParameters::ResetFieldData
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.
AAX_IACFEffectParameters::Uninitialize
virtual AAX_Result Uninitialize()=0
Main data model uninitialization.
AAX_IACFEffectParameters::GetParameterDefaultNormalizedValue
virtual AAX_Result GetParameterDefaultNormalizedValue(AAX_CParamID iParameterID, double *oValue) const =0
CALL: Retrieves default value of a parameter.
AAX_IACFEffectParameters::GetNumberOfParameters
virtual AAX_Result GetNumberOfParameters(int32_t *oNumControls) const =0
CALL: Retrieves the total number of plug-in parameters.
AAX_IACFEffectParameters::GetParameterName
virtual AAX_Result GetParameterName(AAX_CParamID iParameterID, AAX_IString *oName) const =0
CALL: Retrieves the full name for a parameter.
AAX_IACFEffectParameters::UpdateParameterTouch
virtual AAX_Result UpdateParameterTouch(AAX_CParamID iParameterID, AAX_CBoolean iTouchState)=0
Sets a "touched" state on a parameter.
AAX_IACFEffectParameters::NotificationReceived
virtual AAX_Result NotificationReceived(AAX_CTypeID inNotificationType, const void *inNotificationData, uint32_t inNotificationDataSize)=0
Notification Hook.
AAX_IACFEffectParameters::SetCustomData
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.
AAX_IACFEffectParameters::GetChunkSize
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.
AAX_IACFEffectParameters::GetParameterValueString
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.
AAX_IACFEffectParameters::TimerWakeup
virtual AAX_Result TimerWakeup()=0
Periodic wakeup callback for idle-time operations.
AAX_IACFEffectParameters::GetMasterBypassParameter
virtual AAX_Result GetMasterBypassParameter(AAX_IString *oIDString) const =0
CALL: Retrieves the ID of the plug-in's Master Bypass parameter.
AAX_IACFEffectParameters::GetChunk
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.
AAX_IACFEffectParameters::GetParameterOrientation
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.
AAX_IACFEffectParameters::Initialize
virtual AAX_Result Initialize(IACFUnknown *iController)=0
Main data model initialization. Called when plug-in instance is first instantiated.
AAX_IACFEffectParameters::GetParameterStringFromValue
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.
AAX_IACFEffectParameters::GetParameterType
virtual AAX_Result GetParameterType(AAX_CParamID iParameterID, AAX_EParameterType *oParameterType) const =0
CALL: Retrieves the type of a parameter.
AAX_IACFEffectParameters::TouchParameter
virtual AAX_Result TouchParameter(AAX_CParamID iParameterID)=0
"Touches" (locks) a parameter in the automation system to a particular control in preparation for upd...
AAX_IACFEffectParameters::DoMIDITransfers
virtual AAX_Result DoMIDITransfers()=0
MIDI update callback.
AAX_IACFEffectParameters::GetParameterIndex
virtual AAX_Result GetParameterIndex(AAX_CParamID iParameterID, int32_t *oControlIndex) const =0
CALL: Retrieves the index of a parameter.
AAX_SHybridRenderInfo
Hybrid render processing context.
Definition: AAX_IACFEffectParameters.h:875
AAX_SHybridRenderInfo::mAudioOutputs
float ** mAudioOutputs
Definition: AAX_IACFEffectParameters.h:878
AAX_SHybridRenderInfo::mNumAudioOutputs
int32_t * mNumAudioOutputs
Definition: AAX_IACFEffectParameters.h:879
AAX_SHybridRenderInfo::mNumSamples
int32_t * mNumSamples
Definition: AAX_IACFEffectParameters.h:880
AAX_SHybridRenderInfo::mNumAudioInputs
int32_t * mNumAudioInputs
Definition: AAX_IACFEffectParameters.h:877
AAX_SHybridRenderInfo::mAudioInputs
float ** mAudioInputs
Definition: AAX_IACFEffectParameters.h:876
AAX_SHybridRenderInfo::mClock
AAX_CTimestamp * mClock
Definition: AAX_IACFEffectParameters.h:881
AAX_IACFEffectParameters_V2
Supplemental interface for an AAX Plug-in's data model.
Definition: AAX_IACFEffectParameters.h:899
AAX_IACFEffectParameters_V2::UpdateMIDINodes
virtual AAX_Result UpdateMIDINodes(AAX_CFieldIndex inFieldIndex, AAX_CMidiPacket &iPacket)=0
MIDI update callback.
AAX_IACFEffectParameters_V2::UpdateControlMIDINodes
virtual AAX_Result UpdateControlMIDINodes(AAX_CTypeID nodeID, AAX_CMidiPacket &iPacket)=0
MIDI update callback for control MIDI nodes.
AAX_IACFEffectParameters_V3
Supplemental interface for an AAX Plug-in's data model.
Definition: AAX_IACFEffectParameters.h:975
AAX_IACFEffectParameters_V4
Supplemental interface for an AAX Plug-in's data model.
Definition: AAX_IACFEffectParameters.h:1040
AAX_IACFEffectParameters_V4::UpdatePageTable
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.
AAX_IParameter
The base interface for all normalizable plug-in parameters.
Definition: AAX_IParameter.h:137
AAX_IString
A simple string container that can be passed across a binary boundary. This class,...
Definition: AAX_IString.h:38