| 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_CHostProcessor.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_CHOSTPROCESSOR_H
36#define AAX_CHOSTPROCESSOR_H
37
38#include "AAX_IEffectParameters.h"
39#include "AAX_IHostProcessor.h"
40#include "ACFPtr.h"
41
42
43 class AAX_IHostProcessorDelegate;
44 class AAX_IController;
45 class AAX_IEffectParameters;
46 class IACFUnknown;
47
67 class AAX_CHostProcessor : public AAX_IHostProcessor
68{
69 public:
70 /* default constructor */ AAX_CHostProcessor (void);
71 virtual /* destructor */ ~AAX_CHostProcessor ();
72
82 AAX_Result Initialize(IACFUnknown* iController) AAX_OVERRIDE;
85 AAX_Result Uninitialize() AAX_OVERRIDE;
87
130 AAX_Result InitOutputBounds ( int64_t iSrcStart, int64_t iSrcEnd, int64_t * oDstStart, int64_t * oDstEnd ) AAX_OVERRIDE;
131
145 AAX_Result SetLocation ( int64_t iSample ) AAX_OVERRIDE;
146
166 AAX_Result RenderAudio ( const float * const inAudioIns [], int32_t inAudioInCount, float * const iAudioOuts [], int32_t iAudioOutCount, int32_t * ioWindowSize ) AAX_OVERRIDE;
167
183 AAX_Result PreRender ( int32_t inAudioInCount, int32_t iAudioOutCount, int32_t iWindowSize ) AAX_OVERRIDE;
184
192 AAX_Result PostRender () AAX_OVERRIDE;
193
211 AAX_Result AnalyzeAudio ( const float * const inAudioIns [], int32_t inAudioInCount, int32_t * ioWindowSize ) AAX_OVERRIDE;
212
225 AAX_Result PreAnalyze ( int32_t inAudioInCount, int32_t iWindowSize ) AAX_OVERRIDE;
226
236 AAX_Result PostAnalyze () AAX_OVERRIDE;
249 AAX_Result GetClipNameSuffix ( int32_t inMaxLength, AAX_IString* outString ) const AAX_OVERRIDE;
251
252
256 AAX_IEffectParameters * GetEffectParameters () { return mEffectParameters; }
257 const AAX_IEffectParameters * GetEffectParameters () const { return mEffectParameters; }
258 AAX_IHostProcessorDelegate* GetHostProcessorDelegate () { return mHostProcessingDelegate; }
259 const AAX_IHostProcessorDelegate* GetHostProcessorDelegate () const { return mHostProcessingDelegate; }
260
269 int64_t GetLocation() const { return mLocation; }
270
273 int64_t GetInputRange() const { return (mSrcEnd - mSrcStart); }
276 int64_t GetOutputRange() const { return (mDstEnd - mDstStart); }
280 int64_t GetSrcStart() const { return mSrcStart; }
284 int64_t GetSrcEnd() const { return mSrcEnd; }
291 int64_t GetDstStart() const { return mDstStart; }
298 int64_t GetDstEnd() const { return mDstEnd; }
300
301 protected:
324 virtual AAX_Result TranslateOutputBounds ( int64_t iSrcStart, int64_t iSrcEnd, int64_t& oDstStart, int64_t& oDstEnd );
325
343 virtual AAX_Result GetAudio ( const float * const inAudioIns [], int32_t inAudioInCount, int64_t inLocation, int32_t * ioNumSamples );
344
349 virtual int32_t GetSideChainInputNum ();
350
351 // Exterior Object Access
352 AAX_IController* Controller() { return mController; }
353 const AAX_IController* Controller() const { return mController; }
354 AAX_IHostProcessorDelegate* HostProcessorDelegate() { return mHostProcessingDelegate; }
355 const AAX_IHostProcessorDelegate* HostProcessorDelegate() const { return mHostProcessingDelegate; }
356 AAX_IEffectParameters* EffectParameters() { return mEffectParameters; }
357 const AAX_IEffectParameters* EffectParameters() const { return mEffectParameters; }
359
360 private:
361 AAX_IController* mController;
362 AAX_IHostProcessorDelegate* mHostProcessingDelegate;
363 AAX_IEffectParameters* mEffectParameters;
364 int64_t mSrcStart;
365 int64_t mSrcEnd;
366 int64_t mDstStart;
367 int64_t mDstEnd;
368 int64_t mLocation;
369
370};
371
372
373#endif
AAX_IHostProcessor.h
Base class for the host processor interface which is extended by plugin code.
AAX_IEffectParameters.h
The interface for an AAX Plug-in's data model.
AAX_Result
int32_t AAX_Result
Definition: AAX.h:347
AAX_OVERRIDE
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:164
IACFUnknown
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.doxygen:265
AAX_CHostProcessor
Concrete implementation of the AAX_IHostProcessor interface for non-real-time processing.
Definition: AAX_CHostProcessor.h:68
AAX_CHostProcessor::Uninitialize
AAX_Result Uninitialize() AAX_OVERRIDE
Host Processor teardown.
AAX_CHostProcessor::PreRender
AAX_Result PreRender(int32_t inAudioInCount, int32_t iAudioOutCount, int32_t iWindowSize) AAX_OVERRIDE
Invoked right before the start of a Preview or Render pass.
AAX_CHostProcessor::GetDstEnd
int64_t GetDstEnd() const
The sample position of the end of the of the clip that will be rendered to the timeline relative to t...
Definition: AAX_CHostProcessor.h:298
AAX_CHostProcessor::~AAX_CHostProcessor
virtual ~AAX_CHostProcessor()
AAX_CHostProcessor::GetInputRange
int64_t GetInputRange() const
The length (in samples) of the current timeline selection.
Definition: AAX_CHostProcessor.h:273
AAX_CHostProcessor::PreAnalyze
AAX_Result PreAnalyze(int32_t inAudioInCount, int32_t iWindowSize) AAX_OVERRIDE
Invoked right before the start of an Analysis pass.
AAX_CHostProcessor::AnalyzeAudio
AAX_Result AnalyzeAudio(const float *const inAudioIns[], int32_t inAudioInCount, int32_t *ioWindowSize) AAX_OVERRIDE
Override this method if the plug-in needs to analyze the audio prior to a Render pass.
AAX_CHostProcessor::PostRender
AAX_Result PostRender() AAX_OVERRIDE
Invoked at the end of a Render pass.
AAX_CHostProcessor::SetLocation
AAX_Result SetLocation(int64_t iSample) AAX_OVERRIDE
Updates the relative sample location of the current processing frame.
AAX_CHostProcessor::GetEffectParameters
AAX_IEffectParameters * GetEffectParameters()
Definition: AAX_CHostProcessor.h:256
AAX_CHostProcessor::GetAudio
virtual AAX_Result GetAudio(const float *const inAudioIns[], int32_t inAudioInCount, int64_t inLocation, int32_t *ioNumSamples)
Randomly access audio from the timeline.
AAX_CHostProcessor::GetSrcEnd
int64_t GetSrcEnd() const
The sample position of the end of the current timeline selection relative to the beginning of the cur...
Definition: AAX_CHostProcessor.h:284
AAX_CHostProcessor::TranslateOutputBounds
virtual AAX_Result TranslateOutputBounds(int64_t iSrcStart, int64_t iSrcEnd, int64_t &oDstStart, int64_t &oDstEnd)
Define the boundaries of the clip that will be rendered to the timeline.
AAX_CHostProcessor::GetSideChainInputNum
virtual int32_t GetSideChainInputNum()
CALL: Returns the index of the side chain input buffer.
AAX_CHostProcessor::GetClipNameSuffix
AAX_Result GetClipNameSuffix(int32_t inMaxLength, AAX_IString *outString) const AAX_OVERRIDE
Called by host application to retrieve a custom string to be appended to the clip name.
AAX_CHostProcessor::HostProcessorDelegate
const AAX_IHostProcessorDelegate * HostProcessorDelegate() const
Definition: AAX_CHostProcessor.h:355
AAX_CHostProcessor::InitOutputBounds
AAX_Result InitOutputBounds(int64_t iSrcStart, int64_t iSrcEnd, int64_t *oDstStart, int64_t *oDstEnd) AAX_OVERRIDE
Sets the processing region.
AAX_CHostProcessor::EffectParameters
const AAX_IEffectParameters * EffectParameters() const
Definition: AAX_CHostProcessor.h:357
AAX_CHostProcessor::GetLocation
int64_t GetLocation() const
The relative sample location of the current processing frame.
Definition: AAX_CHostProcessor.h:269
AAX_CHostProcessor::GetOutputRange
int64_t GetOutputRange() const
The length (in samples) of the clip that will be rendered to the timeline.
Definition: AAX_CHostProcessor.h:276
AAX_CHostProcessor::Controller
const AAX_IController * Controller() const
Definition: AAX_CHostProcessor.h:353
AAX_CHostProcessor::Controller
AAX_IController * Controller()
Definition: AAX_CHostProcessor.h:352
AAX_CHostProcessor::AAX_CHostProcessor
AAX_CHostProcessor(void)
AAX_CHostProcessor::RenderAudio
AAX_Result RenderAudio(const float *const inAudioIns[], int32_t inAudioInCount, float *const iAudioOuts[], int32_t iAudioOutCount, int32_t *ioWindowSize) AAX_OVERRIDE
Perform the signal processing.
AAX_CHostProcessor::HostProcessorDelegate
AAX_IHostProcessorDelegate * HostProcessorDelegate()
Definition: AAX_CHostProcessor.h:354
AAX_CHostProcessor::GetEffectParameters
const AAX_IEffectParameters * GetEffectParameters() const
Definition: AAX_CHostProcessor.h:257
AAX_CHostProcessor::GetDstStart
int64_t GetDstStart() const
The sample position of the beginning of the of the clip that will be rendered to the timeline relativ...
Definition: AAX_CHostProcessor.h:291
AAX_CHostProcessor::GetHostProcessorDelegate
const AAX_IHostProcessorDelegate * GetHostProcessorDelegate() const
Definition: AAX_CHostProcessor.h:259
AAX_CHostProcessor::EffectParameters
AAX_IEffectParameters * EffectParameters()
Definition: AAX_CHostProcessor.h:356
AAX_CHostProcessor::GetSrcStart
int64_t GetSrcStart() const
The sample position of the beginning of the current timeline selection relative to the beginning of t...
Definition: AAX_CHostProcessor.h:280
AAX_CHostProcessor::GetHostProcessorDelegate
AAX_IHostProcessorDelegate * GetHostProcessorDelegate()
Definition: AAX_CHostProcessor.h:258
AAX_CHostProcessor::Initialize
AAX_Result Initialize(IACFUnknown *iController) AAX_OVERRIDE
Host Processor initialization.
AAX_CHostProcessor::PostAnalyze
AAX_Result PostAnalyze() AAX_OVERRIDE
Invoked at the end of an Analysis pass.
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_IHostProcessor
Base class for the host processor interface.
Definition: AAX_IHostProcessor.h:55
AAX_IHostProcessorDelegate
Versioned interface for host methods specific to offline processing.
Definition: AAX_IHostProcessorDelegate.h:51
AAX_IString
A simple string container that can be passed across a binary boundary. This class,...
Definition: AAX_IString.h:51