AAX SDK 2.8.0
Avid Audio Extensions Development Kit
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
36#include <memory>
37
38#ifdef __clang__
39#pragma clang diagnostic push
40#pragma clang diagnostic ignored "-Wunused-parameter"
41#endif
42
43class AAX_IController;
47
48
52{
53public:
54
57
58public:
59
72
81
88 AAX_Result NotificationReceived(/* AAX_ENotificationEvent */ AAX_CTypeID /*inNotificationType*/, const void * /*inNotificationData*/, uint32_t /*inNotificationDataSize*/) AAX_OVERRIDE { return AAX_SUCCESS; }
90
91protected:
92
115
124 const AAX_IController* GetController (void) const;
125
132
137 std::shared_ptr<AAX_ISessionDocument> GetSessionDocument (void);
138 std::shared_ptr<const AAX_ISessionDocument> GetSessionDocument (void) const;
140
141private:
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
Definition: AAX_Errors.h:49
#define AAX_UNIQUE_PTR(X)
Definition: AAX.h:176
int32_t AAX_Result
Definition: AAX.h:347
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:164
uint32_t AAX_CTypeID
Matches type of OSType used in classic plugins.
Definition: AAX.h:346
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.doxygen:265
Default implementation of the AAX_ISessionDocumentClient interface.
Definition: AAX_CSessionDocumentClient.h:52
virtual AAX_Result SessionDocumentWillChange()
The session document interface is about to be added, replaced, or removed.
Definition: AAX_CSessionDocumentClient.h:104
AAX_Result Initialize(IACFUnknown *iUnknown) AAX_OVERRIDE
AAX_Result Uninitialize(void) AAX_OVERRIDE
AAX_IEffectParameters * GetEffectParameters(void)
Retrieves a reference to the plug-in's data model interface.
~AAX_CSessionDocumentClient(void) AAX_OVERRIDE
const AAX_IEffectParameters * GetEffectParameters(void) const
Retrieves a reference to the plug-in's data model interface.
std::shared_ptr< const AAX_ISessionDocument > GetSessionDocument(void) const
Retrieves a reference to the session document interface.
AAX_IController * GetController(void)
Retrieves a reference to the plug-in's controller interface.
std::shared_ptr< AAX_ISessionDocument > GetSessionDocument(void)
Retrieves a reference to the session document interface.
AAX_Result NotificationReceived(AAX_CTypeID, const void *, uint32_t) AAX_OVERRIDE
Definition: AAX_CSessionDocumentClient.h:88
AAX_Result SetSessionDocument(IACFUnknown *iSessionDocument) AAX_OVERRIDE
virtual AAX_Result SessionDocumentChanged()
The session document interface has been added, replaced, or removed.
Definition: AAX_CSessionDocumentClient.h:113
const AAX_IController * GetController(void) const
Retrieves a reference to the plug-in's controller interface.
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
The interface for an AAX Plug-in's data model.
Definition: AAX_IEffectParameters.h:93
Interface representing information in a host session document.
Definition: AAX_ISessionDocument.h:52
Interface representing a client of the session document interface.
Definition: AAX_ISessionDocumentClient.h:48
Definition: AAX_VSessionDocument.h:42