| AAX SDK 2.8.0 Avid Audio Extensions Development Kit

- Welcome
- Manual
- Classes
- Files
- Lists
- Support

Loading...
Searching...
No Matches
Classes | Enumerations
Task agent interface
AAX SDK Manual » Additional AAX features

##

A mechanism for hosts to request that plug-ins perform tasks.

This interface represents an optional component that you can add to your plug-in in order to support extended features of the AAX SDK.

Host Compatibility Notes:
  This interface is not yet used in any AAX hosts

The plug-in implements an AAX_ITaskAgent, which is used by the host to add or cancel tasks.

The host implements AAX_IACFTask for task objects representing each task that it wants the plug-in to perform.

To request a task, the host adds a task object to the plug-in's task agent interface.

The type of each task is identified with a four-char ID. If additional arbitrary data is necessary to describe the task it is provided via data buffers.

The plug-in checks this data to understand what work needs to be done, then performs the task. The task may be, and usually is, executed asynchronously. The plug-in optionally updates the task progress as it proceedds, then calls AAX_ITask::SetDone() when the work is completed. If the task involves returning data back to the host, the plug-in first calls AAX_ITask::AddResult() one or more times to provide the data via data buffers.

To be available as a task agent, the plug-in's task agent implementation must be registered with the host in the plug-in's Description callback like other process pointers. To add this interface to your plug-in at describe time, call AAX_IEffectDescriptor::AddProcPtr() using the kAAX_ProcPtrID_Create_TaskAgent selector.

# Communicating with other modules

Like other modules, the task agent interface is provided with a reference to the plug-in's AAX_IEffectDirectData object at initialization. In order to transfer data between a plug-in's AAX_IEffectDirectData object and its other objects, dedicated custom data methods in those objects' interfaces should be used. For example, to communicate with the plug-in's data model, use AAX_IEffectParameters::GetCustomData() and AAX_IEffectParameters::SetCustomData() .

## Classes
class | AAX_CTaskAgent
| Default implementation of the AAX_ITaskAgent interface. More...
class | AAX_IACFTask
| Versioned interface for an asynchronous task. More...
class | AAX_IACFTaskAgent
| Versioned interface for a component that accepts task requests. More...
class | AAX_ITask
| Interface representing a request to perform a task. More...
class | AAX_ITaskAgent
| Interface for a component that accepts task requests. More...

## Enumerations
enum class | AAX_TaskCompletionStatus : int32_t { AAX_TaskCompletionStatus::None = 0 , AAX_TaskCompletionStatus::Done = 1 , AAX_TaskCompletionStatus::Canceled = 2 , AAX_TaskCompletionStatus::Error = 3 }

## Enumeration Type Documentation

## ◆ AAX_TaskCompletionStatus

enum class AAX_TaskCompletionStatus : int32_t
| strong

Completion status for use with AAX_ITask::SetDone()

Enumerator
None |
Done |
Canceled |
Error |

Collaboration diagram for Task agent interface: