| 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_CSessionDocumentClient.h
Go to the documentation of this file.
1/*================================================================================================*/
2/*
3 *
4 * Copyright 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
29/*================================================================================================*/
30
31#pragma once
32#ifndef AAX_CSessionDocumentClient_H
33#define AAX_CSessionDocumentClient_H
34
35#include "AAX_ISessionDocumentClient.h"
36#include <memory>
37
38#ifdef __clang__
39#pragma clang diagnostic push
40#pragma clang diagnostic ignored "-Wunused-parameter"
41#endif
42
43 class AAX_IController;
44 class AAX_IEffectParameters;
45 class AAX_ISessionDocument;
46 class AAX_VSessionDocument;
47
48
51 class AAX_CSessionDocumentClient : public AAX_ISessionDocumentClient
52{
53 public:
54
55 AAX_CSessionDocumentClient(void);
56 ~AAX_CSessionDocumentClient(void) AAX_OVERRIDE;
57
58 public:
59
66 AAX_Result Initialize (IACFUnknown * iUnknown) AAX_OVERRIDE;
70 AAX_Result Uninitialize (void) AAX_OVERRIDE;
72
79 AAX_Result SetSessionDocument(IACFUnknown * iSessionDocument) AAX_OVERRIDE;
81
88 AAX_Result NotificationReceived(/* AAX_ENotificationEvent */ AAX_CTypeID /*inNotificationType*/, const void * /*inNotificationData*/, uint32_t /*inNotificationDataSize*/) AAX_OVERRIDE { return AAX_SUCCESS; }
90
91 protected:
92
104 virtual AAX_Result SessionDocumentWillChange() { return AAX_SUCCESS; }
113 virtual AAX_Result SessionDocumentChanged() { return AAX_SUCCESS; }
115
123 AAX_IController* GetController (void);
124 const AAX_IController* GetController (void) const;
125
130 AAX_IEffectParameters* GetEffectParameters (void);
131 const AAX_IEffectParameters* GetEffectParameters (void) const;
132
137 std::shared_ptr<AAX_ISessionDocument> GetSessionDocument (void);
138 std::shared_ptr<const AAX_ISessionDocument> GetSessionDocument (void) const;
140
141 private:
142 void ClearInternalState();
143
144 //These are private, but they all have protected accessors.
145 AAX_UNIQUE_PTR(AAX_IController) mController;
146 AAX_IEffectParameters * mEffectParameters;
147 std::shared_ptr<AAX_VSessionDocument> mSessionDocument;
148};
149
150#ifdef __clang__
151#pragma clang diagnostic pop
152#endif
153
154#endif // AAX_CSessionDocumentClient
AAX_SUCCESS
@ AAX_SUCCESS
Definition: AAX_Errors.h:49
AAX_UNIQUE_PTR
#define AAX_UNIQUE_PTR(X)
Definition: AAX.h:176
AAX_Result
int32_t AAX_Result
Definition: AAX.h:347
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_ISessionDocumentClient.h
IACFUnknown
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.doxygen:265
AAX_CSessionDocumentClient
Default implementation of the AAX_ISessionDocumentClient interface.
Definition: AAX_CSessionDocumentClient.h:52
AAX_CSessionDocumentClient::SessionDocumentWillChange
virtual AAX_Result SessionDocumentWillChange()
The session document interface is about to be added, replaced, or removed.
Definition: AAX_CSessionDocumentClient.h:104
AAX_CSessionDocumentClient::Initialize
AAX_Result Initialize(IACFUnknown *iUnknown) AAX_OVERRIDE
AAX_CSessionDocumentClient::Uninitialize
AAX_Result Uninitialize(void) AAX_OVERRIDE
AAX_CSessionDocumentClient::GetEffectParameters
AAX_IEffectParameters * GetEffectParameters(void)
Retrieves a reference to the plug-in's data model interface.
AAX_CSessionDocumentClient::~AAX_CSessionDocumentClient
~AAX_CSessionDocumentClient(void) AAX_OVERRIDE
AAX_CSessionDocumentClient::GetEffectParameters
const AAX_IEffectParameters * GetEffectParameters(void) const
Retrieves a reference to the plug-in's data model interface.
AAX_CSessionDocumentClient::GetSessionDocument
std::shared_ptr< const AAX_ISessionDocument > GetSessionDocument(void) const
Retrieves a reference to the session document interface.
AAX_CSessionDocumentClient::GetController
AAX_IController * GetController(void)
Retrieves a reference to the plug-in's controller interface.
AAX_CSessionDocumentClient::GetSessionDocument
std::shared_ptr< AAX_ISessionDocument > GetSessionDocument(void)
Retrieves a reference to the session document interface.
AAX_CSessionDocumentClient::NotificationReceived
AAX_Result NotificationReceived(AAX_CTypeID, const void *, uint32_t) AAX_OVERRIDE
Definition: AAX_CSessionDocumentClient.h:88
AAX_CSessionDocumentClient::SetSessionDocument
AAX_Result SetSessionDocument(IACFUnknown *iSessionDocument) AAX_OVERRIDE
AAX_CSessionDocumentClient::SessionDocumentChanged
virtual AAX_Result SessionDocumentChanged()
The session document interface has been added, replaced, or removed.
Definition: AAX_CSessionDocumentClient.h:113
AAX_CSessionDocumentClient::GetController
const AAX_IController * GetController(void) const
Retrieves a reference to the plug-in's controller interface.
AAX_CSessionDocumentClient::AAX_CSessionDocumentClient
AAX_CSessionDocumentClient(void)
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_IEffectParameters
The interface for an AAX Plug-in's data model.
Definition: AAX_IEffectParameters.h:93
AAX_ISessionDocument
Interface representing information in a host session document.
Definition: AAX_ISessionDocument.h:52
AAX_ISessionDocumentClient
Interface representing a client of the session document interface.
Definition: AAX_ISessionDocumentClient.h:48
AAX_VSessionDocument
Definition: AAX_VSessionDocument.h:42