AAX SDK  2.1.1
Avid Audio Extensions Development Kit
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AAX_VComponentDescriptor.h
Go to the documentation of this file.
1 // **************************************************************************************
2 // FILE: AAX_VComponentDescriptor.h
3 //
4 // Copyright 2013 by Avid Technology, Inc.
5 // All rights reserved
6 //
7 // CONFIDENTIAL: This document contains confidential information.
8 // Do not disclose any information contained in this document to any
9 // third-party without the prior written consent of Avid Technology, Inc.
10 //
11 // **************************************************************************************
12 
13 #ifndef AAX_VCOMPONENTDESCRIPTOR_H
14 #define AAX_VCOMPONENTDESCRIPTOR_H
15 
17 #include "AAX_IDma.h"
19 #include "acfunknown.h"
20 #include "ACFPtr.h"
21 #include <set>
22 
23 
24 class AAX_IPropertyMap;
26 class AAX_IACFComponentDescriptorV2;
27 class IACFUnknown;
28 
34 {
35 public:
37  virtual ~AAX_VComponentDescriptor ();
38 
39  virtual AAX_Result Clear ();
40  virtual AAX_Result AddReservedField ( AAX_CFieldIndex inFieldIndex, uint32_t inFieldType );
41  virtual AAX_Result AddAudioIn ( AAX_CFieldIndex inFieldIndex );
42  virtual AAX_Result AddAudioOut ( AAX_CFieldIndex inFieldIndex );
43  virtual AAX_Result AddAudioBufferLength ( AAX_CFieldIndex inFieldIndex );
44  virtual AAX_Result AddSampleRate ( AAX_CFieldIndex inFieldIndex );
45  virtual AAX_Result AddClock ( AAX_CFieldIndex inFieldIndex );
46  virtual AAX_Result AddSideChainIn ( AAX_CFieldIndex inFieldIndex );
47 
48  virtual AAX_Result AddDataInPort ( AAX_CFieldIndex inFieldIndex, uint32_t inPacketSize, AAX_EDataInPortType inPortType );
49  virtual AAX_Result AddAuxOutputStem ( AAX_CFieldIndex inFieldIndex, int32_t inStemFormat, const char inNameUTF8[]);
50  virtual AAX_Result AddPrivateData ( AAX_CFieldIndex inFieldIndex, int32_t inDataSize, uint32_t /* AAX_EPrivateDataOptions */ inOptions = AAX_ePrivateDataOptions_DefaultOptions );
51  virtual AAX_Result AddTemporaryData( AAX_CFieldIndex iFieldIndex, uint32_t iDataElementSize);
52  virtual AAX_Result AddDmaInstance ( AAX_CFieldIndex inFieldIndex, AAX_IDma::EMode inDmaMode );
53  virtual AAX_Result AddMeters ( AAX_CFieldIndex inFieldIndex, const AAX_CTypeID* inMeterIDs, const uint32_t inMeterCount);
54  virtual AAX_Result AddMIDINode ( AAX_CFieldIndex inFieldIndex, AAX_EMIDINodeType inNodeType, const char inNodeName[], uint32_t channelMask );
55 
56 
61  virtual AAX_IPropertyMap * NewPropertyMap () const;
66  virtual AAX_IPropertyMap * DuplicatePropertyMap (AAX_IPropertyMap* iPropertyMap) const;
68  AAX_CProcessProc inProcessProc,
69  AAX_IPropertyMap * inProperties = NULL,
70  AAX_CInstanceInitProc inInstanceInitProc = NULL,
71  AAX_CBackgroundProc inBackgroundProc = NULL,
72  AAX_CSelector * outProcID = NULL );
73  virtual AAX_Result AddProcessProc_TI (
74  const char inDLLFileNameUTF8[],
75  const char inProcessProcSymbol[],
76  AAX_IPropertyMap * inProperties = NULL,
77  const char inInstanceInitProcSymbol [] = NULL,
78  const char inBackgroundProcSymbol [] = NULL,
79  AAX_CSelector * outProcID = NULL );
80 
81 
82  IACFUnknown* GetIUnknown(void) const;
83 
84 private:
85  ACFPtr<IACFUnknown> mUnkHost;
86  ACFPtr<AAX_IACFComponentDescriptor> mIACFComponentDescriptor;
87  ACFPtr<AAX_IACFComponentDescriptor_V2> mIACFComponentDescriptorV2;
88  std::set<AAX_IPropertyMap *> mPropertyMaps;
89 };
90 
91 
92 #endif // #ifndef _AAX_ICOMPONENTDESCRIPTOR_H_
AAX_EMIDINodeType
MIDI node types.
Definition: AAX_Enums.h:613
virtual AAX_IPropertyMap * NewPropertyMap() const
Creates a new, empty property map.
AAX_VComponentDescriptor(IACFUnknown *pUnkHost)
virtual AAX_Result Clear()
Clears the descriptor.
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)
Registers an algorithm processing entrypoint (process procedure) for the native architecture.
virtual AAX_Result AddSampleRate(AAX_CFieldIndex inFieldIndex)
Subscribes a sample rate context field.
AAX_Component< void >::CProcessProc AAX_CProcessProc
A user-defined callback that AAX calls to process data packets and/or audio.
Definition: AAX_Callbacks.h:102
virtual ~AAX_VComponentDescriptor()
Generic plug-in description property map.
Definition: AAX_IPropertyMap.h:56
Versioned description interface for an AAX plug-in algorithm callback.
Definition: AAX_IACFComponentDescriptor.h:42
Version-managed concrete AAX_IComponentDescriptor class.
Definition: AAX_VComponentDescriptor.h:33
virtual AAX_Result AddAudioIn(AAX_CFieldIndex inFieldIndex)
Subscribes an audio input context field.
uint32_t AAX_CTypeID
Matches type of OSType used in classic plugins.
Definition: AAX.h:117
virtual AAX_Result AddTemporaryData(AAX_CFieldIndex iFieldIndex, uint32_t iDataElementSize)
Adds a block of data to a context that is not saved between callbacks and is scaled by the system buf...
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.dox:231
virtual AAX_Result AddMeters(AAX_CFieldIndex inFieldIndex, const AAX_CTypeID *inMeterIDs, const uint32_t inMeterCount)
Add a meter field to the plug-in&#39;s context.
virtual AAX_Result AddClock(AAX_CFieldIndex inFieldIndex)
Subscribes a clock context field.
int32_t AAX_Result
Definition: AAX.h:118
Description interface for an AAX plug-in algorithm.
virtual AAX_IPropertyMap * DuplicatePropertyMap(AAX_IPropertyMap *iPropertyMap) const
Creates a new property map using an existing property map.
virtual AAX_Result AddMIDINode(AAX_CFieldIndex inFieldIndex, AAX_EMIDINodeType inNodeType, const char inNodeName[], uint32_t channelMask)
Add your MIDI node objects as context fields.
IACFUnknown * GetIUnknown(void) const
Versioned description interface for an AAX plug-in algorithm callback.
AAX_Component< void >::CBackgroundProc AAX_CBackgroundProc
A user-defined callback that AAX calls in the AAX Idle time.
Definition: AAX_Callbacks.h:149
virtual AAX_Result AddSideChainIn(AAX_CFieldIndex inFieldIndex)
Subscribes a side-chain input context field.
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:138
uint32_t AAX_CSelector
Definition: AAX.h:111
virtual AAX_Result AddDataInPort(AAX_CFieldIndex inFieldIndex, uint32_t inPacketSize, AAX_EDataInPortType inPortType)
Adds a custom data port to the algorithm context.
virtual AAX_Result AddPrivateData(AAX_CFieldIndex inFieldIndex, int32_t inDataSize, uint32_tinOptions=AAX_ePrivateDataOptions_DefaultOptions)
Adds a private data port to the algorithm context.
virtual AAX_Result AddDmaInstance(AAX_CFieldIndex inFieldIndex, AAX_IDma::EMode inDmaMode)
Adds a DMA field to the plug-in&#39;s context.
AAX_CIndex AAX_CFieldIndex
Not used by AAX plug-ins (except in AAX_FIELD_INDEX macro)
Definition: AAX.h:125
virtual AAX_Result AddProcessProc_Native(AAX_CProcessProc inProcessProc, AAX_IPropertyMap *inProperties=NULL, AAX_CInstanceInitProc inInstanceInitProc=NULL, AAX_CBackgroundProc inBackgroundProc=NULL, AAX_CSelector *outProcID=NULL)
Registers an algorithm processing entrypoint (process procedure) for the native architecture.
virtual AAX_Result AddReservedField(AAX_CFieldIndex inFieldIndex, uint32_t inFieldType)
Subscribes a context field to host-provided services or information.
Description interface for an AAX plug-in component.
Definition: AAX_IComponentDescriptor.h:46
virtual AAX_Result AddAudioBufferLength(AAX_CFieldIndex inFieldIndex)
Subscribes a buffer length context field.
virtual AAX_Result AddAuxOutputStem(AAX_CFieldIndex inFieldIndex, int32_t inStemFormat, const char inNameUTF8[])
Adds an auxiliary output stem for a plug-in.
AAX_EDataInPortType
Property value for whether a data in port should be buffered or not.
Definition: AAX_Enums.h:694
virtual AAX_Result AddAudioOut(AAX_CFieldIndex inFieldIndex)
Subscribes an audio output context field.
EMode
DMA mode IDs.
Definition: AAX_IDma.h:69
Cross-platform interface for access to the host&#39;s direct memory access (DMA) facilities.
Definition: AAX_Enums.h:402