AAX SDK  2.4.1
Avid Audio Extensions Development Kit
AAX_IController.h
Go to the documentation of this file.
1 /*================================================================================================*/
2 /*
3  *
4  * Copyright 2013-2017 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 
25 #ifndef _AAX_ICONTROLLER_H_
26 #define _AAX_ICONTROLLER_H_
27 
28 #include "AAX_Properties.h"
29 #include "AAX_IString.h"
30 #include "AAX.h"
31 
32 // Forward declarations
33 class AAX_IPageTable;
34 
35 
44 {
45 public:
46 
47  virtual ~AAX_IController(void) {}
48 
55  AAX_IString * outEffectID) const = 0;
62  virtual // AAX_VController
65  AAX_CSampleRate *outSampleRate ) const = 0;
72  virtual // AAX_VController
75  AAX_EStemFormat *outStemFormat ) const = 0;
82  virtual // AAX_VController
85  AAX_EStemFormat *outStemFormat) const = 0;
102  virtual
103  AAX_Result
105  int32_t* outSamples) const = 0;
129  virtual
130  AAX_Result
132  AAX_EProperty inWhichCycleCount,
133  AAX_CPropertyValue* outNumCycles) const = 0;
147  virtual
148  AAX_Result
150  AAX_CTimeOfDay* outTODLocation ) const = 0;
152 
182  virtual
183  AAX_Result
185  int32_t inNumSamples) = 0;
212  virtual
213  AAX_Result
215  AAX_EProperty* inWhichCycleCounts,
216  AAX_CPropertyValue* iValues,
217  int32_t numValues) = 0;
219 
250  virtual // AAX_VController
251  AAX_Result
253  AAX_CFieldIndex inFieldIndex,
254  const void * inPayloadP,
255  uint32_t inPayloadSize) = 0;
257 
285  virtual AAX_Result SendNotification (/* AAX_ENotificationEvent */ AAX_CTypeID inNotificationType, const void* inNotificationData, uint32_t inNotificationDataSize) = 0;
296  virtual AAX_Result SendNotification (/* AAX_ENotificationEvent */ AAX_CTypeID inNotificationType) = 0;
298 
314  virtual AAX_Result GetCurrentMeterValue ( AAX_CTypeID inMeterID, float * outMeterValue ) const = 0;
323  virtual AAX_Result GetMeterPeakValue ( AAX_CTypeID inMeterID, float * outMeterPeakValue ) const = 0;
330  virtual AAX_Result ClearMeterPeakValue ( AAX_CTypeID inMeterID ) const = 0;
339  virtual AAX_Result GetMeterCount ( uint32_t * outMeterCount ) const = 0;
350  virtual AAX_Result GetMeterClipped ( AAX_CTypeID inMeterID, AAX_CBoolean * outClipped ) const = 0;
359  virtual AAX_Result ClearMeterClipped ( AAX_CTypeID inMeterID ) const = 0;
361 
362 
377  virtual AAX_Result GetNextMIDIPacket ( AAX_CFieldIndex* outPort, AAX_CMidiPacket* outPacket ) = 0;
379 
394  virtual
395  AAX_Result GetHybridSignalLatency(int32_t* outSamples) const = 0;
410  virtual
421  virtual
422  AAX_Result GetHostName(AAX_IString* outHostNameString) const = 0;
429  virtual
437  virtual
438  AAX_Result GetIsAudioSuite(AAX_CBoolean* outIsAudioSuite) const = 0;
439 
466  virtual
469  AAX_CPropertyValue inManufacturerID,
470  AAX_CPropertyValue inProductID,
471  AAX_CPropertyValue inPlugInID,
472  uint32_t inTableType,
473  int32_t inTablePageSize) const = 0;
474 
498  virtual
501  const char * inEffectID,
502  const char * inLayoutName,
503  uint32_t inTableType,
504  int32_t inTablePageSize) const = 0;
505 
529  virtual
532  const char* inPageTableFilePath,
533  AAX_ETextEncoding inFilePathEncoding,
534  AAX_CPropertyValue inManufacturerID,
535  AAX_CPropertyValue inProductID,
536  AAX_CPropertyValue inPlugInID,
537  uint32_t inTableType,
538  int32_t inTablePageSize) const = 0;
539 
558  virtual
561  const char* inPageTableFilePath,
562  AAX_ETextEncoding inFilePathEncoding,
563  const char* inLayoutName,
564  uint32_t inTableType,
565  int32_t inTablePageSize) const = 0;
566 };
567 
568 #endif // #ifndef _AAX_IPLUGIN_H_
Various utility definitions for AAX.
float AAX_CSampleRate
Literal sample rate value used by the sample rate field. For AAX_eProperty_SampleRate,...
Definition: AAX.h:334
int64_t AAX_CTimeOfDay
Hardware running clock value. MIDI packet time stamps are measured against this clock....
Definition: AAX.h:332
int32_t AAX_Result
Definition: AAX.h:337
int32_t AAX_CTargetPlatform
Matches type of target platform.
Definition: AAX.h:347
uint8_t AAX_CBoolean
Cross-compiler boolean type used by AAX interfaces.
Definition: AAX.h:329
int32_t AAX_CPropertyValue
32-bit property values
Definition: AAX.h:338
int64_t AAX_CTransportCounter
Offset of samples from transport start. Same as TimeOfDay, but added for new interfaces as TimeOfDay ...
Definition: AAX.h:333
uint32_t AAX_CTypeID
Matches type of OSType used in classic plugins.
Definition: AAX.h:336
AAX_CIndex AAX_CFieldIndex
Not used by AAX plug-ins (except in AAX_FIELD_INDEX macro)
Definition: AAX.h:349
AAX_ETextEncoding
Describes possible string encodings.
Definition: AAX_Enums.h:1310
AAX_EStemFormat
Stem format definitions.
Definition: AAX_Enums.h:232
An AAX string interface.
Contains IDs for properties that can be added to an AAX_IPropertyMap.
AAX_EProperty
The list of properties that can be added to an AAX_IPropertyMap.
Definition: AAX_Properties.h:72
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...
Packet structure for MIDI data.
Definition: AAX.h:637
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:44
virtual AAX_Result SendNotification(AAX_CTypeID inNotificationType, const void *inNotificationData, uint32_t inNotificationDataSize)=0
CALL: Dispatch a notification.
virtual AAX_Result GetCurrentMeterValue(AAX_CTypeID inMeterID, float *outMeterValue) const =0
CALL: Retrieves the current value of a host-managed plug-in meter.
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.
virtual AAX_Result GetMeterClipped(AAX_CTypeID inMeterID, AAX_CBoolean *outClipped) const =0
CALL: Retrieves the clipped flag from a host-managed plug-in meter.
virtual AAX_Result GetCycleCount(AAX_EProperty inWhichCycleCount, AAX_CPropertyValue *outNumCycles) const =0
CALL: returns the plug-in's current real-time DSP cycle count.
virtual AAX_Result GetNextMIDIPacket(AAX_CFieldIndex *outPort, AAX_CMidiPacket *outPacket)=0
CALL: Retrieves MIDI packets for described MIDI nodes.
virtual AAX_Result ClearMeterClipped(AAX_CTypeID inMeterID) const =0
CALL: Clears the clipped flag from a host-managed plug-in meter.
virtual AAX_Result GetMeterCount(uint32_t *outMeterCount) const =0
CALL: Retrieves the number of host-managed meters registered by a plug-in.
virtual AAX_Result GetPlugInTargetPlatform(AAX_CTargetPlatform *outTargetPlatform) const =0
CALL: Returns execution platform type, native or TI.
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.
virtual ~AAX_IController(void)
Definition: AAX_IController.h:47
virtual AAX_Result ClearMeterPeakValue(AAX_CTypeID inMeterID) const =0
CALL: Clears the peak value from a host-managed plug-in meter.
virtual AAX_Result GetOutputStemFormat(AAX_EStemFormat *outStemFormat) const =0
CALL: Returns the plug-in's output stem format.
virtual 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 =0
Copy the current page table data for a particular plug-in type.
virtual AAX_Result GetInputStemFormat(AAX_EStemFormat *outStemFormat) const =0
CALL: Returns the plug-in's input stem format.
virtual AAX_IPageTable * CreateTableCopyForLayout(const char *inEffectID, const char *inLayoutName, uint32_t inTableType, int32_t inTablePageSize) const =0
Copy the current page table data for a particular plug-in effect and page table layout.
virtual AAX_Result GetEffectID(AAX_IString *outEffectID) const =0
virtual AAX_IPageTable * CreateTableCopyForLayoutFromFile(const char *inPageTableFilePath, AAX_ETextEncoding inFilePathEncoding, const char *inLayoutName, uint32_t inTableType, int32_t inTablePageSize) const =0
Copy the current page table data for a particular plug-in effect and page table layout.
virtual AAX_IPageTable * CreateTableCopyForEffect(AAX_CPropertyValue inManufacturerID, AAX_CPropertyValue inProductID, AAX_CPropertyValue inPlugInID, uint32_t inTableType, int32_t inTablePageSize) const =0
Copy the current page table data for a particular plug-in type.
virtual AAX_Result GetHostName(AAX_IString *outHostNameString) const =0
CALL: Returns name of the host application this plug-in instance is being loaded by....
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.
virtual AAX_Result SendNotification(AAX_CTypeID inNotificationType)=0
CALL: Sends an event to the GUI (no payload)
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.
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 ...
virtual AAX_Result GetIsAudioSuite(AAX_CBoolean *outIsAudioSuite) const =0
CALL: Returns true for AudioSuite instances.
virtual AAX_Result GetCurrentAutomationTimestamp(AAX_CTransportCounter *outTimestamp) const =0
CALL: Returns the current automation timestamp if called during the GenerateCoefficients() call AND t...
virtual AAX_Result GetSampleRate(AAX_CSampleRate *outSampleRate) const =0
CALL: Returns the current literal sample rate.
virtual AAX_Result GetTODLocation(AAX_CTimeOfDay *outTODLocation) const =0
CALL: Returns the current Time Of Day (TOD) of the system.
Interface to the host's representation of a plug-in instance's page table.
Definition: AAX_IPageTable.h:28
A simple string container that can be passed across a binary boundary. This class,...
Definition: AAX_IString.h:41