AAX SDK  2.1.1
Avid Audio Extensions Development Kit
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AAX_VController.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 Technology, INC.
13  *
14  */
15 
22 /*================================================================================================*/
23 
24 #ifndef AAX_VCONTROLLER_H
25 #define AAX_VCONTROLLER_H
26 
27 #include "AAX_IController.h"
28 #include "AAX_IACFController.h"
29 
30 #ifdef __clang__
31 #pragma clang diagnostic push
32 #pragma clang diagnostic ignored "-Wself-assign"
33 #pragma clang diagnostic ignored "-Wnon-virtual-dtor"
34 #endif
35 
36 #include "ACFPtr.h"
37 
38 #ifdef __clang__
39 #pragma clang diagnostic pop
40 #endif
41 
42 class IACFUnknown;
43 
52 {
53 public:
54  AAX_VController( IACFUnknown* pUnknown );
55  virtual ~AAX_VController();
56 
57  //Host Information Getters
58  virtual AAX_Result GetEffectID ( AAX_IString * oEffectID) const;
59  virtual AAX_Result GetSampleRate ( AAX_CSampleRate * oSampleRate ) const;
60  virtual AAX_Result GetInputStemFormat ( AAX_EStemFormat * oStemFormat ) const;
61  virtual AAX_Result GetOutputStemFormat ( AAX_EStemFormat * oStemFormat ) const;
62  virtual AAX_Result GetSignalLatency( int32_t* oSamples) const;
63  virtual AAX_Result GetHybridSignalLatency(int32_t* oSamples) const;
64 
65  virtual AAX_Result GetCycleCount( AAX_EProperty iWhichCycleCount, AAX_CPropertyValue* oNumCycles) const;
66  virtual AAX_Result GetTODLocation ( AAX_CTimeOfDay* oTODLocation ) const;
68  virtual AAX_Result GetHostName(AAX_IString* oHostNameString) const;
69 
70  //Host Information Setters (Dynamic info)
71  virtual AAX_Result SetSignalLatency(int32_t numSamples);
72  virtual AAX_Result SetCycleCount( AAX_EProperty* iWhichCycleCounts, AAX_CPropertyValue* iValues, int32_t numValues);
73 
74  //Posting functions.
75  virtual AAX_Result PostPacket ( AAX_CFieldIndex iFieldIndex, const void * iPayloadP, uint32_t iPayloadSize );
76 
77  // Notification functions
78  virtual AAX_Result SendNotification ( AAX_CTypeID iNotificationType, const void* iNotificationData, uint32_t iNotificationDataSize );
79 
80  //Metering functions
81  virtual AAX_Result GetCurrentMeterValue ( AAX_CTypeID iMeterID, float * oMeterValue ) const;
82  virtual AAX_Result GetMeterPeakValue( AAX_CTypeID iMeterID, float * oMeterPeakValue ) const;
83  virtual AAX_Result ClearMeterPeakValue ( AAX_CTypeID iMeterID ) const;
84  virtual AAX_Result GetMeterClipped ( AAX_CTypeID iMeterID, AAX_CBoolean * oClipped ) const;
85  virtual AAX_Result ClearMeterClipped ( AAX_CTypeID iMeterID ) const;
86  virtual AAX_Result GetMeterCount ( uint32_t * oMeterCount ) const;
87 
88  //MIDI functions
89  virtual AAX_Result GetNextMIDIPacket( AAX_CFieldIndex* oPort, AAX_CMidiPacket* oPacket );
90 
91 private:
92  ACFPtr<AAX_IACFController> mIController;
93  ACFPtr<AAX_IACFController_V2> mIControllerV2;
94 };
95 
96 
97 #endif // AAX_VCONTROLLER_H
98 
Packet structure for MIDI data.
Definition: AAX.h:295
virtual AAX_Result GetHostName(AAX_IString *oHostNameString) const
CALL: Returns name of the host application this plug-in instance is being loaded by. This string also typically includes version information.
virtual AAX_Result ClearMeterClipped(AAX_CTypeID iMeterID) const
CALL: Clears the clipped flag from a host-managed plug-in meter.
virtual AAX_Result SendNotification(AAX_CTypeID iNotificationType, const void *iNotificationData, uint32_t iNotificationDataSize)
CALL: Sends an event to the GUI.
int32_t AAX_CPropertyValue
Definition: AAX.h:119
virtual ~AAX_VController()
virtual AAX_Result SetCycleCount(AAX_EProperty *iWhichCycleCounts, AAX_CPropertyValue *iValues, int32_t numValues)
CALL: Indicates a change in the plug-in&#39;s real-time DSP cycle count.
virtual AAX_Result GetCurrentAutomationTimestamp(AAX_CTransportCounter *oTimestamp) const
CALL: Returns the current automation timestamp if called during the GenerateCoefficients() call AND t...
virtual AAX_Result GetMeterClipped(AAX_CTypeID iMeterID, AAX_CBoolean *oClipped) const
CALL: Retrieves the clipped flag from a host-managed plug-in meter.
virtual AAX_Result GetMeterPeakValue(AAX_CTypeID iMeterID, float *oMeterPeakValue) const
CALL: Retrieves the currently held peak value of a host-managed plug-in meter.
int64_t AAX_CTransportCounter
Offset of samples from transport start. Same as TimeOfDay, but added for new interfaces as TimeOfDay ...
Definition: AAX.h:114
virtual AAX_Result GetNextMIDIPacket(AAX_CFieldIndex *oPort, AAX_CMidiPacket *oPacket)
CALL: Retrieves MIDI packets for described MIDI nodes.
uint8_t AAX_CBoolean
Cross-compiler boolean type used by AAX interfaces.
Definition: AAX.h:110
Interface for the AAX host&#39;s view of a single instance of an effect. Used by both clients of the AAXH...
virtual AAX_Result GetCycleCount(AAX_EProperty iWhichCycleCount, AAX_CPropertyValue *oNumCycles) const
CALL: returns the plug-in&#39;s current real-time DSP cycle count.
virtual AAX_Result GetSignalLatency(int32_t *oSamples) const
CALL: Returns the most recent signal (algorithmic) latency that has been published by the plug-in...
Interface for the AAX host&#39;s view of a single instance of an effect.
virtual AAX_Result GetEffectID(AAX_IString *oEffectID) const
virtual AAX_Result GetInputStemFormat(AAX_EStemFormat *oStemFormat) const
CALL: Returns the plug-in&#39;s input stem format.
virtual AAX_Result GetTODLocation(AAX_CTimeOfDay *oTODLocation) const
CALL: Returns the current Time Of Day (TOD) of the system.
virtual AAX_Result GetHybridSignalLatency(int32_t *oSamples) const
CALL: Returns the latency between the algorithm normal input samples and the inputs returning from th...
AAX_EProperty
The list of properties that can be added to an AAX_IPropertyMap.
Definition: AAX_Properties.h:66
uint32_t AAX_CTypeID
Matches type of OSType used in classic plugins.
Definition: AAX.h:117
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.dox:231
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
Version-managed concrete Controller class.
Definition: AAX_VController.h:51
int32_t AAX_Result
Definition: AAX.h:118
virtual AAX_Result ClearMeterPeakValue(AAX_CTypeID iMeterID) const
CALL: Clears the peak value from a host-managed plug-in meter.
Interface for the AAX host&#39;s view of a single instance of an effect. Used by both clients of the AAX ...
Definition: AAX_IController.h:39
float AAX_CSampleRate
Literal sample rate value used by the sample rate field. For AAX_eProperty_SampleRate, use a mask of AAX_ESampleRateMask.
Definition: AAX.h:115
AAX_VController(IACFUnknown *pUnknown)
virtual AAX_Result PostPacket(AAX_CFieldIndex iFieldIndex, const void *iPayloadP, uint32_t iPayloadSize)
CALL: Posts a data packet to the host for routing between plug-in components.
virtual AAX_Result GetOutputStemFormat(AAX_EStemFormat *oStemFormat) const
CALL: Returns the plug-in&#39;s output stem format.
AAX_CIndex AAX_CFieldIndex
Not used by AAX plug-ins (except in AAX_FIELD_INDEX macro)
Definition: AAX.h:125
virtual AAX_Result GetCurrentMeterValue(AAX_CTypeID iMeterID, float *oMeterValue) const
CALL: Retrieves the current value of a host-managed plug-in meter.
AAX_EStemFormat
Definition: AAX_Enums.h:216
virtual AAX_Result SetSignalLatency(int32_t numSamples)
CALL: Submits a request to change the delay compensation value that the host uses to account for the ...
virtual AAX_Result GetSampleRate(AAX_CSampleRate *oSampleRate) const
CALL: Returns the current literal sample rate.
int64_t AAX_CTimeOfDay
Hardware running clock value. MIDI packet time stamps are measured against this clock. This is actually the same as TransportCounter, but kept for compatibility.
Definition: AAX.h:113
virtual AAX_Result GetMeterCount(uint32_t *oMeterCount) const
CALL: Retrieves the number of host-managed meters registered by a plug-in.