AAX SDK 2.6.1
Avid Audio Extensions Development Kit
Loading...
Searching...
No Matches
AAX_CHostProcessor.h
Go to the documentation of this file.
1/*================================================================================================*/
2/*
3 *
4 * Copyright 2013-2017, 2019, 2023 Avid Technology, Inc.
5 * All rights reserved.
6 *
7 * CONFIDENTIAL: this document contains confidential information of Avid. Do
8 * not disclose to any third party. Use of the information contained in this
9 * document is subject to an Avid SDK license.
10 *
11 */
12
19/*================================================================================================*/
20
21
22#ifndef AAX_CHOSTPROCESSOR_H
23#define AAX_CHOSTPROCESSOR_H
24
26#include "AAX_IHostProcessor.h"
27#include "ACFPtr.h"
28
29
31class AAX_IController;
33class IACFUnknown;
34
55{
56public:
57 /* default constructor */ AAX_CHostProcessor (void);
58 virtual /* destructor */ ~AAX_CHostProcessor ();
59
74
117 AAX_Result InitOutputBounds ( int64_t iSrcStart, int64_t iSrcEnd, int64_t * oDstStart, int64_t * oDstEnd ) AAX_OVERRIDE;
118
133
153 AAX_Result RenderAudio ( const float * const inAudioIns [], int32_t inAudioInCount, float * const iAudioOuts [], int32_t iAudioOutCount, int32_t * ioWindowSize ) AAX_OVERRIDE;
154
170 AAX_Result PreRender ( int32_t inAudioInCount, int32_t iAudioOutCount, int32_t iWindowSize ) AAX_OVERRIDE;
171
180
198 AAX_Result AnalyzeAudio ( const float * const inAudioIns [], int32_t inAudioInCount, int32_t * ioWindowSize ) AAX_OVERRIDE;
199
212 AAX_Result PreAnalyze ( int32_t inAudioInCount, int32_t iWindowSize ) AAX_OVERRIDE;
213
236 AAX_Result GetClipNameSuffix ( int32_t inMaxLength, AAX_IString* outString ) const AAX_OVERRIDE;
238
239
243 AAX_IEffectParameters * GetEffectParameters () { return mEffectParameters; }
244 const AAX_IEffectParameters * GetEffectParameters () const { return mEffectParameters; }
245 AAX_IHostProcessorDelegate* GetHostProcessorDelegate () { return mHostProcessingDelegate; }
246 const AAX_IHostProcessorDelegate* GetHostProcessorDelegate () const { return mHostProcessingDelegate; }
247
256 int64_t GetLocation() const { return mLocation; }
257
260 int64_t GetInputRange() const { return (mSrcEnd - mSrcStart); }
263 int64_t GetOutputRange() const { return (mDstEnd - mDstStart); }
267 int64_t GetSrcStart() const { return mSrcStart; }
271 int64_t GetSrcEnd() const { return mSrcEnd; }
278 int64_t GetDstStart() const { return mDstStart; }
285 int64_t GetDstEnd() const { return mDstEnd; }
287
288protected:
311 virtual AAX_Result TranslateOutputBounds ( int64_t iSrcStart, int64_t iSrcEnd, int64_t& oDstStart, int64_t& oDstEnd );
312
330 virtual AAX_Result GetAudio ( const float * const inAudioIns [], int32_t inAudioInCount, int64_t inLocation, int32_t * ioNumSamples );
331
336 virtual int32_t GetSideChainInputNum ();
337
338 // Exterior Object Access
339 AAX_IController* Controller() { return mController; }
340 const AAX_IController* Controller() const { return mController; }
341 AAX_IHostProcessorDelegate* HostProcessorDelegate() { return mHostProcessingDelegate; }
342 const AAX_IHostProcessorDelegate* HostProcessorDelegate() const { return mHostProcessingDelegate; }
343 AAX_IEffectParameters* EffectParameters() { return mEffectParameters; }
344 const AAX_IEffectParameters* EffectParameters() const { return mEffectParameters; }
346
347private:
348 AAX_IController* mController;
349 AAX_IHostProcessorDelegate* mHostProcessingDelegate;
350 AAX_IEffectParameters* mEffectParameters;
351 int64_t mSrcStart;
352 int64_t mSrcEnd;
353 int64_t mDstStart;
354 int64_t mDstEnd;
355 int64_t mLocation;
356
357};
358
359
360#endif
Base class for the host processor interface which is extended by plugin code.
The interface for an AAX Plug-in's data model.
int32_t AAX_Result
Definition: AAX.h:334
#define AAX_OVERRIDE
override keyword macro
Definition: AAX.h:151
COM compatible IUnknown C++ interface.
Definition: AAX_ACFInterface.doxygen:252
Concrete implementation of the AAX_IHostProcessor interface for non-real-time processing.
Definition: AAX_CHostProcessor.h:55
AAX_Result Uninitialize() AAX_OVERRIDE
Host Processor teardown.
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.
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:285
virtual ~AAX_CHostProcessor()
int64_t GetInputRange() const
The length (in samples) of the current timeline selection.
Definition: AAX_CHostProcessor.h:260
AAX_Result PreAnalyze(int32_t inAudioInCount, int32_t iWindowSize) AAX_OVERRIDE
Invoked right before the start of an Analysis pass.
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_Result PostRender() AAX_OVERRIDE
Invoked at the end of a Render pass.
AAX_Result SetLocation(int64_t iSample) AAX_OVERRIDE
Updates the relative sample location of the current processing frame.
AAX_IEffectParameters * GetEffectParameters()
Definition: AAX_CHostProcessor.h:243
virtual AAX_Result GetAudio(const float *const inAudioIns[], int32_t inAudioInCount, int64_t inLocation, int32_t *ioNumSamples)
Randomly access audio from the timeline.
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:271
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.
virtual int32_t GetSideChainInputNum()
CALL: Returns the index of the side chain input buffer.
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.
const AAX_IHostProcessorDelegate * HostProcessorDelegate() const
Definition: AAX_CHostProcessor.h:342
AAX_Result InitOutputBounds(int64_t iSrcStart, int64_t iSrcEnd, int64_t *oDstStart, int64_t *oDstEnd) AAX_OVERRIDE
Sets the processing region.
const AAX_IEffectParameters * EffectParameters() const
Definition: AAX_CHostProcessor.h:344
int64_t GetLocation() const
The relative sample location of the current processing frame.
Definition: AAX_CHostProcessor.h:256
int64_t GetOutputRange() const
The length (in samples) of the clip that will be rendered to the timeline.
Definition: AAX_CHostProcessor.h:263
const AAX_IController * Controller() const
Definition: AAX_CHostProcessor.h:340
AAX_IController * Controller()
Definition: AAX_CHostProcessor.h:339
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_IHostProcessorDelegate * HostProcessorDelegate()
Definition: AAX_CHostProcessor.h:341
const AAX_IEffectParameters * GetEffectParameters() const
Definition: AAX_CHostProcessor.h:244
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:278
const AAX_IHostProcessorDelegate * GetHostProcessorDelegate() const
Definition: AAX_CHostProcessor.h:246
AAX_IEffectParameters * EffectParameters()
Definition: AAX_CHostProcessor.h:343
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:267
AAX_IHostProcessorDelegate * GetHostProcessorDelegate()
Definition: AAX_CHostProcessor.h:245
AAX_Result Initialize(IACFUnknown *iController) AAX_OVERRIDE
Host Processor initialization.
AAX_Result PostAnalyze() AAX_OVERRIDE
Invoked at the end of an Analysis pass.
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:42
The interface for an AAX Plug-in's data model.
Definition: AAX_IEffectParameters.h:80
Base class for the host processor interface.
Definition: AAX_IHostProcessor.h:42
Versioned interface for host methods specific to offline processing.
Definition: AAX_IHostProcessorDelegate.h:38
A simple string container that can be passed across a binary boundary. This class,...
Definition: AAX_IString.h:38