| 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_VComponentDescriptor.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_VCOMPONENTDESCRIPTOR_H
35#define AAX_VCOMPONENTDESCRIPTOR_H
36
37// AAX Includes
38#include "AAX_IComponentDescriptor.h"
39#include "AAX_IDma.h"
40#include "AAX_IACFComponentDescriptor.h"
41
42// ACF Includes
43#include "acfunknown.h"
44#include "ACFPtr.h"
45
46// Standard Includes
47#include <set>
48
49
50 class AAX_IPropertyMap;
51 class AAX_IACFComponentDescriptor;
52 class AAX_IACFComponentDescriptorV2;
53 class IACFUnknown;
54
59 class AAX_VComponentDescriptor : public AAX_IComponentDescriptor
60{
61 public:
62 AAX_VComponentDescriptor ( IACFUnknown * pUnkHost );
63 ~AAX_VComponentDescriptor () AAX_OVERRIDE;
64
65 AAX_Result Clear () AAX_OVERRIDE;
66 AAX_Result AddReservedField ( AAX_CFieldIndex inFieldIndex, uint32_t inFieldType ) AAX_OVERRIDE;
67 AAX_Result AddAudioIn ( AAX_CFieldIndex inFieldIndex ) AAX_OVERRIDE;
68 AAX_Result AddAudioOut ( AAX_CFieldIndex inFieldIndex ) AAX_OVERRIDE;
69 AAX_Result AddAudioBufferLength ( AAX_CFieldIndex inFieldIndex ) AAX_OVERRIDE;
70 AAX_Result AddSampleRate ( AAX_CFieldIndex inFieldIndex ) AAX_OVERRIDE;
71 AAX_Result AddClock ( AAX_CFieldIndex inFieldIndex ) AAX_OVERRIDE;
72 AAX_Result AddSideChainIn ( AAX_CFieldIndex inFieldIndex ) AAX_OVERRIDE;
73
74 AAX_Result AddDataInPort ( AAX_CFieldIndex inFieldIndex, uint32_t inPacketSize, AAX_EDataInPortType inPortType ) AAX_OVERRIDE;
75 AAX_Result AddAuxOutputStem ( AAX_CFieldIndex inFieldIndex, int32_t inStemFormat, const char inNameUTF8[]) AAX_OVERRIDE;
76 AAX_Result AddPrivateData ( AAX_CFieldIndex inFieldIndex, int32_t inDataSize, uint32_t inOptions ) AAX_OVERRIDE;
77 AAX_Result AddTemporaryData( AAX_CFieldIndex inFieldIndex, uint32_t inDataElementSize) AAX_OVERRIDE;
78 AAX_Result AddDmaInstance ( AAX_CFieldIndex inFieldIndex, AAX_IDma::EMode inDmaMode ) AAX_OVERRIDE;
79 AAX_Result AddMeters ( AAX_CFieldIndex inFieldIndex, const AAX_CTypeID* inMeterIDs, const uint32_t inMeterCount) AAX_OVERRIDE;
80 AAX_Result AddMIDINode ( AAX_CFieldIndex inFieldIndex, AAX_EMIDINodeType inNodeType, const char inNodeName[], uint32_t channelMask ) AAX_OVERRIDE;
81
82
87 AAX_IPropertyMap * NewPropertyMap () const AAX_OVERRIDE;
92 AAX_IPropertyMap * DuplicatePropertyMap (AAX_IPropertyMap* inPropertyMap) const AAX_OVERRIDE;
95 virtual AAX_Result AddProcessProc_Native (
96 AAX_CProcessProc inProcessProc,
97 AAX_IPropertyMap * inProperties = NULL,
98 AAX_CInstanceInitProc inInstanceInitProc = NULL,
99 AAX_CBackgroundProc inBackgroundProc = NULL,
100 AAX_CSelector * outProcID = NULL ) AAX_OVERRIDE;
103 virtual AAX_Result AddProcessProc_TI (
104 const char inDLLFileNameUTF8[],
105 const char inProcessProcSymbol[],
106 AAX_IPropertyMap * inProperties = NULL,
107 const char inInstanceInitProcSymbol [] = NULL,
108 const char inBackgroundProcSymbol [] = NULL,
109 AAX_CSelector * outProcID = NULL ) AAX_OVERRIDE;
112 virtual AAX_Result AddProcessProc (
113 AAX_IPropertyMap* inProperties,
114 AAX_CSelector* outProcIDs = NULL,
115 int32_t inProcIDsSize = 0) AAX_OVERRIDE;
116
117
118 IACFUnknown* GetIUnknown(void) const;
119
120private:
121 // Used for backwards compatibility with clients which do not support AddProcessProc
122 friend class AAX_VPropertyMap;
123 static const std::set<AAX_EProperty>& PointerPropertiesUsedByAddProcessProc();
124
125private:
126 ACFPtr<IACFUnknown> mUnkHost;
127 ACFPtr<AAX_IACFComponentDescriptor> mIACFComponentDescriptor;
128 ACFPtr<AAX_IACFComponentDescriptor_V2> mIACFComponentDescriptorV2;
129 ACFPtr<AAX_IACFComponentDescriptor_V3> mIACFComponentDescriptorV3;
130 std::set<AAX_IPropertyMap *> mPropertyMaps;
131};
132
133
134#endif // #ifndef _AAX_ICOMPONENTDESCRIPTOR_H_
AAX_EMIDINodeType
AAX_EMIDINodeType
MIDI node types.
Definition: AAX_Enums.h:1026
AAX_EDataInPortType
AAX_EDataInPortType
Property value for whether a data in port should be buffered or not.
Definition: AAX_Enums.h:1109
AAX_IComponentDescriptor.h
Description interface for an AAX plug-in algorithm.
AAX_Result
int32_t AAX_Result
Definition: AAX.h:347
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_CSelector
uint32_t AAX_CSelector
Definition: AAX.h:340
AAX_EProperty
AAX_EProperty
The list of properties that can be added to an AAX_IPropertyMap.
Definition: AAX_Properties.h:82
AAX_IACFComponentDescriptor.h
Versioned description interface for an AAX plug-in algorithm callback.
AAX_IDma.h
Cross-platform interface for access to the host's direct memory access (DMA) facilities.
AAX_CInstanceInitProc
AAX_Component< void >::CInstanceInitProc AAX_CInstanceInitProc
A user-defined callback that AAX calls to notify the component that an instance is being added or rem...
Definition: AAX_Callbacks.h:150
AAX_CBackgroundProc
AAX_Component< void >::CBackgroundProc AAX_CBackgroundProc
A user-defined callback that AAX calls in the AAX Idle time.
Definition: AAX_Callbacks.h:161
AAX_CProcessProc
AAX_Component< void >::CProcessProc AAX_CProcessProc
A user-defined callback that AAX calls to process data packets and/or audio.
Definition: AAX_Callbacks.h:114
IACFUnknown
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.doxygen:265
AAX_IACFComponentDescriptor
Versioned description interface for an AAX plug-in algorithm callback.
Definition: AAX_IACFComponentDescriptor.h:53
AAX_IACFComponentDescriptor_V2
Versioned description interface for an AAX plug-in algorithm callback.
Definition: AAX_IACFComponentDescriptor.h:89
AAX_IACFComponentDescriptor_V3
Versioned description interface for an AAX plug-in algorithm callback.
Definition: AAX_IACFComponentDescriptor.h:97
AAX_IComponentDescriptor
Description interface for an AAX plug-in component.
Definition: AAX_IComponentDescriptor.h:57
AAX_IDma
Cross-platform interface for access to the host's direct memory access (DMA) facilities.
Definition: AAX_IDma.h:63
AAX_IPropertyMap
Generic plug-in description property map.
Definition: AAX_IPropertyMap.h:69
AAX_VComponentDescriptor
Version-managed concrete AAX_IComponentDescriptor class.
Definition: AAX_VComponentDescriptor.h:60
AAX_VComponentDescriptor::AddAudioOut
AAX_Result AddAudioOut(AAX_CFieldIndex inFieldIndex) AAX_OVERRIDE
Subscribes an audio output context field.
AAX_VComponentDescriptor::GetIUnknown
IACFUnknown * GetIUnknown(void) const
AAX_VComponentDescriptor::AddMIDINode
AAX_Result AddMIDINode(AAX_CFieldIndex inFieldIndex, AAX_EMIDINodeType inNodeType, const char inNodeName[], uint32_t channelMask) AAX_OVERRIDE
Adds a MIDI node field to the plug-in's context.
AAX_VComponentDescriptor::AddDataInPort
AAX_Result AddDataInPort(AAX_CFieldIndex inFieldIndex, uint32_t inPacketSize, AAX_EDataInPortType inPortType) AAX_OVERRIDE
Adds a custom data port to the algorithm context.
AAX_VComponentDescriptor::AddProcessProc_Native
virtual AAX_Result AddProcessProc_Native(AAX_CProcessProc inProcessProc, AAX_IPropertyMap *inProperties=NULL, AAX_CInstanceInitProc inInstanceInitProc=NULL, AAX_CBackgroundProc inBackgroundProc=NULL, AAX_CSelector *outProcID=NULL) AAX_OVERRIDE
Registers an algorithm processing entrypoint (process procedure) for the native architecture.
AAX_VComponentDescriptor::Clear
AAX_Result Clear() AAX_OVERRIDE
Clears the descriptor.
AAX_VComponentDescriptor::AddClock
AAX_Result AddClock(AAX_CFieldIndex inFieldIndex) AAX_OVERRIDE
Subscribes a clock context field.
AAX_VComponentDescriptor::AddAuxOutputStem
AAX_Result AddAuxOutputStem(AAX_CFieldIndex inFieldIndex, int32_t inStemFormat, const char inNameUTF8[]) AAX_OVERRIDE
Adds an auxiliary output stem for a plug-in.
AAX_VComponentDescriptor::AddAudioIn
AAX_Result AddAudioIn(AAX_CFieldIndex inFieldIndex) AAX_OVERRIDE
Subscribes an audio input context field.
AAX_VComponentDescriptor::AddSampleRate
AAX_Result AddSampleRate(AAX_CFieldIndex inFieldIndex) AAX_OVERRIDE
Subscribes a sample rate context field.
AAX_VComponentDescriptor::NewPropertyMap
AAX_IPropertyMap * NewPropertyMap() const AAX_OVERRIDE
Creates a new, empty property map.
AAX_VComponentDescriptor::AddProcessProc
virtual AAX_Result AddProcessProc(AAX_IPropertyMap *inProperties, AAX_CSelector *outProcIDs=NULL, int32_t inProcIDsSize=0) AAX_OVERRIDE
Registers one or more algorithm processing entrypoints (process procedures)
AAX_VComponentDescriptor::AddTemporaryData
AAX_Result AddTemporaryData(AAX_CFieldIndex inFieldIndex, uint32_t inDataElementSize) AAX_OVERRIDE
Adds a block of data to a context that is not saved between callbacks and is scaled by the system buf...
AAX_VComponentDescriptor::AddSideChainIn
AAX_Result AddSideChainIn(AAX_CFieldIndex inFieldIndex) AAX_OVERRIDE
Subscribes a side-chain input context field.
AAX_VComponentDescriptor::~AAX_VComponentDescriptor
~AAX_VComponentDescriptor() AAX_OVERRIDE
AAX_VComponentDescriptor::AddProcessProc_TI
virtual AAX_Result AddProcessProc_TI(const char inDLLFileNameUTF8[], const char inProcessProcSymbol[], AAX_IPropertyMap *inProperties=NULL, const char inInstanceInitProcSymbol[]=NULL, const char inBackgroundProcSymbol[]=NULL, AAX_CSelector *outProcID=NULL) AAX_OVERRIDE
Registers an algorithm processing entrypoint (process procedure) for the native architecture.
AAX_VComponentDescriptor::AddPrivateData
AAX_Result AddPrivateData(AAX_CFieldIndex inFieldIndex, int32_t inDataSize, uint32_t inOptions) AAX_OVERRIDE
Adds a private data port to the algorithm context.
AAX_VComponentDescriptor::AddDmaInstance
AAX_Result AddDmaInstance(AAX_CFieldIndex inFieldIndex, AAX_IDma::EMode inDmaMode) AAX_OVERRIDE
Adds a DMA field to the plug-in's context.
AAX_VComponentDescriptor::AAX_VComponentDescriptor
AAX_VComponentDescriptor(IACFUnknown *pUnkHost)
AAX_VComponentDescriptor::AddReservedField
AAX_Result AddReservedField(AAX_CFieldIndex inFieldIndex, uint32_t inFieldType) AAX_OVERRIDE
Subscribes a context field to host-provided services or information.
AAX_VComponentDescriptor::AddMeters
AAX_Result AddMeters(AAX_CFieldIndex inFieldIndex, const AAX_CTypeID *inMeterIDs, const uint32_t inMeterCount) AAX_OVERRIDE
Adds a meter field to the plug-in's context.
AAX_VComponentDescriptor::AddAudioBufferLength
AAX_Result AddAudioBufferLength(AAX_CFieldIndex inFieldIndex) AAX_OVERRIDE
Subscribes a buffer length context field.
AAX_VComponentDescriptor::DuplicatePropertyMap
AAX_IPropertyMap * DuplicatePropertyMap(AAX_IPropertyMap *inPropertyMap) const AAX_OVERRIDE
Creates a new property map using an existing property map.
AAX_VPropertyMap
Version-managed concrete AAX_IPropertyMap class.
Definition: AAX_VPropertyMap.h:59