| 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_VController.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#ifndef AAX_VCONTROLLER_H
35#define AAX_VCONTROLLER_H
36
37#include "AAX_IController.h"
38#include "AAX_IACFController.h"
39
40#ifdef __clang__
41#pragma clang diagnostic push
42#pragma clang diagnostic ignored "-Wself-assign"
43#pragma clang diagnostic ignored "-Wnon-virtual-dtor"
44#endif
45
46#include "ACFPtr.h"
47
48#ifdef __clang__
49#pragma clang diagnostic pop
50#endif
51
52 class IACFUnknown;
53 class IACFComponentFactory;
54 class AAX_IACFPageTableController;
55 class AAX_IACFPageTableController_V2;
56 class AAX_IACFPageTable_V2;
57
65 class AAX_VController : public AAX_IController
66{
67 public:
68 AAX_VController( IACFUnknown* pUnknown );
69 ~AAX_VController() override;
70
71 //Host Information Getters
72 AAX_Result GetEffectID ( AAX_IString * outEffectID) const AAX_OVERRIDE;
73 AAX_Result GetSampleRate ( AAX_CSampleRate * outSampleRate ) const AAX_OVERRIDE;
74 AAX_Result GetInputStemFormat ( AAX_EStemFormat * outStemFormat ) const AAX_OVERRIDE;
75 AAX_Result GetOutputStemFormat ( AAX_EStemFormat * outStemFormat ) const AAX_OVERRIDE;
76 AAX_Result GetSignalLatency( int32_t* outSamples) const AAX_OVERRIDE;
77 AAX_Result GetHybridSignalLatency(int32_t* outSamples) const AAX_OVERRIDE;
78 AAX_Result GetPlugInTargetPlatform(AAX_CTargetPlatform* outTargetPlatform) const AAX_OVERRIDE;
79 AAX_Result GetIsAudioSuite(AAX_CBoolean* outIsAudioSuite) const AAX_OVERRIDE;
80 AAX_Result GetCycleCount( AAX_EProperty inWhichCycleCount, AAX_CPropertyValue* outNumCycles) const AAX_OVERRIDE;
81 AAX_Result GetTODLocation ( AAX_CTimeOfDay* outTODLocation ) const AAX_OVERRIDE;
82 AAX_Result GetCurrentAutomationTimestamp(AAX_CTransportCounter* outTimestamp) const AAX_OVERRIDE;
83 AAX_Result GetHostName(AAX_IString* outHostNameString) const AAX_OVERRIDE;
84
85 //Host Information Setters (Dynamic info)
86 AAX_Result SetSignalLatency(int32_t inNumSamples) AAX_OVERRIDE;
87 AAX_Result SetCycleCount( AAX_EProperty* inWhichCycleCounts, AAX_CPropertyValue* iValues, int32_t numValues) AAX_OVERRIDE;
88
89 //Posting functions.
90 AAX_Result PostPacket ( AAX_CFieldIndex inFieldIndex, const void * inPayloadP, uint32_t inPayloadSize ) AAX_OVERRIDE;
91
92 // Notification functions
93 AAX_Result SendNotification ( AAX_CTypeID inNotificationType, const void* inNotificationData, uint32_t inNotificationDataSize ) AAX_OVERRIDE;
94 AAX_Result SendNotification ( AAX_CTypeID inNotificationType) AAX_OVERRIDE;
95
96 //Metering functions
97 AAX_Result GetCurrentMeterValue ( AAX_CTypeID inMeterID, float * outMeterValue ) const AAX_OVERRIDE;
98 AAX_Result GetMeterPeakValue( AAX_CTypeID inMeterID, float * outMeterPeakValue ) const AAX_OVERRIDE;
99 AAX_Result ClearMeterPeakValue ( AAX_CTypeID inMeterID ) const AAX_OVERRIDE;
100 AAX_Result GetMeterClipped ( AAX_CTypeID inMeterID, AAX_CBoolean * outClipped ) const AAX_OVERRIDE;
101 AAX_Result ClearMeterClipped ( AAX_CTypeID inMeterID ) const AAX_OVERRIDE;
102 AAX_Result GetMeterCount ( uint32_t * outMeterCount ) const AAX_OVERRIDE;
103
104 //MIDI functions
105 AAX_Result GetNextMIDIPacket( AAX_CFieldIndex* outPort, AAX_CMidiPacket* outPacket ) AAX_OVERRIDE;
106
107 // PageTables functions
110 AAX_IPageTable*
111 CreateTableCopyForEffect(AAX_CPropertyValue inManufacturerID,
112 AAX_CPropertyValue inProductID,
113 AAX_CPropertyValue inPlugInID,
114 uint32_t inTableType,
115 int32_t inTablePageSize) const AAX_OVERRIDE;
118 AAX_IPageTable*
119 CreateTableCopyForLayout(const char * inEffectID,
120 const char * inLayoutName,
121 uint32_t inTableType,
122 int32_t inTablePageSize) const AAX_OVERRIDE;
125 AAX_IPageTable*
126 CreateTableCopyForEffectFromFile(const char* inPageTableFilePath,
127 AAX_ETextEncoding inFilePathEncoding,
128 AAX_CPropertyValue inManufacturerID,
129 AAX_CPropertyValue inProductID,
130 AAX_CPropertyValue inPlugInID,
131 uint32_t inTableType,
132 int32_t inTablePageSize) const AAX_OVERRIDE;
135 AAX_IPageTable*
136 CreateTableCopyForLayoutFromFile(const char* inPageTableFilePath,
137 AAX_ETextEncoding inFilePathEncoding,
138 const char* inLayoutName,
139 uint32_t inTableType,
140 int32_t inTablePageSize) const AAX_OVERRIDE;
141
142 private:
151 ACFPtr<AAX_IACFPageTable_V2> CreatePageTable() const;
153
154 private:
155 ACFPtr<AAX_IACFController> mIController;
156 ACFPtr<AAX_IACFController_V2> mIControllerV2;
157 ACFPtr<AAX_IACFController_V3> mIControllerV3;
158
159 // AAX_IACFPageTableController interface methods are aggregated into AAX_IController
160 ACFPtr<AAX_IACFPageTableController> mIPageTableController;
161 ACFPtr<AAX_IACFPageTableController_V2> mIPageTableControllerV2;
162
163 ACFPtr<IACFComponentFactory> mComponentFactory;
164};
165
166
167#endif // AAX_VCONTROLLER_H
168
AAX_ETextEncoding
AAX_ETextEncoding
Describes possible string encodings.
Definition: AAX_Enums.h:1377
AAX_EStemFormat
AAX_EStemFormat
Stem format definitions.
Definition: AAX_Enums.h:243
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_OVERRIDE
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:164
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
AAX_IACFController.h
Interface for the AAX host's view of a single instance of an effect. Used by both clients of the AAXH...
AAX_IController.h
Interface for the AAX host's view of a single instance of an effect.
IACFUnknown
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.doxygen:265
AAX_CMidiPacket
Packet structure for MIDI data.
Definition: AAX.h:649
AAX_IACFPageTable_V2
Versioned interface to the host's representation of a plug-in instance's page table.
Definition: AAX_IACFPageTable.h:60
AAX_IACFPageTableController
Interface for host operations related to the page tables for this plug-in.
Definition: AAX_IACFPageTableController.h:42
AAX_IACFPageTableController_V2
Interface for host operations related to the page tables for this plug-in.
Definition: AAX_IACFPageTableController.h:130
AAX_IController
Interface for the AAX host's view of a single instance of an effect. Used by both clients of the AAX ...
Definition: AAX_IController.h:55
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
AAX_VController
Version-managed concrete Controller class.
Definition: AAX_VController.h:66
AAX_VController::GetOutputStemFormat
AAX_Result GetOutputStemFormat(AAX_EStemFormat *outStemFormat) const AAX_OVERRIDE
CALL: Returns the plug-in's output stem format.
AAX_VController::~AAX_VController
~AAX_VController() override
AAX_VController::GetSampleRate
AAX_Result GetSampleRate(AAX_CSampleRate *outSampleRate) const AAX_OVERRIDE
CALL: Returns the current literal sample rate.
AAX_VController::GetHostName
AAX_Result GetHostName(AAX_IString *outHostNameString) const AAX_OVERRIDE
CALL: Returns name of the host application this plug-in instance is being loaded by....
AAX_VController::CreateTableCopyForLayout
AAX_IPageTable * CreateTableCopyForLayout(const char *inEffectID, const char *inLayoutName, uint32_t inTableType, int32_t inTablePageSize) const AAX_OVERRIDE
Copy the current page table data for a particular plug-in effect and page table layout.
AAX_VController::CreateTableCopyForEffect
AAX_IPageTable * CreateTableCopyForEffect(AAX_CPropertyValue inManufacturerID, AAX_CPropertyValue inProductID, AAX_CPropertyValue inPlugInID, uint32_t inTableType, int32_t inTablePageSize) const AAX_OVERRIDE
Copy the current page table data for a particular plug-in type.
AAX_VController::GetMeterClipped
AAX_Result GetMeterClipped(AAX_CTypeID inMeterID, AAX_CBoolean *outClipped) const AAX_OVERRIDE
CALL: Retrieves the clipped flag from a host-managed plug-in meter.
AAX_VController::PostPacket
AAX_Result PostPacket(AAX_CFieldIndex inFieldIndex, const void *inPayloadP, uint32_t inPayloadSize) AAX_OVERRIDE
CALL: Posts a data packet to the host for routing between plug-in components.
AAX_VController::GetIsAudioSuite
AAX_Result GetIsAudioSuite(AAX_CBoolean *outIsAudioSuite) const AAX_OVERRIDE
CALL: Returns true for AudioSuite instances.
AAX_VController::GetNextMIDIPacket
AAX_Result GetNextMIDIPacket(AAX_CFieldIndex *outPort, AAX_CMidiPacket *outPacket) AAX_OVERRIDE
CALL: Retrieves MIDI packets for described MIDI nodes.
AAX_VController::GetInputStemFormat
AAX_Result GetInputStemFormat(AAX_EStemFormat *outStemFormat) const AAX_OVERRIDE
CALL: Returns the plug-in's input stem format.
AAX_VController::CreateTableCopyForEffectFromFile
AAX_IPageTable * CreateTableCopyForEffectFromFile(const char *inPageTableFilePath, AAX_ETextEncoding inFilePathEncoding, AAX_CPropertyValue inManufacturerID, AAX_CPropertyValue inProductID, AAX_CPropertyValue inPlugInID, uint32_t inTableType, int32_t inTablePageSize) const AAX_OVERRIDE
Copy the current page table data for a particular plug-in type.
AAX_VController::SetSignalLatency
AAX_Result SetSignalLatency(int32_t inNumSamples) AAX_OVERRIDE
CALL: Submits a request to change the delay compensation value that the host uses to account for the ...
AAX_VController::ClearMeterPeakValue
AAX_Result ClearMeterPeakValue(AAX_CTypeID inMeterID) const AAX_OVERRIDE
CALL: Clears the peak value from a host-managed plug-in meter.
AAX_VController::CreateTableCopyForLayoutFromFile
AAX_IPageTable * CreateTableCopyForLayoutFromFile(const char *inPageTableFilePath, AAX_ETextEncoding inFilePathEncoding, const char *inLayoutName, uint32_t inTableType, int32_t inTablePageSize) const AAX_OVERRIDE
Copy the current page table data for a particular plug-in effect and page table layout.
AAX_VController::GetTODLocation
AAX_Result GetTODLocation(AAX_CTimeOfDay *outTODLocation) const AAX_OVERRIDE
CALL: Returns the current Time Of Day (TOD) of the system.
AAX_VController::GetCycleCount
AAX_Result GetCycleCount(AAX_EProperty inWhichCycleCount, AAX_CPropertyValue *outNumCycles) const AAX_OVERRIDE
CALL: returns the plug-in's current real-time DSP cycle count.
AAX_VController::SetCycleCount
AAX_Result SetCycleCount(AAX_EProperty *inWhichCycleCounts, AAX_CPropertyValue *iValues, int32_t numValues) AAX_OVERRIDE
CALL: Indicates a change in the plug-in's real-time DSP cycle count.
AAX_VController::GetMeterPeakValue
AAX_Result GetMeterPeakValue(AAX_CTypeID inMeterID, float *outMeterPeakValue) const AAX_OVERRIDE
CALL: Retrieves the currently held peak value of a host-managed plug-in meter.
AAX_VController::GetSignalLatency
AAX_Result GetSignalLatency(int32_t *outSamples) const AAX_OVERRIDE
CALL: Returns the most recent signal (algorithmic) latency that has been published by the plug-in.
AAX_VController::GetPlugInTargetPlatform
AAX_Result GetPlugInTargetPlatform(AAX_CTargetPlatform *outTargetPlatform) const AAX_OVERRIDE
CALL: Returns execution platform type, native or TI.
AAX_VController::GetHybridSignalLatency
AAX_Result GetHybridSignalLatency(int32_t *outSamples) const AAX_OVERRIDE
CALL: Returns the latency between the algorithm normal input samples and the inputs returning from th...
AAX_VController::GetMeterCount
AAX_Result GetMeterCount(uint32_t *outMeterCount) const AAX_OVERRIDE
CALL: Retrieves the number of host-managed meters registered by a plug-in.
AAX_VController::GetCurrentMeterValue
AAX_Result GetCurrentMeterValue(AAX_CTypeID inMeterID, float *outMeterValue) const AAX_OVERRIDE
CALL: Retrieves the current value of a host-managed plug-in meter.
AAX_VController::SendNotification
AAX_Result SendNotification(AAX_CTypeID inNotificationType) AAX_OVERRIDE
CALL: Sends an event to the GUI (no payload) Not an AAX interface method
AAX_VController::ClearMeterClipped
AAX_Result ClearMeterClipped(AAX_CTypeID inMeterID) const AAX_OVERRIDE
CALL: Clears the clipped flag from a host-managed plug-in meter.
AAX_VController::GetEffectID
AAX_Result GetEffectID(AAX_IString *outEffectID) const AAX_OVERRIDE
AAX_VController::AAX_VController
AAX_VController(IACFUnknown *pUnknown)
AAX_VController::SendNotification
AAX_Result SendNotification(AAX_CTypeID inNotificationType, const void *inNotificationData, uint32_t inNotificationDataSize) AAX_OVERRIDE
CALL: Dispatch a notification.
AAX_VController::GetCurrentAutomationTimestamp
AAX_Result GetCurrentAutomationTimestamp(AAX_CTransportCounter *outTimestamp) const AAX_OVERRIDE
CALL: Returns the current automation timestamp if called during the GenerateCoefficients() call AND t...