AAX SDK  2.1.1
Avid Audio Extensions Development Kit
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AAX_IACFEffectParameters.h
Go to the documentation of this file.
1 /*================================================================================================*/
2 /*
3  *
4  * Copyright 2013 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 Technolgy, INC.
13  *
14  */
15 
22 /*================================================================================================*/
23 
24 
25 #ifndef AAX_IACFEFFECTPARAMETERS_H
26 #define AAX_IACFEFFECTPARAMETERS_H
27 
28 #include "AAX.h"
30 #include "AAX_IString.h"
31 #include "AAX_IParameter.h"
32 #include "AAX_IController.h"
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 
102  virtual AAX_Result NotificationReceived( /* AAX_ENotificationEvent */ AAX_CTypeID iNotificationType, const void * iNotificationData, uint32_t iNotificationDataSize) = 0;
104 
105 
124  virtual AAX_Result GetNumberOfParameters ( int32_t * oNumControls ) const = 0;
133  virtual AAX_Result GetMasterBypassParameter ( AAX_IString * oIDString ) const = 0;
143  virtual AAX_Result GetParameterIsAutomatable ( AAX_CParamID iParameterID, AAX_CBoolean * oAutomatable ) const = 0;
156  virtual AAX_Result GetParameterNumberOfSteps ( AAX_CParamID iParameterID, int32_t * oNumSteps ) const = 0;
166  virtual AAX_Result GetParameterName ( AAX_CParamID iParameterID, AAX_IString * oName ) const = 0;
186  virtual AAX_Result GetParameterNameOfLength ( AAX_CParamID iParameterID, AAX_IString * oName, int32_t iNameLength ) const = 0;
196  virtual AAX_Result GetParameterDefaultNormalizedValue ( AAX_CParamID iParameterID, double * oValue ) const = 0;
208  virtual AAX_Result SetParameterDefaultNormalizedValue ( AAX_CParamID iParameterID, double iValue ) = 0;
220  virtual AAX_Result GetParameterType ( AAX_CParamID iParameterID, AAX_EParameterType * oParameterType ) const = 0;
255  virtual AAX_Result GetParameterOrientation ( AAX_CParamID iParameterID, AAX_EParameterOrientation * oParameterOrientation ) const = 0;
271  virtual AAX_Result GetParameter ( AAX_CParamID iParameterID, AAX_IParameter ** oParameter ) = 0;
284  virtual AAX_Result GetParameterIndex ( AAX_CParamID iParameterID, int32_t * oControlIndex ) const = 0;
296  virtual AAX_Result GetParameterIDFromIndex ( int32_t iControlIndex, AAX_IString * oParameterIDString ) const = 0;
312  virtual AAX_Result GetParameterValueInfo ( AAX_CParamID iParameterID, int32_t iSelector, int32_t* oValue) const = 0;
314 
315 
316 
342  virtual AAX_Result GetParameterValueFromString ( AAX_CParamID iParameterID, double * oValue, const AAX_IString & iValueString ) const = 0;
362  virtual AAX_Result GetParameterStringFromValue ( AAX_CParamID iParameterID, double iValue, AAX_IString * oValueString, int32_t iMaxLength ) const = 0;
377  virtual AAX_Result GetParameterValueString ( AAX_CParamID iParameterID, AAX_IString* oValueString, int32_t iMaxLength ) const = 0;
387  virtual AAX_Result GetParameterNormalizedValue ( AAX_CParamID iParameterID, double * oValuePtr ) const = 0;
402  virtual AAX_Result SetParameterNormalizedValue ( AAX_CParamID iParameterID, double iValue ) = 0;
432  virtual AAX_Result SetParameterNormalizedRelative ( AAX_CParamID iParameterID, double iValue ) = 0;
434 
435 
436 
465  virtual AAX_Result TouchParameter ( AAX_CParamID iParameterID ) = 0;
479  virtual AAX_Result ReleaseParameter ( AAX_CParamID iParameterID ) = 0;
493  virtual AAX_Result UpdateParameterTouch ( AAX_CParamID iParameterID, AAX_CBoolean iTouchState ) = 0;
495 
496 
530  virtual AAX_Result UpdateParameterNormalizedValue ( AAX_CParamID iParameterID, double iValue, AAX_EUpdateSource iSource ) = 0;
553  virtual AAX_Result UpdateParameterNormalizedRelative ( AAX_CParamID iParameterID, double iValue ) = 0;
570  virtual AAX_Result GenerateCoefficients() = 0;
572 
573 
595  virtual AAX_Result ResetFieldData (AAX_CFieldIndex iFieldIndex, void * oData, uint32_t iDataSize) const = 0;
597 
598 
623  virtual AAX_Result GetNumberOfChunks ( int32_t * oNumChunks ) const = 0;
633  virtual AAX_Result GetChunkIDFromIndex ( int32_t iIndex, AAX_CTypeID * oChunkID ) const = 0;
654  virtual AAX_Result GetChunkSize ( AAX_CTypeID iChunkID, uint32_t * oSize ) const = 0;
673  virtual AAX_Result GetChunk ( AAX_CTypeID iChunkID, AAX_SPlugInChunk * oChunk ) const = 0;
687  virtual AAX_Result SetChunk ( AAX_CTypeID iChunkID, const AAX_SPlugInChunk * iChunk ) = 0;
706  virtual AAX_Result CompareActiveChunk ( const AAX_SPlugInChunk * iChunkP, AAX_CBoolean * oIsEqual ) const = 0;
724  virtual AAX_Result GetNumberOfChanges ( int32_t * oNumChanges ) const = 0;
725 
726 
743  virtual AAX_Result TimerWakeup( ) = 0;
745 
775  virtual AAX_Result GetCurveData( /* AAX_ECurveType */ AAX_CTypeID iCurveType, const float * iValues, uint32_t iNumValues, float * oValues ) const = 0;
777 
799  virtual AAX_Result GetCustomData( AAX_CTypeID iDataBlockID, uint32_t iDataSize, void* oData, uint32_t* oDataWritten) const = 0;
800 
810  virtual AAX_Result SetCustomData( AAX_CTypeID iDataBlockID, uint32_t iDataSize, const void* iData ) = 0;
812 
826  virtual AAX_Result DoMIDITransfers() = 0;
828 };
829 
837 {
838  float** mAudioInputs;
839  int32_t* mNumAudioInputs;
840  float** mAudioOutputs;
842  int32_t* mNumSamples;
844 };
845 
861 {
862 public:
863 
876  virtual AAX_Result RenderAudio_Hybrid(AAX_SHybridRenderInfo* ioRenderInfo) = 0;
878 
900  virtual AAX_Result UpdateMIDINodes ( AAX_CFieldIndex iFieldIndex, AAX_CMidiPacket& iPacket ) = 0;
902 
916  virtual AAX_Result UpdateControlMIDINodes ( AAX_CTypeID nodeID, AAX_CMidiPacket& iPacket ) = 0;
918 };
919 
920 #ifdef __clang__
921 #pragma clang diagnostic pop
922 #endif
923 
924 #endif // AAX_IACFEFFECTPARAMETERS_H
Packet structure for MIDI data.
Definition: AAX.h:295
virtual AAX_Result GetParameter(AAX_CParamID iParameterID, AAX_IParameter **oParameter)=0
CALL: Retrieves an arbitrary setting within a parameter.
AAX_EParameterType
FIC stuff that I can't include without DAE library dependence.
Definition: AAX_Enums.h:487
Various utility definitions for AAX.
virtual AAX_Result GetNumberOfChanges(int32_t *oNumChanges) const =0
Retrieves the number of parameter changes made since the plug-in's creation.
int32_t * mNumAudioOutputs
Definition: AAX_IACFEffectParameters.h:841
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_EUpdateSource
Source for values passed into UpdateParameterNormalizedValue().
Definition: AAX_Enums.h:680
int32_t * mNumSamples
Definition: AAX_IACFEffectParameters.h:842
virtual AAX_Result UpdateMIDINodes(AAX_CFieldIndex iFieldIndex, AAX_CMidiPacket &iPacket)=0
MIDI update callback.
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 ResetFieldData(AAX_CFieldIndex iFieldIndex, void *oData, uint32_t iDataSize) const =0
Called by the host to reset a private data field in the plug-in's algorithm.
virtual AAX_Result UpdateControlMIDINodes(AAX_CTypeID nodeID, AAX_CMidiPacket &iPacket)=0
MIDI update callback for control MIDI nodes.
virtual AAX_Result GetMasterBypassParameter(AAX_IString *oIDString) const =0
CALL: Retrieves the ID of the plug-in's Master Bypass parameter.
virtual AAX_Result GetNumberOfChunks(int32_t *oNumChunks) const =0
Retrieves the number of chunks used by this plug-in.
int32_t AAX_EParameterOrientation
Typedef for a bitfield of AAX_EParameterOrientationBits values.
Definition: AAX_Enums.h:519
virtual AAX_Result UpdateParameterTouch(AAX_CParamID iParameterID, AAX_CBoolean iTouchState)=0
Sets a "touched" state on a parameter.
virtual AAX_Result GetChunkIDFromIndex(int32_t iIndex, AAX_CTypeID *oChunkID) const =0
Retrieves the ID associated with a chunk index.
float ** mAudioInputs
Definition: AAX_IACFEffectParameters.h:838
uint8_t AAX_CBoolean
Cross-compiler boolean type used by AAX interfaces.
Definition: AAX.h:110
Interface allowing an AAX plug-in to interact with the host's automation system.
int64_t AAX_CTimestamp
Time stamp value. Measured against the DAE clock (see AAX_IComponentDescriptor::AddClock() ) ...
Definition: AAX.h:112
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 SetParameterNormalizedValue(AAX_CParamID iParameterID, double iValue)=0
CALL: Sets the specified parameter to a new value.
Interface for the AAX host's view of a single instance of an effect.
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 Initialize(IACFUnknown *iController)=0
Main data model initialization. Called when plug-in instance is first instantiated.
uint32_t AAX_CTypeID
Matches type of OSType used in classic plugins.
Definition: AAX.h:117
virtual AAX_Result SetChunk(AAX_CTypeID iChunkID, const AAX_SPlugInChunk *iChunk)=0
Restores a set of plug-in parameters based on chunk information.
Hybrid render processing context.
Definition: AAX_IACFEffectParameters.h:836
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.dox:231
virtual AAX_Result GetParameterNormalizedValue(AAX_CParamID iParameterID, double *oValuePtr) const =0
CALL: Retrieves a parameter's current value.
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 GetParameterIndex(AAX_CParamID iParameterID, int32_t *oControlIndex) const =0
CALL: Retrieves the index of a parameter.
virtual AAX_Result GetParameterIDFromIndex(int32_t iControlIndex, AAX_IString *oParameterIDString) const =0
CALL: Retrieves the ID of a parameter.
An AAX string interface.
A simple string container that can be passed across a binary boundary. This class, for simplicity, is not versioned and thus can never change.
Definition: AAX_IString.h:40
virtual AAX_Result ReleaseParameter(AAX_CParamID iParameterID)=0
Releases a parameter from a "touched" state.
int32_t AAX_Result
Definition: AAX.h:118
virtual AAX_Result NotificationReceived(AAX_CTypeID iNotificationType, const void *iNotificationData, uint32_t iNotificationDataSize)=0
Notification Hook.
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 GetParameterDefaultNormalizedValue(AAX_CParamID iParameterID, double *oValue) const =0
CALL: Retrieves default value of a parameter.
virtual AAX_Result TimerWakeup()=0
Periodic wakeup callback for idle-time operations.
virtual AAX_Result GetParameterValueFromString(AAX_CParamID iParameterID, double *oValue, const AAX_IString &iValueString) const =0
CALL: Converts a value string to a value.
AAX_CTimestamp * mClock
Definition: AAX_IACFEffectParameters.h:843
int32_t * mNumAudioInputs
Definition: AAX_IACFEffectParameters.h:839
Supplemental interface for an AAX Plug-in's data model.
Definition: AAX_IACFEffectParameters.h:860
virtual AAX_Result GetCustomData(AAX_CTypeID iDataBlockID, uint32_t iDataSize, void *oData, uint32_t *oDataWritten) const =0
An optional interface hook for getting custom data from another module.
float ** mAudioOutputs
Definition: AAX_IACFEffectParameters.h:840
virtual AAX_Result GetParameterName(AAX_CParamID iParameterID, AAX_IString *oName) const =0
CALL: Retrieves the full name for a parameter.
virtual AAX_Result SetCustomData(AAX_CTypeID iDataBlockID, uint32_t iDataSize, const void *iData)=0
An optional interface hook for setting custom data for use by another module.
virtual AAX_Result DoMIDITransfers()=0
MIDI update callback.
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 GetParameterNameOfLength(AAX_CParamID iParameterID, AAX_IString *oName, int32_t iNameLength) const =0
CALL: Retrieves an abbreviated name for a parameter.
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 GetNumberOfParameters(int32_t *oNumControls) const =0
CALL: Retrieves the total number of plug-in parameters.
AAX_CIndex AAX_CFieldIndex
Not used by AAX plug-ins (except in AAX_FIELD_INDEX macro)
Definition: AAX.h:125
virtual AAX_Result GenerateCoefficients()=0
Generates and dispatches new coefficient packets.
virtual AAX_Result GetParameterValueInfo(AAX_CParamID iParameterID, int32_t iSelector, int32_t *oValue) const =0
CALL: Retrieves a property of a parameter.
Plug-in chunk header.
Definition: AAX.h:250
const char * AAX_CParamID
Parameter identifier.
Definition: AAX.h:128
The base interface for all normalizable plug-in parameters.
Definition: AAX_IParameter.h:52
The interface for an AAX Plug-in's data model.
Definition: AAX_IACFEffectParameters.h:56
virtual AAX_Result SetParameterDefaultNormalizedValue(AAX_CParamID iParameterID, double iValue)=0
CALL: Sets the default value of a parameter.
virtual AAX_Result GetParameterIsAutomatable(AAX_CParamID iParameterID, AAX_CBoolean *oAutomatable) const =0
CALL: Retrieves information about a parameter's automatable status.
The base interface for all normalizable plug-in parameters.
virtual AAX_Result GetParameterType(AAX_CParamID iParameterID, AAX_EParameterType *oParameterType) const =0
CALL: Retrieves the type of a parameter.
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 RenderAudio_Hybrid(AAX_SHybridRenderInfo *ioRenderInfo)=0
Hybrid audio render function.
virtual AAX_Result Uninitialize()=0
Main data model uninitialization.
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 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.