| 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_IACFController.h
Go to the documentation of this file.
1/*================================================================================================*/
2/*
3 *
4 * Copyright 2013-2017, 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
33/*================================================================================================*/
34
35
36#ifndef _AAX_IACFCONTROLLER_H_
37#define _AAX_IACFCONTROLLER_H_
38
39#include "AAX.h"
40
41#ifdef __clang__
42#pragma clang diagnostic push
43#pragma clang diagnostic ignored "-Wnon-virtual-dtor"
44#endif
45
46#include "acfunknown.h"
47
48// Forward declarations
49 class AAX_IPageTable;
50 class AAX_IString;
51
55 class AAX_IACFController : public IACFUnknown
56{
57 public:
58
59 // Host information getters
61 virtual
62 AAX_Result
63 GetEffectID (
64 AAX_IString * outEffectID) const = 0;
65
67 virtual
68 AAX_Result
69 GetSampleRate (
70 AAX_CSampleRate *outSampleRate ) const = 0;
71
73 virtual
74 AAX_Result
75 GetInputStemFormat (
76 AAX_EStemFormat *outStemFormat ) const = 0;
77
79 virtual
80 AAX_Result
81 GetOutputStemFormat (
82 AAX_EStemFormat *outStemFormat) const = 0;
83
85 virtual
86 AAX_Result
87 GetSignalLatency(
88 int32_t* outSamples) const = 0;
89
91 virtual
92 AAX_Result
93 GetCycleCount(
94 AAX_EProperty inWhichCycleCount,
95 AAX_CPropertyValue* outNumCycles) const = 0;
96
98 virtual
99 AAX_Result
100 GetTODLocation (
101 AAX_CTimeOfDay* outTODLocation ) const = 0;
102
103 //Host Information Setters (Dynamic info)
105 virtual
106 AAX_Result
107 SetSignalLatency(
108 int32_t inNumSamples) = 0;
109
111 virtual
112 AAX_Result
113 SetCycleCount(
114 AAX_EProperty* inWhichCycleCounts,
115 AAX_CPropertyValue* iValues,
116 int32_t numValues) = 0;
117
118 // Posting functions
120 virtual
121 AAX_Result
122 PostPacket (
123 AAX_CFieldIndex inFieldIndex,
124 const void * inPayloadP,
125 uint32_t inPayloadSize) = 0;
126
127 //Metering functions
129 virtual
130 AAX_Result
131 GetCurrentMeterValue (
132 AAX_CTypeID inMeterID,
133 float * outMeterValue ) const = 0;
134
136 virtual
137 AAX_Result
138 GetMeterPeakValue (
139 AAX_CTypeID inMeterID,
140 float * outMeterPeakValue ) const = 0;
141
143 virtual
144 AAX_Result
145 ClearMeterPeakValue (
146 AAX_CTypeID inMeterID ) const = 0;
147
149 virtual
150 AAX_Result
151 GetMeterClipped (
152 AAX_CTypeID inMeterID,
153 AAX_CBoolean * outClipped ) const = 0;
154
156 virtual
157 AAX_Result
158 ClearMeterClipped (
159 AAX_CTypeID inMeterID ) const = 0;
160
162 virtual
163 AAX_Result
164 GetMeterCount (
165 uint32_t * outMeterCount ) const = 0;
166
167 // MIDI methods
169 virtual
170 AAX_Result
171 GetNextMIDIPacket (
172 AAX_CFieldIndex* outPort,
173 AAX_CMidiPacket* outPacket ) = 0;
174
175 };
176
179 class AAX_IACFController_V2 : public AAX_IACFController
180{
181 public:
182 // Notification method
184 virtual
185 AAX_Result
186 SendNotification (
187 AAX_CTypeID inNotificationType,
188 const void* inNotificationData,
189 uint32_t inNotificationDataSize) = 0;
190
192 virtual
193 AAX_Result
194 GetHybridSignalLatency(
195 int32_t* outSamples) const = 0;
196
198 virtual
199 AAX_Result
200 GetCurrentAutomationTimestamp(
201 AAX_CTransportCounter* outTimestamp) const = 0;
202
204 virtual
205 AAX_Result
206 GetHostName(
207 AAX_IString* outHostNameString) const = 0;
208};
209
212 class AAX_IACFController_V3 : public AAX_IACFController_V2
213{
214 public:
216 virtual
217 AAX_Result
218 GetPlugInTargetPlatform(
219 AAX_CTargetPlatform* outTargetPlatform) const = 0;
220
222 virtual
223 AAX_Result
224 GetIsAudioSuite(AAX_CBoolean* outIsAudioSuite) const = 0;
225};
226
227#ifdef __clang__
228#pragma clang diagnostic pop
229#endif
230
231#endif // #ifndef _AAX_IACFCONTROLLER_H_
AAX_EStemFormat
AAX_EStemFormat
Stem format definitions.
Definition: AAX_Enums.h:243
AAX.h
Various utility definitions for AAX.
AAX_CSampleRate
float AAX_CSampleRate
Literal sample rate value used by the sample rate field. For AAX_eProperty_SampleRate,...
Definition: AAX.h:344
AAX_CTimeOfDay
int64_t AAX_CTimeOfDay
Hardware running clock value. MIDI packet time stamps are measured against this clock....
Definition: AAX.h:342
AAX_Result
int32_t AAX_Result
Definition: AAX.h:347
AAX_CTargetPlatform
int32_t AAX_CTargetPlatform
Matches type of target platform.
Definition: AAX.h:357
AAX_CBoolean
uint8_t AAX_CBoolean
Cross-compiler boolean type used by AAX interfaces.
Definition: AAX.h:339
AAX_CPropertyValue
int32_t AAX_CPropertyValue
32-bit property values
Definition: AAX.h:348
AAX_CTransportCounter
int64_t AAX_CTransportCounter
Offset of samples from transport start. Same as TimeOfDay, but added for new interfaces as TimeOfDay ...
Definition: AAX.h:343
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_EProperty
AAX_EProperty
The list of properties that can be added to an AAX_IPropertyMap.
Definition: AAX_Properties.h:82
IACFUnknown
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.doxygen:265
AAX_CMidiPacket
Packet structure for MIDI data.
Definition: AAX.h:649
AAX_IACFController
Interface for the AAX host's view of a single instance of an effect. Used by both clients of the AAXH...
Definition: AAX_IACFController.h:56
AAX_IACFController::GetCurrentMeterValue
virtual AAX_Result GetCurrentMeterValue(AAX_CTypeID inMeterID, float *outMeterValue) const =0
CALL: Retrieves the current value of a host-managed plug-in meter.
AAX_IACFController::GetCycleCount
virtual AAX_Result GetCycleCount(AAX_EProperty inWhichCycleCount, AAX_CPropertyValue *outNumCycles) const =0
CALL: returns the plug-in's current real-time DSP cycle count.
AAX_IACFController::GetSampleRate
virtual AAX_Result GetSampleRate(AAX_CSampleRate *outSampleRate) const =0
CALL: Returns the current literal sample rate.
AAX_IACFController::SetCycleCount
virtual AAX_Result SetCycleCount(AAX_EProperty *inWhichCycleCounts, AAX_CPropertyValue *iValues, int32_t numValues)=0
CALL: Indicates a change in the plug-in's real-time DSP cycle count.
AAX_IACFController::PostPacket
virtual AAX_Result PostPacket(AAX_CFieldIndex inFieldIndex, const void *inPayloadP, uint32_t inPayloadSize)=0
CALL: Posts a data packet to the host for routing between plug-in components.
AAX_IACFController::GetMeterClipped
virtual AAX_Result GetMeterClipped(AAX_CTypeID inMeterID, AAX_CBoolean *outClipped) const =0
CALL: Retrieves the clipped flag from a host-managed plug-in meter.
AAX_IACFController::GetNextMIDIPacket
virtual AAX_Result GetNextMIDIPacket(AAX_CFieldIndex *outPort, AAX_CMidiPacket *outPacket)=0
CALL: Retrieves MIDI packets for described MIDI nodes.
AAX_IACFController::GetOutputStemFormat
virtual AAX_Result GetOutputStemFormat(AAX_EStemFormat *outStemFormat) const =0
CALL: Returns the plug-in's output stem format.
AAX_IACFController::ClearMeterClipped
virtual AAX_Result ClearMeterClipped(AAX_CTypeID inMeterID) const =0
CALL: Clears the clipped flag from a host-managed plug-in meter.
AAX_IACFController::GetMeterCount
virtual AAX_Result GetMeterCount(uint32_t *outMeterCount) const =0
CALL: Retrieves the number of host-managed meters registered by a plug-in.
AAX_IACFController::GetEffectID
virtual AAX_Result GetEffectID(AAX_IString *outEffectID) const =0
AAX_IACFController::ClearMeterPeakValue
virtual AAX_Result ClearMeterPeakValue(AAX_CTypeID inMeterID) const =0
CALL: Clears the peak value from a host-managed plug-in meter.
AAX_IACFController::GetInputStemFormat
virtual AAX_Result GetInputStemFormat(AAX_EStemFormat *outStemFormat) const =0
CALL: Returns the plug-in's input stem format.
AAX_IACFController::GetSignalLatency
virtual AAX_Result GetSignalLatency(int32_t *outSamples) const =0
CALL: Returns the most recent signal (algorithmic) latency that has been published by the plug-in.
AAX_IACFController::GetMeterPeakValue
virtual AAX_Result GetMeterPeakValue(AAX_CTypeID inMeterID, float *outMeterPeakValue) const =0
CALL: Retrieves the currently held peak value of a host-managed plug-in meter.
AAX_IACFController::SetSignalLatency
virtual AAX_Result SetSignalLatency(int32_t inNumSamples)=0
CALL: Submits a request to change the delay compensation value that the host uses to account for the ...
AAX_IACFController::GetTODLocation
virtual AAX_Result GetTODLocation(AAX_CTimeOfDay *outTODLocation) const =0
CALL: Returns the current Time Of Day (TOD) of the system.
AAX_IACFController_V2
Interface for the AAX host's view of a single instance of an effect. Used by both clients of the AAXH...
Definition: AAX_IACFController.h:180
AAX_IACFController_V2::GetCurrentAutomationTimestamp
virtual AAX_Result GetCurrentAutomationTimestamp(AAX_CTransportCounter *outTimestamp) const =0
CALL: Returns the current automation timestamp if called during the GenerateCoefficients() call AND t...
AAX_IACFController_V2::SendNotification
virtual AAX_Result SendNotification(AAX_CTypeID inNotificationType, const void *inNotificationData, uint32_t inNotificationDataSize)=0
CALL: Dispatch a notification.
AAX_IACFController_V2::GetHostName
virtual AAX_Result GetHostName(AAX_IString *outHostNameString) const =0
CALL: Returns name of the host application this plug-in instance is being loaded by....
AAX_IACFController_V2::GetHybridSignalLatency
virtual AAX_Result GetHybridSignalLatency(int32_t *outSamples) const =0
CALL: Returns the latency between the algorithm normal input samples and the inputs returning from th...
AAX_IACFController_V3
Interface for the AAX host's view of a single instance of an effect. Used by both clients of the AAXH...
Definition: AAX_IACFController.h:213
AAX_IACFController_V3::GetIsAudioSuite
virtual AAX_Result GetIsAudioSuite(AAX_CBoolean *outIsAudioSuite) const =0
CALL: Returns true for AudioSuite instances.
AAX_IACFController_V3::GetPlugInTargetPlatform
virtual AAX_Result GetPlugInTargetPlatform(AAX_CTargetPlatform *outTargetPlatform) const =0
CALL: Returns execution platform type, native or TI.
AAX_IPageTable
Interface to the host's representation of a plug-in instance's page table.
Definition: AAX_IPageTable.h:38
AAX_IString
A simple string container that can be passed across a binary boundary. This class,...
Definition: AAX_IString.h:51