AAX SDK  2.4.1
Avid Audio Extensions Development Kit
AAX_CEffectGUI.h
Go to the documentation of this file.
1 /*================================================================================================*/
2 /*
3  *
4  * Copyright 2013-2017, 2019 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_CEFFECTGUI_H
26 #define AAX_CEFFECTGUI_H
27 
28 #include "AAX_IEffectGUI.h"
30 
31 #include <string>
32 #include <vector>
33 #include <map>
34 #include <memory>
35 
36 
38 class AAX_IController;
39 class AAX_IViewContainer;
40 class AAX_ITransport;
41 
42 
43 
58 {
59 public:
60 
63 
64 public:
65 
72 
82  AAX_Result NotificationReceived(AAX_CTypeID inNotificationType, const void * inNotificationData, uint32_t inNotificationDataSize) AAX_OVERRIDE;
84 
89  AAX_Result GetViewSize (AAX_Point * /* oViewSize */ ) const AAX_OVERRIDE
90  {
91  return AAX_SUCCESS;
92  }
94 
98  AAX_Result Draw (AAX_Rect * /* iDrawRect */ ) AAX_OVERRIDE
99  {
100  return AAX_SUCCESS;
101  }
103  {
104  return AAX_SUCCESS;
105  }
108 
115 
116  AAX_Result SetControlHighlightInfo (AAX_CParamID /* iParameterID */, AAX_CBoolean /* iIsHighlighted */, AAX_EHighlightColor /* iColor */) AAX_OVERRIDE
117  {
118  return AAX_SUCCESS;
119  }
121 
122 protected:
123 
137  virtual void CreateViewContents (void) = 0;
144  virtual void CreateViewContainer (void) = 0;
152  virtual void DeleteViewContainer (void) = 0;
154 
169  virtual void UpdateAllParameters (void);
171 
172 public: //These accessors are public here as they are often needed by contained views.
173 
182  const AAX_IController* GetController (void) const;
183 
190 
197 
203  const AAX_ITransport* Transport() const;
204 
212 
213 private:
214  //These are private, but they all have protected accessors.
215  AAX_IController * mController;
216  AAX_IEffectParameters * mEffectParameters;
217  AAX_UNIQUE_PTR(AAX_IViewContainer) mViewContainer;
218  AAX_ITransport* mTransport;
219 };
220 
221 
222 #endif
const char * AAX_CParamID
Parameter identifier.
Definition: AAX.h:352
int32_t AAX_Result
Definition: AAX.h:337
uint8_t AAX_CBoolean
Cross-compiler boolean type used by AAX interfaces.
Definition: AAX.h:329
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:141
uint32_t AAX_CTypeID
Matches type of OSType used in classic plugins.
Definition: AAX.h:336
AAX_EHighlightColor
Highlight color selector.
Definition: AAX_Enums.h:59
AAX_EPlugInStrings
Effect string identifiers.
Definition: AAX_Enums.h:323
@ AAX_SUCCESS
Definition: AAX_Errors.h:39
AAX_EViewContainer_Type
Type of view container.
Definition: AAX_GUITypes.h:144
The data model interface that is exposed to the host application.
The interface for a AAX Plug-in's user interface.
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.doxygen:248
Default implementation of the AAX_IEffectGUI interface.
Definition: AAX_CEffectGUI.h:58
AAX_EViewContainer_Type GetViewContainerType()
Retrieves the Container and it's type.
AAX_Result TimerWakeup(void) AAX_OVERRIDE
Periodic wakeup callback for idle-time operations.
Definition: AAX_CEffectGUI.h:102
void * GetViewContainerPtr()
virtual void UpdateAllParameters(void)
Requests an update to the GUI for every parameter view.
AAX_Result GetViewSize(AAX_Point *) const AAX_OVERRIDE
Retrieves the size of the plug-in window.
Definition: AAX_CEffectGUI.h:89
~AAX_CEffectGUI(void) AAX_OVERRIDE
AAX_IEffectParameters * GetEffectParameters(void)
Retrieves a reference to the plug-in's data model interface.
AAX_IViewContainer * GetViewContainer(void)
Retrieves a reference to the plug-in's view container interface.
virtual void DeleteViewContainer(void)=0
Uninitializes the plug-in window and deletes the main GUI view or frame.
AAX_ITransport * Transport()
Retrieves a reference to the plug-in's Transport interface.
AAX_Result SetViewContainer(IACFUnknown *iViewContainer) AAX_OVERRIDE
Provides a handle to the main plug-in window.
AAX_Result Initialize(IACFUnknown *iController) AAX_OVERRIDE
Main GUI initialization.
const AAX_ITransport * Transport() const
AAX_Result Draw(AAX_Rect *) AAX_OVERRIDE
DEPRECATED, Not called from host any longer. Your chosen graphics framework should be directly handli...
Definition: AAX_CEffectGUI.h:98
AAX_Result Uninitialize(void) AAX_OVERRIDE
Main GUI uninitialization.
const AAX_IViewContainer * GetViewContainer(void) const
AAX_Result ParameterUpdated(AAX_CParamID paramID) AAX_OVERRIDE
Notifies the GUI that a parameter value has changed.
AAX_Result GetCustomLabel(AAX_EPlugInStrings iSelector, AAX_IString *oString) const AAX_OVERRIDE
Called by host application to retrieve a custom plug-in string.
AAX_IController * GetController(void)
Retrieves a reference to the plug-in's controller interface.
AAX_Result SetControlHighlightInfo(AAX_CParamID, AAX_CBoolean, AAX_EHighlightColor) AAX_OVERRIDE
Called by host application. Indicates that a control widget should be updated with a highlight color.
Definition: AAX_CEffectGUI.h:116
virtual void CreateViewContents(void)=0
Creates any required top-level GUI components.
virtual void CreateViewContainer(void)=0
Initializes the plug-in window and creates the main GUI view or frame.
AAX_Result NotificationReceived(AAX_CTypeID inNotificationType, const void *inNotificationData, uint32_t inNotificationDataSize) AAX_OVERRIDE
Notification Hook.
const AAX_IEffectParameters * GetEffectParameters(void) const
const AAX_IController * GetController(void) const
AAX_CEffectGUI(void)
Data structure representing a two-dimensional coordinate point.
Definition: AAX_GUITypes.h:42
Data structure representing a rectangle in a two-dimensional coordinate plane.
Definition: AAX_GUITypes.h:99
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
The interface for a AAX Plug-in's user interface.
Definition: AAX_IEffectGUI.h:55
The interface for an AAX Plug-in's data model.
Definition: AAX_IEffectParameters.h:83
A simple string container that can be passed across a binary boundary. This class,...
Definition: AAX_IString.h:41
Interface to information about the host's transport state.
Definition: AAX_ITransport.h:45
Interface for the AAX host's view of a single instance of an effect. Used both by clients of the AAX ...
Definition: AAX_IViewContainer.h:41