AAX SDK  2.1.1
Avid Audio Extensions Development Kit
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions
AAX_CEffectGUI Class Referenceabstract

#include <AAX_CEffectGUI.h>

Inheritance diagram for AAX_CEffectGUI:
Inheritance graph
[legend]
Collaboration diagram for AAX_CEffectGUI:
Collaboration graph
[legend]

Description

Default implementation of the AAX_IEffectGUI interface.

This class provides a default implementation of the AAX_IEffectGUI interface.

Legacy Porting Notes:
The default implementations in this class are mostly derived from their equivalent implementations in CProcess and CEffectProcess. For additional CProcess-derived implementations, see AAX_CEffectParameters.
Note
See AAX_IACFEffectGUI for further information.

Public Member Functions

 AAX_CEffectGUI (void)
 
virtual ~AAX_CEffectGUI (void)
 
Initialization and uninitialization
virtual AAX_Result Initialize (IACFUnknown *iController)
 Main GUI initialization. More...
 
virtual AAX_Result Uninitialize (void)
 Main GUI uninitialization. More...
 
AAX host and plug-in event notification
virtual AAX_Result NotificationReceived (AAX_CTypeID iNotificationType, const void *iNotificationData, uint32_t iNotificationDataSize)
 Notification Hook. More...
 
View accessors
virtual AAX_Result SetViewContainer (IACFUnknown *iViewContainer)
 Provides a handle to the main plug-in window. More...
 
virtual AAX_Result GetViewSize (AAX_Point *) const
 Retrieves the size of the plug-in window. More...
 
GUI update methods
virtual AAX_Result Draw (AAX_Rect *)
 DEPRECATED, Not called from host any longer. Your chosen graphics framework should be directly handling draw events from the OS. More...
 
virtual AAX_Result TimerWakeup (void)
 Periodic wakeup callback for idle-time operations. More...
 
virtual AAX_Result ParameterUpdated (AAX_CParamID paramID)
 Notifies the GUI that a parameter value has changed. More...
 
Host interface methods

Miscellaneous methods to provide host-specific functionality

virtual AAX_Result GetCustomLabel (AAX_EPlugInStrings iSelector, AAX_IString *oString) const
 Called by host application to retrieve a custom plug-in string. More...
 
virtual AAX_Result SetControlHighlightInfo (AAX_CParamID, AAX_CBoolean, AAX_EHighlightColor)
 Called by host application. Indicates that a control widget should be updated with a highlight color. More...
 
Private member accessors
AAX_IControllerGetController (void)
 Retrieves a reference to the plug-in's controller interface. More...
 
const AAX_IControllerGetController (void) const
 
AAX_IEffectParametersGetEffectParameters (void)
 Retrieves a reference to the plug-in's data model interface. More...
 
const AAX_IEffectParametersGetEffectParameters (void) const
 
AAX_IViewContainerGetViewContainer (void)
 Retrieves a reference to the plug-in's view container interface. More...
 
const AAX_IViewContainerGetViewContainer (void) const
 
AAX_ITransportTransport ()
 Retrieves a reference to the plug-in's Transport interface. More...
 
const AAX_ITransportTransport () const
 
AAX_EViewContainer_Type GetViewContainerType ()
 Retrieves the Container and it's type. More...
 
void * GetViewContainerPtr ()
 
- Public Member Functions inherited from AAX_IEffectGUI
ACFMETHOD() InternalQueryInterface (const acfIID &riid, void **ppvObjOut)
 
Initialization and uninitialization
AAX host and plug-in event notification
View accessors
GUI update methods
Host interface methods

Miscellaneous methods to provide host-specific functionality

- Public Member Functions inherited from IACFUnknown
virtual BEGIN_ACFINTERFACE
ACFRESULT ACFMETHODCALLTYPE 
QueryInterface (const acfIID &iid, void **ppOut)=0
 Returns pointers to supported interfaces. More...
 
virtual acfUInt32 ACFMETHODCALLTYPE AddRef (void)=0
 Increments reference count. More...
 
