| 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_CEffectGUI.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
35#ifndef AAX_CEFFECTGUI_H
36#define AAX_CEFFECTGUI_H
37
38#include "AAX_IEffectGUI.h"
39#include "AAX_IACFEffectParameters.h"
40
41#include <string>
42#include <vector>
43#include <map>
44#include <memory>
45
46
47 class AAX_IEffectParameters;
48 class AAX_IController;
49 class AAX_IViewContainer;
50 class AAX_ITransport;
51
52
53
67 class AAX_CEffectGUI : public AAX_IEffectGUI
68{
69 public:
70
71 AAX_CEffectGUI(void);
72 ~AAX_CEffectGUI(void) AAX_OVERRIDE;
73
74 public:
75
79 AAX_Result Initialize (IACFUnknown * iController ) AAX_OVERRIDE;
80 AAX_Result Uninitialize (void) AAX_OVERRIDE;
82
92 AAX_Result NotificationReceived(AAX_CTypeID inNotificationType, const void * inNotificationData, uint32_t inNotificationDataSize) AAX_OVERRIDE;
94
98 AAX_Result SetViewContainer (IACFUnknown * iViewContainer ) AAX_OVERRIDE;
99 AAX_Result GetViewSize (AAX_Point * /* oViewSize */ ) const AAX_OVERRIDE
100 {
101 return AAX_SUCCESS;
102 }
104
108 AAX_Result Draw (AAX_Rect * /* iDrawRect */ ) AAX_OVERRIDE
109 {
110 return AAX_SUCCESS;
111 }
112 AAX_Result TimerWakeup (void) AAX_OVERRIDE
113 {
114 return AAX_SUCCESS;
115 }
116 AAX_Result ParameterUpdated(AAX_CParamID paramID) AAX_OVERRIDE;
118
124 AAX_Result GetCustomLabel ( AAX_EPlugInStrings iSelector, AAX_IString * oString ) const AAX_OVERRIDE;
125
126 AAX_Result SetControlHighlightInfo (AAX_CParamID /* iParameterID */, AAX_CBoolean /* iIsHighlighted */, AAX_EHighlightColor /* iColor */) AAX_OVERRIDE
127 {
128 return AAX_SUCCESS;
129 }
131
132 protected:
133
147 virtual void CreateViewContents (void) = 0;
154 virtual void CreateViewContainer (void) = 0;
162 virtual void DeleteViewContainer (void) = 0;
164
179 virtual void UpdateAllParameters (void);
181
182 public: //These accessors are public here as they are often needed by contained views.
183
191 AAX_IController* GetController (void);
192 const AAX_IController* GetController (void) const;
193
198 AAX_IEffectParameters* GetEffectParameters (void);
199 const AAX_IEffectParameters* GetEffectParameters (void) const;
200
205 AAX_IViewContainer* GetViewContainer (void);
206 const AAX_IViewContainer* GetViewContainer (void) const;
207
212 AAX_ITransport* Transport();
213 const AAX_ITransport* Transport() const;
214
219 AAX_EViewContainer_Type GetViewContainerType ();
220 void * GetViewContainerPtr ();
222
223 private:
224 //These are private, but they all have protected accessors.
225 AAX_IController * mController;
226 AAX_IEffectParameters * mEffectParameters;
227 AAX_UNIQUE_PTR(AAX_IViewContainer) mViewContainer;
228 AAX_ITransport* mTransport;
229};
230
231
232#endif
AAX_EViewContainer_Type
AAX_EViewContainer_Type
Type of view container.
Definition: AAX_GUITypes.h:154
AAX_EHighlightColor
AAX_EHighlightColor
Highlight color selector.
Definition: AAX_Enums.h:69
AAX_EPlugInStrings
AAX_EPlugInStrings
Effect string identifiers.
Definition: AAX_Enums.h:348
AAX_SUCCESS
@ AAX_SUCCESS
Definition: AAX_Errors.h:49
AAX_UNIQUE_PTR
#define AAX_UNIQUE_PTR(X)
Definition: AAX.h:176
AAX_CParamID
const char * AAX_CParamID
Parameter identifier.
Definition: AAX.h:362
AAX_Result
int32_t AAX_Result
Definition: AAX.h:347
AAX_CBoolean
uint8_t AAX_CBoolean
Cross-compiler boolean type used by AAX interfaces.
Definition: AAX.h:339
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_IEffectGUI.h
The interface for a AAX Plug-in's user interface.
AAX_IACFEffectParameters.h
The data model interface that is exposed to the host application.
IACFUnknown
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.doxygen:265
AAX_CEffectGUI
Default implementation of the AAX_IEffectGUI interface.
Definition: AAX_CEffectGUI.h:68
AAX_CEffectGUI::GetViewContainerType
AAX_EViewContainer_Type GetViewContainerType()
Retrieves the Container and it's type.
AAX_CEffectGUI::TimerWakeup
AAX_Result TimerWakeup(void) AAX_OVERRIDE
Periodic wakeup callback for idle-time operations.
Definition: AAX_CEffectGUI.h:112
AAX_CEffectGUI::UpdateAllParameters
virtual void UpdateAllParameters(void)
Requests an update to the GUI for every parameter view.
AAX_CEffectGUI::GetViewSize
AAX_Result GetViewSize(AAX_Point *) const AAX_OVERRIDE
Retrieves the size of the plug-in window.
Definition: AAX_CEffectGUI.h:99
AAX_CEffectGUI::~AAX_CEffectGUI
~AAX_CEffectGUI(void) AAX_OVERRIDE
AAX_CEffectGUI::GetEffectParameters
const AAX_IEffectParameters * GetEffectParameters(void) const
AAX_CEffectGUI::DeleteViewContainer
virtual void DeleteViewContainer(void)=0
Uninitializes the plug-in window and deletes the main GUI view or frame.
AAX_CEffectGUI::GetViewContainerPtr
void * GetViewContainerPtr()
AAX_CEffectGUI::GetController
AAX_IController * GetController(void)
Retrieves a reference to the plug-in's controller interface.
AAX_CEffectGUI::SetViewContainer
AAX_Result SetViewContainer(IACFUnknown *iViewContainer) AAX_OVERRIDE
Provides a handle to the main plug-in window.
AAX_CEffectGUI::Initialize
AAX_Result Initialize(IACFUnknown *iController) AAX_OVERRIDE
Main GUI initialization.
AAX_CEffectGUI::Draw
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:108
AAX_CEffectGUI::Uninitialize
AAX_Result Uninitialize(void) AAX_OVERRIDE
Main GUI uninitialization.
AAX_CEffectGUI::GetController
const AAX_IController * GetController(void) const
AAX_CEffectGUI::GetViewContainer
const AAX_IViewContainer * GetViewContainer(void) const
AAX_CEffectGUI::GetViewContainer
AAX_IViewContainer * GetViewContainer(void)
Retrieves a reference to the plug-in's view container interface.
AAX_CEffectGUI::Transport
AAX_ITransport * Transport()
Retrieves a reference to the plug-in's Transport interface.
AAX_CEffectGUI::ParameterUpdated
AAX_Result ParameterUpdated(AAX_CParamID paramID) AAX_OVERRIDE
Notifies the GUI that a parameter value has changed.
AAX_CEffectGUI::GetCustomLabel
AAX_Result GetCustomLabel(AAX_EPlugInStrings iSelector, AAX_IString *oString) const AAX_OVERRIDE
Called by host application to retrieve a custom plug-in string.
AAX_CEffectGUI::SetControlHighlightInfo
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:126
AAX_CEffectGUI::CreateViewContents
virtual void CreateViewContents(void)=0
Creates any required top-level GUI components.
AAX_CEffectGUI::CreateViewContainer
virtual void CreateViewContainer(void)=0
Initializes the plug-in window and creates the main GUI view or frame.
AAX_CEffectGUI::GetEffectParameters
AAX_IEffectParameters * GetEffectParameters(void)
Retrieves a reference to the plug-in's data model interface.
AAX_CEffectGUI::NotificationReceived
AAX_Result NotificationReceived(AAX_CTypeID inNotificationType, const void *inNotificationData, uint32_t inNotificationDataSize) AAX_OVERRIDE
Notification Hook.
AAX_CEffectGUI::Transport
const AAX_ITransport * Transport() const
AAX_CEffectGUI::AAX_CEffectGUI
AAX_CEffectGUI(void)
AAX_Point
Data structure representing a two-dimensional coordinate point.
Definition: AAX_GUITypes.h:52
AAX_Rect
Data structure representing a rectangle in a two-dimensional coordinate plane.
Definition: AAX_GUITypes.h:109
AAX_IController
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:55
AAX_IEffectGUI
The interface for a AAX Plug-in's user interface.
Definition: AAX_IEffectGUI.h:65
AAX_IEffectParameters
The interface for an AAX Plug-in's data model.
Definition: AAX_IEffectParameters.h:93
AAX_IString
A simple string container that can be passed across a binary boundary. This class,...
Definition: AAX_IString.h:51
AAX_ITransport
Interface to information about the host's transport state.
Definition: AAX_ITransport.h:66
AAX_IViewContainer
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:51