| AAX SDK 2.8.0 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-2024 Avid Technology, Inc.
5 * All rights reserved.
6 *
7 * This file is part of the Avid AAX SDK.
8 *
9 * The AAX SDK is subject to commercial or open-source licensing.
10 *
11 * By using the AAX SDK, you agree to the terms of both the Avid AAX SDK License
12 * Agreement and Avid Privacy Policy.
13 *
14 * AAX SDK License: https://developer.avid.com/aax
15 * Privacy Policy: https://www.avid.com/legal/privacy-policy-statement
16 *
17 * Or: You may also use this code under the terms of the GPL v3 (see
18 * www.gnu.org/licenses).
19 *
20 * THE AAX SDK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
21 * EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
22 * DISCLAIMED.
23 *
24 */
25
32/*================================================================================================*/
33
34
35#ifndef AAX_IACFEFFECTPARAMETERS_H
36#define AAX_IACFEFFECTPARAMETERS_H
37
38#include "AAX.h"
39
40 class AAX_IString;
41 class AAX_IParameter;
42
43
44#ifdef __clang__
45#pragma clang diagnostic push
46#pragma clang diagnostic ignored "-Wnon-virtual-dtor"
47#endif
48
49#include "acfunknown.h"
50
66 class AAX_IACFEffectParameters : public IACFUnknown
67{
68 public:
69
81 virtual AAX_Result Initialize(IACFUnknown * iController) = 0;
88 virtual AAX_Result Uninitialize () = 0;
90
91
120 virtual AAX_Result NotificationReceived( /* AAX_ENotificationEvent */ AAX_CTypeID inNotificationType, const void * inNotificationData, uint32_t inNotificationDataSize) = 0;
122
123
142 virtual AAX_Result GetNumberOfParameters ( int32_t * oNumControls ) const = 0;
151 virtual AAX_Result GetMasterBypassParameter ( AAX_IString * oIDString ) const = 0;
161 virtual AAX_Result GetParameterIsAutomatable ( AAX_CParamID iParameterID, AAX_CBoolean * oAutomatable ) const = 0;
174 virtual AAX_Result GetParameterNumberOfSteps ( AAX_CParamID iParameterID, int32_t * oNumSteps ) const = 0;
185 virtual AAX_Result GetParameterName ( AAX_CParamID iParameterID, AAX_IString * oName ) const = 0;
207 virtual AAX_Result GetParameterNameOfLength ( AAX_CParamID iParameterID, AAX_IString * oName, int32_t iNameLength ) const = 0;
217 virtual AAX_Result GetParameterDefaultNormalizedValue ( AAX_CParamID iParameterID, double * oValue ) const = 0;
229 virtual AAX_Result SetParameterDefaultNormalizedValue ( AAX_CParamID iParameterID, double iValue ) = 0;
241 virtual AAX_Result GetParameterType ( AAX_CParamID iParameterID, AAX_EParameterType * oParameterType ) const = 0;
276 virtual AAX_Result GetParameterOrientation ( AAX_CParamID iParameterID, AAX_EParameterOrientation * oParameterOrientation ) const = 0;
292 virtual AAX_Result GetParameter ( AAX_CParamID iParameterID, AAX_IParameter ** oParameter ) = 0;
305 virtual AAX_Result GetParameterIndex ( AAX_CParamID iParameterID, int32_t * oControlIndex ) const = 0;
318 virtual AAX_Result GetParameterIDFromIndex ( int32_t iControlIndex, AAX_IString * oParameterIDString ) const = 0;
334 virtual AAX_Result GetParameterValueInfo ( AAX_CParamID iParameterID, int32_t iSelector, int32_t* oValue) const = 0;
336
337
338
364 virtual AAX_Result GetParameterValueFromString ( AAX_CParamID iParameterID, double * oValue, const AAX_IString & iValueString ) const = 0;
384 virtual AAX_Result GetParameterStringFromValue ( AAX_CParamID iParameterID, double iValue, AAX_IString * oValueString, int32_t iMaxLength ) const = 0;
399 virtual AAX_Result GetParameterValueString ( AAX_CParamID iParameterID, AAX_IString* oValueString, int32_t iMaxLength ) const = 0;
409 virtual AAX_Result GetParameterNormalizedValue ( AAX_CParamID iParameterID, double * oValuePtr ) const = 0;
424 virtual AAX_Result SetParameterNormalizedValue ( AAX_CParamID iParameterID, double iValue ) = 0;
454 virtual AAX_Result SetParameterNormalizedRelative ( AAX_CParamID iParameterID, double iValue ) = 0;
456
457
458
484 virtual AAX_Result TouchParameter ( AAX_CParamID iParameterID ) = 0;
498 virtual AAX_Result ReleaseParameter ( AAX_CParamID iParameterID ) = 0;
512 virtual AAX_Result UpdateParameterTouch ( AAX_CParamID iParameterID, AAX_CBoolean iTouchState ) = 0;
514
515
549 virtual AAX_Result UpdateParameterNormalizedValue ( AAX_CParamID iParameterID, double iValue, AAX_EUpdateSource iSource ) = 0;
572 virtual AAX_Result UpdateParameterNormalizedRelative ( AAX_CParamID iParameterID, double iValue ) = 0;
590 virtual AAX_Result GenerateCoefficients() = 0;
592
593
620 virtual AAX_Result ResetFieldData (AAX_CFieldIndex inFieldIndex, void * oData, uint32_t inDataSize) const = 0;
622
623
654 virtual AAX_Result GetNumberOfChunks ( int32_t * oNumChunks ) const = 0;
664 virtual AAX_Result GetChunkIDFromIndex ( int32_t iIndex, AAX_CTypeID * oChunkID ) const = 0;
685 virtual AAX_Result GetChunkSize ( AAX_CTypeID iChunkID, uint32_t * oSize ) const = 0;
709 virtual AAX_Result GetChunk ( AAX_CTypeID iChunkID, AAX_SPlugInChunk * oChunk ) const = 0;
723 virtual AAX_Result SetChunk ( AAX_CTypeID iChunkID, const AAX_SPlugInChunk * iChunk ) = 0;
742 virtual AAX_Result CompareActiveChunk ( const AAX_SPlugInChunk * iChunkP, AAX_CBoolean * oIsEqual ) const = 0;
760 virtual AAX_Result GetNumberOfChanges ( int32_t * oNumChanges ) const = 0;
762
779 virtual AAX_Result TimerWakeup( ) = 0;
781
826 virtual AAX_Result GetCurveData( /* AAX_ECurveType */ AAX_CTypeID iCurveType, const float * iValues, uint32_t iNumValues, float * oValues ) const = 0;
828
850 virtual AAX_Result GetCustomData( AAX_CTypeID iDataBlockID, uint32_t inDataSize, void* oData, uint32_t* oDataWritten) const = 0;
851
861 virtual AAX_Result SetCustomData( AAX_CTypeID iDataBlockID, uint32_t inDataSize, const void* iData ) = 0;
863
877 virtual AAX_Result DoMIDITransfers() = 0;
879};
880
887 struct AAX_SHybridRenderInfo
888{
889 float** mAudioInputs;
890 int32_t* mNumAudioInputs;
891 float** mAudioOutputs;
892 int32_t* mNumAudioOutputs;
893 int32_t* mNumSamples;
894 AAX_CTimestamp* mClock;
895};
896
911 class AAX_IACFEffectParameters_V2 : public AAX_IACFEffectParameters
912{
913 public:
914
927 virtual AAX_Result RenderAudio_Hybrid(AAX_SHybridRenderInfo* ioRenderInfo) = 0;
929
950 virtual AAX_Result UpdateMIDINodes ( AAX_CFieldIndex inFieldIndex, AAX_CMidiPacket& iPacket ) = 0;
952
969 virtual AAX_Result UpdateControlMIDINodes ( AAX_CTypeID nodeID, AAX_CMidiPacket& iPacket ) = 0;
971};
972
987 class AAX_IACFEffectParameters_V3 : public AAX_IACFEffectParameters_V2
988{
989 public:
990
1012 virtual AAX_Result GetCurveDataMeterIds( /* AAX_ECurveType */ AAX_CTypeID iCurveType, uint32_t *oXMeterId, uint32_t *oYMeterId) const = 0;
1013
1034 virtual AAX_Result GetCurveDataDisplayRange( /* AAX_ECurveType */ AAX_CTypeID iCurveType, float *oXMin, float *oXMax, float *oYMin, float *oYMax ) const = 0;
1036};
1037
1052 class AAX_IACFEffectParameters_V4 : public AAX_IACFEffectParameters_V3
1053{
1054 public:
1055
1100 virtual AAX_Result UpdatePageTable(uint32_t inTableType, int32_t inTablePageSize, IACFUnknown* iHostUnknown, IACFUnknown* ioPageTableUnknown) const = 0;
1102};
1103
1104#ifdef __clang__
1105#pragma clang diagnostic pop
1106#endif
1107
1108#endif // AAX_IACFEFFECTPARAMETERS_H
AAX_EUpdateSource
AAX_EUpdateSource
Source for values passed into UpdateParameterNormalizedValue().
Definition: AAX_Enums.h:1095
AAX_EParameterType
AAX_EParameterType
FIC stuff that I can't include without DAE library dependence.
Definition: AAX_Enums.h:898
AAX_EParameterOrientation
int32_t AAX_EParameterOrientation
Typedef for a bitfield of AAX_EParameterOrientationBits values.
Definition: AAX_Enums.h:931
AAX.h
Various utility definitions for AAX.
AAX_CParamID
const char * AAX_CParamID
Parameter identifier.
Definition: AAX.h:362
AAX_Result
int32_t AAX_Result
Definition: AAX.h:347
AAX_CBoolean
uint8_t AAX_CBoolean
Cross-compiler boolean type used by AAX interfaces.
Definition: AAX.h:339
AAX_CTimestamp
int64_t AAX_CTimestamp
Time stamp value. Measured against the DAE clock (see AAX_IComponentDescriptor::AddClock() )
Definition: AAX.h:341
AAX_CTypeID
uint32_t AAX_CTypeID
Matches type of OSType used in classic plugins.
Definition: AAX.h:346
AAX_CFieldIndex
AAX_CIndex AAX_CFieldIndex
Not used by AAX plug-ins (except in AAX_FIELD_INDEX macro)
Definition: AAX.h:359
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.
AAX_IACFEffectParameters_V2::RenderAudio_Hybrid
virtual AAX_Result RenderAudio_Hybrid(AAX_SHybridRenderInfo *ioRenderInfo)=0
Hybrid audio render function.
IACFUnknown
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.doxygen:265
AAX_SPlugInChunk
Plug-in chunk header + data.
Definition: AAX.h:549
AAX_CMidiPacket
Packet structure for MIDI data.
Definition: AAX.h:649
AAX_IACFEffectParameters
The interface for an AAX Plug-in's data model.
Definition: AAX_IACFEffectParameters.h:67
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:888
AAX_SHybridRenderInfo::mAudioOutputs
float ** mAudioOutputs
Definition: AAX_IACFEffectParameters.h:891
AAX_SHybridRenderInfo::mNumAudioOutputs
int32_t * mNumAudioOutputs
Definition: AAX_IACFEffectParameters.h:892
AAX_SHybridRenderInfo::mNumSamples
int32_t * mNumSamples
Definition: AAX_IACFEffectParameters.h:893
AAX_SHybridRenderInfo::mNumAudioInputs
int32_t * mNumAudioInputs
Definition: AAX_IACFEffectParameters.h:890
AAX_SHybridRenderInfo::mAudioInputs
float ** mAudioInputs
Definition: AAX_IACFEffectParameters.h:889
AAX_SHybridRenderInfo::mClock
AAX_CTimestamp * mClock
Definition: AAX_IACFEffectParameters.h:894
AAX_IACFEffectParameters_V2
Supplemental interface for an AAX Plug-in's data model.
Definition: AAX_IACFEffectParameters.h:912
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:988
AAX_IACFEffectParameters_V4
Supplemental interface for an AAX Plug-in's data model.
Definition: AAX_IACFEffectParameters.h:1053
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:150
AAX_IString
A simple string container that can be passed across a binary boundary. This class,...
Definition: AAX_IString.h:51