virtual acfUInt32 ACFMETHODCALLTYPE Release (void)=0
 Decrements reference count. More...
 

Protected Member Functions

AAX_CEffectGUI pure virtual interface

The implementations of these methods will be specific to the particular GUI framework that is being incorporated with AAX_CEffectGUI. Classes that inherit from AAX_CEffectGUI must override these methods with their own framework-specific implementations.

virtual void CreateViewContents (void)=0
 Creates any required top-level GUI components. More...
 
virtual void CreateViewContainer (void)=0
 Initializes the plug-in window and creates the main GUI view or frame. More...
 
virtual void DeleteViewContainer (void)=0
 Uninitializes the plug-in window and deletes the main GUI view or frame. More...
 
Helper methods
virtual void UpdateAllParameters (void)
 Requests an update to the GUI for every parameter view. More...
 

Constructor & Destructor Documentation

AAX_CEffectGUI::AAX_CEffectGUI ( void  )
virtual AAX_CEffectGUI::~AAX_CEffectGUI ( void  )
virtual

Member Function Documentation

virtual AAX_Result AAX_CEffectGUI::Initialize ( IACFUnknown iController)
virtual

Main GUI initialization.

Called when the GUI is created

Parameters
[in]iControllerA versioned reference that resolves to an AAX_IController interface

Implements AAX_IACFEffectGUI.

virtual AAX_Result AAX_CEffectGUI::Uninitialize ( void  )
virtual

Main GUI uninitialization.

Called when the GUI is destroyed. Frees the GUI.

Implements AAX_IACFEffectGUI.

virtual AAX_Result AAX_CEffectGUI::NotificationReceived ( AAX_CTypeID  iNotificationType,
const void *  iNotificationData,
uint32_t  iNotificationDataSize 
)
virtual

Notification Hook.

Called from the host when major changes take place such as instantiation, entering/exiting offline mode, etc.

Look at the AAX_ENotificationEvent enumeration to see a description of events you can listen for and the data they come with.

Parameters
[in]iNotificationTypeType of notification being received. One of AAX_ENotificationEvent
[in]iNotificationDataBlock of incoming notification data
[in]iNotificationDataSizeSize of iNotificationData, in bytes
Note
The default implementation doesn't do anything at this point, but it is probably still a good idea to call into the base class AAX_CEffectGUI::NotificationReceived() function in case we want to implement some default behaviors in the future.

Implements AAX_IACFEffectGUI.

virtual AAX_Result AAX_CEffectGUI::SetViewContainer ( IACFUnknown iViewContainer)
virtual

Provides a handle to the main plug-in window.

Parameters
[in]iViewContainerAn AAX_IViewContainer providing a native handle to the plug-in's window

Implements AAX_IACFEffectGUI.

virtual AAX_Result AAX_CEffectGUI::GetViewSize ( AAX_Point oViewSize) const
inlinevirtual

Retrieves the size of the plug-in window.

See Also
AAX_IViewContainer::SetViewSize()
Parameters
[out]oViewSizeThe size of the plug-in window as a point (width, height)

Implements AAX_IACFEffectGUI.

References AAX_SUCCESS.

virtual AAX_Result AAX_CEffectGUI::Draw ( AAX_Rect iDrawRect)
inlinevirtual

DEPRECATED, Not called from host any longer. Your chosen graphics framework should be directly handling draw events from the OS.

Implements AAX_IACFEffectGUI.

References AAX_SUCCESS.

virtual AAX_Result AAX_CEffectGUI::TimerWakeup ( void  )
inlinevirtual

Periodic wakeup callback for idle-time operations.

GUI animation events such as meter updates should be triggered from this method.

This method is called from the host using a non-main thread. In general, it should be driven at approximately one call per 30 ms. However, the wakeup is not guaranteed to be called at any regular interval - for example, it could be held off by a high real-time processing load - and there is no host contract regarding maximum latency between wakeup calls.

This wakeup thread runs continuously and cannot be armed/disarmed or by the plug-in.

Todo:
Document whether or not this method is called when the GUI is closed, hidden, or obscured

Implements AAX_IACFEffectGUI.

References AAX_SUCCESS.

virtual AAX_Result AAX_CEffectGUI::ParameterUpdated ( AAX_CParamID  iParamID)
virtual

Notifies the GUI that a parameter value has changed.

This method is called by the host whenever a parameter value has been modified

Todo:
Create a "batch" version of this method, or convert this API to accept multiple updates in a single call a la GenerateCoefficients().

Implements AAX_IACFEffectGUI.

virtual AAX_Result AAX_CEffectGUI::GetCustomLabel ( AAX_EPlugInStrings  iSelector,
AAX_IString oString 
) const
virtual

Called by host application to retrieve a custom plug-in string.

If no string is provided then the host's default will be used.

Parameters
[in]iSelectorThe requested strong. One of AAX_EPlugInStrings
[out]oStringThe plug-in's custom value for the requested string

Implements AAX_IACFEffectGUI.

virtual AAX_Result AAX_CEffectGUI::SetControlHighlightInfo ( AAX_CParamID  iParameterID,
AAX_CBoolean  iIsHighlighted,
AAX_EHighlightColor  iColor 
)
inlinevirtual

Called by host application. Indicates that a control widget should be updated with a highlight color.

Todo:
Document this method
Legacy Porting Notes:
This method was re-named from SetControlHighliteInfo(), its name in the legacy plug-in SDK.
Parameters
[in]iParameterIDID of parameter whose widget(s) must be highlighted
[in]iIsHighlightedTrue if turning highlight on, false if turning it off
[in]iColorDesired highlight color. One of AAX_EHighlightColor

Implements AAX_IACFEffectGUI.

References AAX_SUCCESS.

virtual void AAX_CEffectGUI::CreateViewContents ( void  )
protectedpure virtual

Creates any required top-level GUI components.

This method is called by default from AAX_CEffectGUI::Initialize()

virtual void AAX_CEffectGUI::CreateViewContainer ( void  )
protectedpure virtual

Initializes the plug-in window and creates the main GUI view or frame.

This method is called by default from AAX_CEffectGUI::SetViewContainer() when a valid window is present

virtual void AAX_CEffectGUI::DeleteViewContainer ( void  )
protectedpure virtual

Uninitializes the plug-in window and deletes the main GUI view or frame.

This method is called by default from AAX_CEffectGUI::SetViewContainer() when no valid window is present. It may also be appropriate for inheriting classes to call this method from their destructors, depending on their own internal implementation.

virtual void AAX_CEffectGUI::UpdateAllParameters ( void  )
protectedvirtual

Requests an update to the GUI for every parameter view.

By default, calls AAX_CEffectGUI::ParameterUpdated() on every registered parameter.

By default, called from AAX_CEffectGUI::SetViewContainer() after a new view container has been created.

Todo:
Rename to UpdateAllParameterViews() or another name that does not lead to confusion regarding what exactly this method should be doing.
AAX_IController* AAX_CEffectGUI::GetController ( void  )

Retrieves a reference to the plug-in's controller interface.

const AAX_IController* AAX_CEffectGUI::GetController ( void  ) const
AAX_IEffectParameters* AAX_CEffectGUI::GetEffectParameters ( void  )

Retrieves a reference to the plug-in's data model interface.

const AAX_IEffectParameters* AAX_CEffectGUI::GetEffectParameters ( void  ) const
AAX_IViewContainer* AAX_CEffectGUI::GetViewContainer ( void  )

Retrieves a reference to the plug-in's view container interface.

const AAX_IViewContainer* AAX_CEffectGUI::GetViewContainer ( void  ) const
AAX_ITransport* AAX_CEffectGUI::Transport ( )

Retrieves a reference to the plug-in's Transport interface.

const AAX_ITransport* AAX_CEffectGUI::Transport ( ) const
AAX_EViewContainer_Type AAX_CEffectGUI::GetViewContainerType ( )

Retrieves the Container and it's type.

void* AAX_CEffectGUI::GetViewContainerPtr ( )

The documentation for this class was generated from the following file: