mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
AAX: Update SDK to 2.9.0
This commit is contained in:
parent
a5dedd36d5
commit
94863f91d4
68 changed files with 970 additions and 292 deletions
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
|
||||
* Copyright 2013-2017, 2019, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -45,48 +45,11 @@
|
|||
#define _AAX_H_
|
||||
/// @endcond
|
||||
|
||||
#include "AAX_EnvironmentUtilities.h"
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
|
||||
#include "AAX_Version.h"
|
||||
#include "AAX_Enums.h"
|
||||
#include "AAX_Errors.h"
|
||||
#include "AAX_Properties.h"
|
||||
|
||||
|
||||
|
||||
/** @name C++ compiler macros
|
||||
*/
|
||||
//@{
|
||||
/** @def TI_VERSION
|
||||
@brief Preprocessor flag indicating compilation for TI
|
||||
*/
|
||||
/** @def AAX_CPP11_SUPPORT
|
||||
@brief Preprocessor toggle for code which requires C++11 compiler support
|
||||
*/
|
||||
//@} C++ compiler macros
|
||||
|
||||
#ifndef TI_VERSION
|
||||
#if defined _TMS320C6X
|
||||
#define TI_VERSION 1
|
||||
#elif defined DOXYGEN_PREPROCESSOR
|
||||
#define TI_VERSION 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef AAX_CPP11_SUPPORT
|
||||
#if (defined __cplusplus) && (__cplusplus >= 201103L)
|
||||
#define AAX_CPP11_SUPPORT 1
|
||||
// VS2015 supports all features except expression SFINAE
|
||||
#elif ((defined _MSVC_LANG) && (_MSVC_LANG >= 201402))
|
||||
#define AAX_CPP11_SUPPORT 1
|
||||
// Let Doxygen see the C++11 version of all code
|
||||
#elif defined DOXYGEN_PREPROCESSOR
|
||||
#define AAX_CPP11_SUPPORT 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <memory>
|
||||
|
||||
/** @name C++ keyword macros
|
||||
|
||||
|
|
@ -343,7 +306,8 @@ typedef int64_t AAX_CTimeOfDay; //!< Hardware running clock value. MIDI pac
|
|||
typedef int64_t AAX_CTransportCounter; //!< Offset of samples from transport start. Same as TimeOfDay, but added for new interfaces as TimeOfDay is a confusing name.
|
||||
typedef float AAX_CSampleRate; //!< Literal sample rate value used by the \ref AAX_IComponentDescriptor::AddSampleRate() "sample rate field". For \ref AAX_eProperty_SampleRate, use a mask of \ref AAX_ESampleRateMask. \sa sampleRateInMask
|
||||
|
||||
typedef uint32_t AAX_CTypeID; //!< Matches type of OSType used in classic plugins.
|
||||
typedef uint32_t AAX_CTypeID; //!< Matches type of OSType used in classic plugins. All type IDs with prefix 'AX', i.e. <tt>0x4158____</tt>, are reserved for Avid.
|
||||
AAX_CONSTEXPR AAX_CTypeID kAAX_TypeID_Undefined = 0; //!< Undefined type ID. This value must not be used for properties requiring a \ref AAX_CTypeID
|
||||
typedef int32_t AAX_Result;
|
||||
typedef int32_t AAX_CPropertyValue; //!< \brief 32-bit property values \details Use this property value type for all properties unless otherwise specified by the property documentation
|
||||
typedef int64_t AAX_CPropertyValue64; //!< \brief 64-bit property values \details Do not use this value type unless specified explicitly in the property documentation
|
||||
|
|
@ -362,6 +326,12 @@ typedef AAX_CSelector AAX_CMeterID; //!< \todo Not used by %AAX plug-ins
|
|||
typedef const char * AAX_CParamID; //!< Parameter identifier \note While this is a string, it must be less than 32 characters in length. (strlen of 31 or less) \sa \ref kAAX_ParameterIdentifierMaxSize
|
||||
typedef AAX_CParamID AAX_CPageTableParamID; //!< \brief Parameter identifier used in a page table \details May be a parameter ID or a parameter name string depending on the page table formatting. Must be less than 32 characters in length (strlen of 31 or less.) \sa \ref subsection_parameter_identifiers in the \ref AAX_Page_Table_Guide
|
||||
typedef const char * AAX_CEffectID; //!< URL-style Effect identifier. Must be unique among all registered effects in the collection.
|
||||
typedef uint32_t AAX_CInstanceID; //!< Identifier for a plug-in instance
|
||||
AAX_CONSTEXPR AAX_CInstanceID kAAX_InstanceID_Undefined = 0xFFFFFFFF; //!< Undefined instance ID
|
||||
typedef uint64_t AAX_CInstanceGroupID; //!< Identifier for a group of instances
|
||||
AAX_CONSTEXPR AAX_CInstanceGroupID kAAX_InstanceGroupID_Undefined = 0; //!< Undefined instance group ID; instances with this ID have undefined grouping or the host does not support group identification
|
||||
typedef uint64_t AAX_CTaskID; //!< Identifier for a task instance
|
||||
AAX_CONSTEXPR AAX_CTaskID kAAX_TaskID_Undefined = 0; //!< Undefined task ID
|
||||
|
||||
// Forward declarations required for AAX_Feature_UID typedef (the "real" typedef is in AAX_UIDs.h)
|
||||
struct _acfUID;
|
||||
|
|
@ -392,21 +362,6 @@ static const AAX_CTimestamp kAAX_Never = (AAX_CTimestamp) ~0ULL;
|
|||
#endif
|
||||
|
||||
|
||||
/**
|
||||
|
||||
\todo Not used by %AAX plug-ins - remove?
|
||||
|
||||
*/
|
||||
static
|
||||
inline
|
||||
int32_t
|
||||
AAX_GetStemFormatChannelCount (
|
||||
AAX_EStemFormat inStemFormat)
|
||||
{
|
||||
return AAX_STEM_FORMAT_CHANNEL_COUNT (inStemFormat);
|
||||
}
|
||||
|
||||
|
||||
/*! \brief %AAX algorithm audio input port data type
|
||||
*
|
||||
* \details
|
||||
|
|
@ -444,60 +399,6 @@ typedef float * const * AAX_CAudioOutPort;
|
|||
typedef float * const AAX_CMeterPort;
|
||||
|
||||
|
||||
/*! \brief Determines whether a particular \ref AAX_CSampleRate is present
|
||||
in a given mask of \ref AAX_ESampleRateMask.
|
||||
|
||||
\details
|
||||
\sa kAAX_Property_SampleRate
|
||||
*/
|
||||
inline AAX_CBoolean sampleRateInMask(AAX_CSampleRate inSR, uint32_t iMask)
|
||||
{
|
||||
return static_cast<AAX_CBoolean>(
|
||||
(44100.0 == inSR) ? ((iMask & AAX_eSampleRateMask_44100) != 0) :
|
||||
(48000.0 == inSR) ? ((iMask & AAX_eSampleRateMask_48000) != 0) :
|
||||
(88200.0 == inSR) ? ((iMask & AAX_eSampleRateMask_88200) != 0) :
|
||||
(96000.0 == inSR) ? ((iMask & AAX_eSampleRateMask_96000) != 0) :
|
||||
(176400.0 == inSR) ? ((iMask & AAX_eSampleRateMask_176400) != 0) :
|
||||
(192000.0 == inSR) ? ((iMask & AAX_eSampleRateMask_192000) != 0) : false
|
||||
);
|
||||
}
|
||||
|
||||
/*! \brief Converts from a mask of \ref AAX_ESampleRateMask to the lowest
|
||||
supported \ref AAX_CSampleRate value in Hz
|
||||
|
||||
*/
|
||||
inline AAX_CSampleRate getLowestSampleRateInMask(uint32_t iMask)
|
||||
{
|
||||
return (
|
||||
((iMask & AAX_eSampleRateMask_44100) != 0) ? 44100.0f : // AAX_eSamplRateMask_All returns 44100
|
||||
((iMask & AAX_eSampleRateMask_48000) != 0) ? 48000.0f :
|
||||
((iMask & AAX_eSampleRateMask_88200) != 0) ? 88200.0f :
|
||||
((iMask & AAX_eSampleRateMask_96000) != 0) ? 96000.0f :
|
||||
((iMask & AAX_eSampleRateMask_176400) != 0) ? 176400.0f :
|
||||
((iMask & AAX_eSampleRateMask_192000) != 0) ? 192000.0f : 0.0f
|
||||
);
|
||||
}
|
||||
|
||||
/*! \brief Returns the \ref AAX_ESampleRateMask selector for a literal
|
||||
sample rate.
|
||||
|
||||
The given rate must be an exact match with one of the available
|
||||
selectors. If no exact match is found then
|
||||
\ref AAX_eSampleRateMask_No is returned.
|
||||
*/
|
||||
inline uint32_t getMaskForSampleRate(float inSR)
|
||||
{
|
||||
return (
|
||||
(44100.0 == inSR) ? AAX_eSampleRateMask_44100 :
|
||||
(48000.0 == inSR) ? AAX_eSampleRateMask_48000 :
|
||||
(88200.0 == inSR) ? AAX_eSampleRateMask_88200 :
|
||||
(96000.0 == inSR) ? AAX_eSampleRateMask_96000 :
|
||||
(176400.0 == inSR) ? AAX_eSampleRateMask_176400 :
|
||||
(192000.0 == inSR) ? AAX_eSampleRateMask_192000 : AAX_eSampleRateMask_No
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
#ifndef _TMS320C6X
|
||||
|
||||
#include AAX_ALIGN_FILE_BEGIN
|
||||
|
|
@ -567,7 +468,19 @@ struct AAX_SPlugInIdentifierTriad {
|
|||
AAX_CTypeID mManufacturerID; ///< The Plug-In's manufacturer ID
|
||||
AAX_CTypeID mProductID; ///< The Plug-In's product (Effect) ID
|
||||
AAX_CTypeID mPlugInID; ///< The ID of a specific type in the product (Effect)
|
||||
|
||||
bool IsUndefined() const
|
||||
{
|
||||
return mManufacturerID == kAAX_TypeID_Undefined
|
||||
&& mProductID == kAAX_TypeID_Undefined
|
||||
&& mPlugInID == kAAX_TypeID_Undefined;
|
||||
}
|
||||
bool IsSameProduct(const AAX_SPlugInIdentifierTriad& inRHS) const
|
||||
{
|
||||
return mManufacturerID == inRHS.mManufacturerID && mProductID == inRHS.mProductID;
|
||||
}
|
||||
};
|
||||
|
||||
typedef struct AAX_SPlugInIdentifierTriad AAX_SPlugInIdentifierTriad, *AAX_SPlugInIdentifierTriadPtr;
|
||||
|
||||
#ifndef _TMS320C6X
|
||||
|
|
@ -620,6 +533,32 @@ static inline bool operator<=(const AAX_SPlugInIdentifierTriad & lhs, const AAX_
|
|||
{
|
||||
return false == operator>(lhs, rhs);
|
||||
}
|
||||
|
||||
struct AAX_SPlugInIdentifierHash
|
||||
{
|
||||
size_t operator()(const AAX_SPlugInIdentifierTriad& inPIDef) const
|
||||
{
|
||||
size_t const h1 = std::hash<AAX_CTypeID>{}(inPIDef.mManufacturerID);
|
||||
size_t const h2 = std::hash<AAX_CTypeID>{}(inPIDef.mProductID);
|
||||
size_t const h3 = std::hash<AAX_CTypeID>{}(inPIDef.mPlugInID);
|
||||
return std::hash<uint64_t>{}(h1 ^ (h2 << 1) ^ (h3 << 2)); // Combine the hashes
|
||||
}
|
||||
};
|
||||
|
||||
struct AAX_SPlugInIdentifierTriadProductHash
|
||||
{
|
||||
size_t operator()(const AAX_SPlugInIdentifierTriad& inPIDef) const
|
||||
{
|
||||
return std::hash<uint64_t>{}( (static_cast<uint64_t>(inPIDef.mManufacturerID) << 32) + inPIDef.mProductID );
|
||||
}
|
||||
};
|
||||
|
||||
struct AAX_SPlugInIdentifierTriadProductEqual
|
||||
{
|
||||
bool operator()(const AAX_SPlugInIdentifierTriad& lhs, const AAX_SPlugInIdentifierTriad& rhs) const { return lhs.IsSameProduct(rhs); }
|
||||
};
|
||||
|
||||
|
||||
#endif //TI_VERSION
|
||||
|
||||
|
||||
|
|
@ -690,6 +629,19 @@ struct AAX_CMidiStream
|
|||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
// DEPRECATED: Client code should include these headers where needed. They will be removed from AAX.h in future.
|
||||
#ifndef AAX_SDK__AAX_H_INCLUDES_ADDITIONAL_HEADERS
|
||||
#define AAX_SDK__AAX_H_INCLUDES_ADDITIONAL_HEADERS 1
|
||||
#endif
|
||||
|
||||
#if AAX_SDK__AAX_H_INCLUDES_ADDITIONAL_HEADERS
|
||||
#include "AAX_Version.h"
|
||||
#include "AAX_Enums.h"
|
||||
#include "AAX_Errors.h"
|
||||
#include "AAX_Properties.h"
|
||||
#endif
|
||||
|
||||
/// @cond ignore
|
||||
#endif // #ifndef _AAX_H_
|
||||
/// @endcond
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
#include "AAX_IDataBuffer.h"
|
||||
#include "AAX.h"
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <limits>
|
||||
#include <type_traits>
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@
|
|||
This display delegate converts a parameter value to one of two provided strings (e.g.
|
||||
"True" and "False".)
|
||||
|
||||
\ingroup DisplayDelegates
|
||||
\ingroup AAXLibraryFeatures_ParameterManager_DisplayDelegates
|
||||
|
||||
*/
|
||||
template <typename T>
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
When this taper is constructed with a bool template type, its normalized values are
|
||||
automatically typecast to the proper boolean value.
|
||||
|
||||
\ingroup TaperDelegates
|
||||
\ingroup AAXLibraryFeatures_ParameterManager_TaperDelegates
|
||||
|
||||
*/
|
||||
template <typename T>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2019, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -100,6 +100,10 @@ public: ////////////////////////////////////////////////////////////////////////
|
|||
{
|
||||
return AAX_SUCCESS;
|
||||
}
|
||||
AAX_Result GetMinimumViewSize (AAX_Point * /* oMinimumViewSize */ ) const AAX_OVERRIDE
|
||||
{
|
||||
return AAX_SUCCESS;
|
||||
}
|
||||
//@}end View accessors
|
||||
|
||||
/** @name GUI update methods
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@
|
|||
|
||||
Rounding will be disabled if RealPrecision is set to a value less than 1. This is the default.
|
||||
|
||||
\ingroup TaperDelegates
|
||||
\ingroup AAXLibraryFeatures_ParameterManager_TaperDelegates
|
||||
|
||||
*/
|
||||
template <typename T, int32_t RealPrecision=0>
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@
|
|||
|
||||
Rounding will be disabled if RealPrecision is set to a value less than 1
|
||||
|
||||
\ingroup TaperDelegates
|
||||
\ingroup AAXLibraryFeatures_ParameterManager_TaperDelegates
|
||||
|
||||
*/
|
||||
template <typename T, int32_t RealPrecision=1000>
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
This display delegate converts a parameter value to a numeric string using a specified
|
||||
precision.
|
||||
|
||||
\ingroup DisplayDelegates
|
||||
\ingroup AAXLibraryFeatures_ParameterManager_DisplayDelegates
|
||||
|
||||
*/
|
||||
template <typename T, uint32_t Precision=2, uint32_t SpaceAfter=0>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -35,9 +35,10 @@
|
|||
#ifndef AAX_CPACKETDISPATCHER_H
|
||||
#define AAX_CPACKETDISPATCHER_H
|
||||
|
||||
#include "AAX.h"
|
||||
#include "AAX_IController.h"
|
||||
#include "AAX_CMutex.h"
|
||||
#include "AAX_Errors.h"
|
||||
#include "AAX.h"
|
||||
|
||||
#include <string>
|
||||
#include <map>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2019, 2021, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019, 2021, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -291,7 +291,13 @@ public:
|
|||
*
|
||||
*
|
||||
*/
|
||||
AAX_CParameter(AAX_CParamID identifier, const AAX_IString& name, T defaultValue, const AAX_ITaperDelegate<T>& taperDelegate, const AAX_IDisplayDelegate<T>& displayDelegate, bool automatable=false);
|
||||
AAX_CParameter(
|
||||
AAX_CParamID identifier,
|
||||
const AAX_IString& name,
|
||||
T defaultValue,
|
||||
const AAX_ITaperDelegate<T>& taperDelegate,
|
||||
const AAX_IDisplayDelegate<T>& displayDelegate,
|
||||
bool automatable=false);
|
||||
|
||||
/*!
|
||||
* \brief Constructs an \ref AAX_CParameter object using the specified taper and display delegates.
|
||||
|
|
@ -299,7 +305,13 @@ public:
|
|||
* This constructor uses an \ref AAX_IString for the parameter identifier, which can be a more
|
||||
* flexible solution for some plug-ins.
|
||||
*/
|
||||
AAX_CParameter(const AAX_IString& identifier, const AAX_IString& name, T defaultValue, const AAX_ITaperDelegate<T>& taperDelegate, const AAX_IDisplayDelegate<T>& displayDelegate, bool automatable=false);
|
||||
AAX_CParameter(
|
||||
const AAX_IString& identifier,
|
||||
const AAX_IString& name,
|
||||
T defaultValue,
|
||||
const AAX_ITaperDelegate<T>& taperDelegate,
|
||||
const AAX_IDisplayDelegate<T>& displayDelegate,
|
||||
bool automatable=false);
|
||||
|
||||
/*!
|
||||
* \brief Constructs an \ref AAX_CParameter object with no delegates
|
||||
|
|
@ -310,7 +322,11 @@ public:
|
|||
* - \sa \ref AAX_CParameter::SetTaperDelegate()
|
||||
* - \sa \ref AAX_CParameter::SetDisplayDelegate()
|
||||
*/
|
||||
AAX_CParameter(const AAX_IString& identifier, const AAX_IString& name, T defaultValue, bool automatable=false);
|
||||
AAX_CParameter(
|
||||
const AAX_IString& identifier,
|
||||
const AAX_IString& name,
|
||||
T defaultValue,
|
||||
bool automatable=false);
|
||||
|
||||
/*!
|
||||
* \brief Constructs an \ref AAX_CParameter object with no delegates or default value
|
||||
|
|
@ -322,7 +338,10 @@ public:
|
|||
* - \sa \ref AAX_CParameter::SetTaperDelegate()
|
||||
* - \sa \ref AAX_CParameter::SetDisplayDelegate()
|
||||
*/
|
||||
AAX_CParameter(const AAX_IString& identifier, const AAX_IString& name, bool automatable=false);
|
||||
AAX_CParameter(
|
||||
const AAX_IString& identifier,
|
||||
const AAX_IString& name,
|
||||
bool automatable=false);
|
||||
|
||||
/** Move constructor and move assignment operator are allowed */
|
||||
AAX_DEFAULT_MOVE_CTOR(AAX_CParameter);
|
||||
|
|
@ -504,7 +523,13 @@ private:
|
|||
////// AAX_CParameter Template Definition ///////
|
||||
|
||||
template <typename T>
|
||||
AAX_CParameter<T>::AAX_CParameter(AAX_CParamID identifier, const AAX_IString& name, T defaultValue, const AAX_ITaperDelegate<T>& taperDelegate, const AAX_IDisplayDelegate<T>& displayDelegate, bool automatable)
|
||||
AAX_CParameter<T>::AAX_CParameter(
|
||||
AAX_CParamID identifier,
|
||||
const AAX_IString& name,
|
||||
T defaultValue,
|
||||
const AAX_ITaperDelegate<T>& taperDelegate,
|
||||
const AAX_IDisplayDelegate<T>& displayDelegate,
|
||||
bool automatable)
|
||||
: mNames(name)
|
||||
, mAutomatable(automatable)
|
||||
, mNumSteps(0) // Default set below for discrete/continuous
|
||||
|
|
@ -522,7 +547,13 @@ AAX_CParameter<T>::AAX_CParameter(AAX_CParamID identifier, const AAX_IString& na
|
|||
}
|
||||
|
||||
template <typename T>
|
||||
AAX_CParameter<T>::AAX_CParameter(const AAX_IString& identifier, const AAX_IString& name, T defaultValue, const AAX_ITaperDelegate<T>& taperDelegate, const AAX_IDisplayDelegate<T>& displayDelegate, bool automatable)
|
||||
AAX_CParameter<T>::AAX_CParameter(
|
||||
const AAX_IString& identifier,
|
||||
const AAX_IString& name,
|
||||
T defaultValue,
|
||||
const AAX_ITaperDelegate<T>& taperDelegate,
|
||||
const AAX_IDisplayDelegate<T>& displayDelegate,
|
||||
bool automatable)
|
||||
: mNames(name)
|
||||
, mAutomatable(automatable)
|
||||
, mNumSteps(0) // Default set below for discrete/continuous
|
||||
|
|
@ -540,7 +571,11 @@ AAX_CParameter<T>::AAX_CParameter(const AAX_IString& identifier, const AAX_IStri
|
|||
}
|
||||
|
||||
template <typename T>
|
||||
AAX_CParameter<T>::AAX_CParameter(const AAX_IString& identifier, const AAX_IString& name, T defaultValue, bool automatable)
|
||||
AAX_CParameter<T>::AAX_CParameter(
|
||||
const AAX_IString& identifier,
|
||||
const AAX_IString& name,
|
||||
T defaultValue,
|
||||
bool automatable)
|
||||
: mNames(name)
|
||||
, mAutomatable(automatable)
|
||||
, mNumSteps(0)
|
||||
|
|
@ -554,11 +589,14 @@ AAX_CParameter<T>::AAX_CParameter(const AAX_IString& identifier, const AAX_IStri
|
|||
, mDefaultValue(defaultValue)
|
||||
{
|
||||
this->InitializeNumberOfSteps();
|
||||
this->SetToDefaultValue();
|
||||
// set to default value occurs when the taper delegate is set
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
AAX_CParameter<T>::AAX_CParameter(const AAX_IString& identifier, const AAX_IString& name, bool automatable)
|
||||
AAX_CParameter<T>::AAX_CParameter(
|
||||
const AAX_IString& identifier,
|
||||
const AAX_IString& name,
|
||||
bool automatable)
|
||||
: mNames(name)
|
||||
, mAutomatable(automatable)
|
||||
, mNumSteps(0)
|
||||
|
|
@ -572,7 +610,7 @@ AAX_CParameter<T>::AAX_CParameter(const AAX_IString& identifier, const AAX_IStri
|
|||
, mDefaultValue()
|
||||
{
|
||||
this->InitializeNumberOfSteps();
|
||||
this->SetToDefaultValue(); // WARNING: uninitialized default value
|
||||
// set to default value occurs when the taper delegate is set
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
|
@ -581,10 +619,15 @@ AAX_CParameter<T>::~AAX_CParameter()
|
|||
//Make sure to remove any registration with the token system.
|
||||
SetAutomationDelegate(0);
|
||||
|
||||
delete mTaperDelegate;
|
||||
mTaperDelegate = 0;
|
||||
delete mDisplayDelegate;
|
||||
mDisplayDelegate = 0;
|
||||
if (mTaperDelegate) {
|
||||
delete mTaperDelegate;
|
||||
mTaperDelegate = 0;
|
||||
}
|
||||
|
||||
if (mDisplayDelegate) {
|
||||
delete mDisplayDelegate;
|
||||
mDisplayDelegate = 0;
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
|
@ -637,6 +680,10 @@ void AAX_CParameter<T>::ClearShortenedNames()
|
|||
template<typename T>
|
||||
void AAX_CParameter<T>::SetValue( T newValue )
|
||||
{
|
||||
if (!mTaperDelegate) {
|
||||
return;
|
||||
}
|
||||
|
||||
double newNormalizedValue = mTaperDelegate->RealToNormalized(newValue);
|
||||
|
||||
// <DMT> Always go through the automation delegate even if the control isn't automatable to prevent fighting with other GUIs.
|
||||
|
|
@ -669,6 +716,10 @@ void AAX_CParameter<T>::SetValue( T newValue )
|
|||
template <typename T>
|
||||
void AAX_CParameter<T>::UpdateNormalizedValue(double newNormalizedValue)
|
||||
{
|
||||
if (!mTaperDelegate) {
|
||||
return;
|
||||
}
|
||||
|
||||
T newValue = mTaperDelegate->NormalizedToReal(newNormalizedValue);
|
||||
if (mNeedNotify || (mValue.Get() != newValue))
|
||||
{
|
||||
|
|
@ -811,22 +862,25 @@ bool AAX_CParameter<AAX_CString>::SetValueWithString(const AAX_IString& value);
|
|||
template<typename T>
|
||||
void AAX_CParameter<T>::SetNormalizedDefaultValue(double newNormalizedDefault)
|
||||
{
|
||||
T newDefaultValue = mTaperDelegate->NormalizedToReal(newNormalizedDefault);
|
||||
SetDefaultValue(newDefaultValue);
|
||||
if (mTaperDelegate) {
|
||||
T newDefaultValue = mTaperDelegate->NormalizedToReal(newNormalizedDefault);
|
||||
SetDefaultValue(newDefaultValue);
|
||||
}
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
double AAX_CParameter<T>::GetNormalizedDefaultValue() const
|
||||
{
|
||||
double normalizedDefault = mTaperDelegate->RealToNormalized(mDefaultValue);
|
||||
return normalizedDefault;
|
||||
return mTaperDelegate ? mTaperDelegate->RealToNormalized(mDefaultValue) : 0.f;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
void AAX_CParameter<T>::SetDefaultValue(T newDefaultValue)
|
||||
{
|
||||
newDefaultValue = mTaperDelegate->ConstrainRealValue(newDefaultValue);
|
||||
mDefaultValue = newDefaultValue;
|
||||
if (mTaperDelegate) {
|
||||
newDefaultValue = mTaperDelegate->ConstrainRealValue(newDefaultValue);
|
||||
mDefaultValue = newDefaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
|
|
@ -934,28 +988,31 @@ AAX_EParameterOrientation AAX_CParameter<T>::GetOrientation() const
|
|||
template<typename T>
|
||||
void AAX_CParameter<T>::SetNormalizedValue(double normalizedNewValue)
|
||||
{
|
||||
T newValue = mTaperDelegate->NormalizedToReal(normalizedNewValue);
|
||||
this->SetValue(newValue);
|
||||
if (mTaperDelegate)
|
||||
{
|
||||
T newValue = mTaperDelegate->NormalizedToReal(normalizedNewValue);
|
||||
this->SetValue(newValue);
|
||||
}
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
double AAX_CParameter<T>::GetNormalizedValue() const
|
||||
{
|
||||
T val = GetValue();
|
||||
return mTaperDelegate->RealToNormalized(val);
|
||||
}
|
||||
return mTaperDelegate ? mTaperDelegate->RealToNormalized(val) : 0.;
|
||||
}
|
||||
|
||||
|
||||
template<typename T>
|
||||
bool AAX_CParameter<T>::GetValueString(AAX_CString* valueString) const
|
||||
{
|
||||
return mDisplayDelegate->ValueToString(this->GetValue(), valueString);
|
||||
return mDisplayDelegate ? mDisplayDelegate->ValueToString(this->GetValue(), valueString) : false;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
bool AAX_CParameter<T>::GetValueString(int32_t /*iMaxNumChars*/, AAX_CString* valueString) const
|
||||
{
|
||||
return mDisplayDelegate->ValueToString(this->GetValue(), valueString);
|
||||
return mDisplayDelegate ? mDisplayDelegate->ValueToString(this->GetValue(), valueString) : false;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
|
@ -993,6 +1050,10 @@ bool AAX_CParameter<double>::GetNormalizedValueFromDouble(double value, double *
|
|||
template <typename T>
|
||||
bool AAX_CParameter<T>::GetNormalizedValueFromString(const AAX_CString& valueString, double *normalizedValue) const
|
||||
{
|
||||
if (!mDisplayDelegate || !mTaperDelegate) {
|
||||
return false;
|
||||
}
|
||||
|
||||
//First, convert the string to a value using the wrapped parameter's display delegate.
|
||||
T value;
|
||||
if (!mDisplayDelegate->StringToValue(valueString, &value))
|
||||
|
|
@ -1040,6 +1101,10 @@ bool AAX_CParameter<double>::GetDoubleFromNormalizedValue(double inNormalizedVa
|
|||
template <typename T>
|
||||
bool AAX_CParameter<T>::GetStringFromNormalizedValue(double normalizedValue, AAX_CString& valueString) const
|
||||
{
|
||||
if (!mTaperDelegate || !mDisplayDelegate) {
|
||||
return false;
|
||||
}
|
||||
|
||||
T value = mTaperDelegate->NormalizedToReal(normalizedValue);
|
||||
if (!mDisplayDelegate->ValueToString(value, &valueString))
|
||||
return false;
|
||||
|
|
@ -1053,6 +1118,10 @@ bool AAX_CParameter<T>::GetStringFromNormalizedValue(double normalizedValue, AAX
|
|||
template <typename T>
|
||||
bool AAX_CParameter<T>::GetStringFromNormalizedValue(double normalizedValue, int32_t iMaxNumChars, AAX_CString& valueString) const
|
||||
{
|
||||
if (!mTaperDelegate || !mDisplayDelegate) {
|
||||
return false;
|
||||
}
|
||||
|
||||
T value = mTaperDelegate->NormalizedToReal(normalizedValue);
|
||||
if (!mDisplayDelegate->ValueToString(value, iMaxNumChars, &valueString))
|
||||
return false;
|
||||
|
|
@ -1065,7 +1134,11 @@ bool AAX_CParameter<T>::GetStringFromNormalizedValue(double normalizedValue, int
|
|||
|
||||
template<typename T>
|
||||
bool AAX_CParameter<T>::SetValueFromString(const AAX_CString& newValueString)
|
||||
{
|
||||
{
|
||||
if (!mDisplayDelegate) {
|
||||
return false;
|
||||
}
|
||||
|
||||
T newValue;
|
||||
if (!mDisplayDelegate->StringToValue(newValueString, &newValue))
|
||||
return false;
|
||||
|
|
@ -1076,16 +1149,28 @@ bool AAX_CParameter<T>::SetValueFromString(const AAX_CString& newValueString)
|
|||
template<typename T>
|
||||
void AAX_CParameter<T>::SetTaperDelegate(AAX_ITaperDelegateBase& inTaperDelegate,bool inPreserveValue)
|
||||
{
|
||||
double normalizeValue = this->GetNormalizedValue ();
|
||||
// if the object was created without a taper delegate then its default value has not been set
|
||||
bool const setToDefault = (nullptr == mTaperDelegate);
|
||||
|
||||
double const normalizedValue = mTaperDelegate ? this->GetNormalizedValue () : 0.f;
|
||||
|
||||
AAX_ITaperDelegate<T>* oldDelegate = mTaperDelegate;
|
||||
mTaperDelegate = ((AAX_ITaperDelegate<T> &) inTaperDelegate).Clone();
|
||||
delete oldDelegate;
|
||||
|
||||
if (oldDelegate) {
|
||||
delete oldDelegate;
|
||||
}
|
||||
|
||||
mNeedNotify = true;
|
||||
if ( inPreserveValue )
|
||||
if ( setToDefault ) {
|
||||
this->SetToDefaultValue();
|
||||
}
|
||||
else if ( inPreserveValue ) {
|
||||
this->SetValue ( mValue.Get() );
|
||||
else this->UpdateNormalizedValue ( normalizeValue );
|
||||
}
|
||||
else {
|
||||
this->UpdateNormalizedValue ( normalizedValue );
|
||||
}
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
|
|
@ -1093,7 +1178,9 @@ void AAX_CParameter<T>::SetDisplayDelegate(AAX_IDisplayDelegateBase& inDisplayDe
|
|||
{
|
||||
AAX_IDisplayDelegate<T>* oldDelegate = mDisplayDelegate;
|
||||
mDisplayDelegate = ((AAX_IDisplayDelegate<T> &)inDisplayDelegate).Clone();
|
||||
delete oldDelegate;
|
||||
if (oldDelegate) {
|
||||
delete oldDelegate;
|
||||
}
|
||||
|
||||
if (mAutomationDelegate != 0)
|
||||
mAutomationDelegate->PostCurrentValue(this->Identifier(), this->GetNormalizedValue()); //<DMT> Make sure GUIs are all notified of the change.
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
|
||||
Rounding will be disabled if RealPrecision is set to a value less than 1
|
||||
|
||||
\ingroup TaperDelegates
|
||||
\ingroup AAXLibraryFeatures_ParameterManager_TaperDelegates
|
||||
*/
|
||||
template <typename T, int32_t RealPrecision=100>
|
||||
class AAX_CPieceWiseLinearTaperDelegate : public AAX_ITaperDelegate<T>
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@
|
|||
|
||||
Rounding will be disabled if RealPrecision is set to a value less than 1
|
||||
|
||||
\ingroup TaperDelegates
|
||||
\ingroup AAXLibraryFeatures_ParameterManager_TaperDelegates
|
||||
|
||||
*/
|
||||
template <typename T, int32_t RealPrecision=1000>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -33,6 +33,7 @@
|
|||
#define AAX_CSessionDocumentClient_H
|
||||
|
||||
#include "AAX_ISessionDocumentClient.h"
|
||||
#include "AAX_Errors.h"
|
||||
#include <memory>
|
||||
|
||||
#ifdef __clang__
|
||||
|
|
@ -85,7 +86,7 @@ public: ////////////////////////////////////////////////////////////////////////
|
|||
/**
|
||||
* \copydoc AAX_IACFSessionDocumentClient::NotificationReceived()
|
||||
*/
|
||||
AAX_Result NotificationReceived(/* AAX_ENotificationEvent */ AAX_CTypeID /*inNotificationType*/, const void * /*inNotificationData*/, uint32_t /*inNotificationDataSize*/) AAX_OVERRIDE { return AAX_SUCCESS; }
|
||||
AAX_Result NotificationReceived(/* AAX_ENotificationEvent */ AAX_CTypeID inNotificationType, const void * inNotificationData, uint32_t inNotificationDataSize) AAX_OVERRIDE { return AAX_SUCCESS; }
|
||||
//@}end %AAX host and plug-in event notification
|
||||
|
||||
protected: ///////////////////////////////////////////////////////////////////////////// AAX_CSessionDocumentClient
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2014-2017, 2019, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2014-2017, 2019, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -38,10 +38,8 @@
|
|||
#include "AAX_IDisplayDelegate.h"
|
||||
#include "AAX_CString.h"
|
||||
|
||||
#include <vector>
|
||||
#if defined(WINDOWS_VERSION) || defined(LINUX_VERSION)
|
||||
#include <algorithm>
|
||||
#endif
|
||||
#include <vector>
|
||||
|
||||
|
||||
|
||||
|
|
@ -51,7 +49,7 @@
|
|||
This display delegate is similar to AAX_CNumberDisplayDelegate, but does not include
|
||||
precision or spacing templatizations.
|
||||
|
||||
\ingroup DisplayDelegates
|
||||
\ingroup AAXLibraryFeatures_ParameterManager_DisplayDelegates
|
||||
|
||||
*/
|
||||
template <typename T>
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
version of AAX_CLinearTaperDelegate without that class' additional RealPrecision
|
||||
templatization.
|
||||
|
||||
\ingroup TaperDelegates
|
||||
\ingroup AAXLibraryFeatures_ParameterManager_TaperDelegates
|
||||
|
||||
*/
|
||||
template <typename T>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -34,6 +34,7 @@
|
|||
#define AAX_CStringDataBuffer_H
|
||||
|
||||
#include "AAX_IDataBuffer.h"
|
||||
#include "AAX_Errors.h"
|
||||
#include "AAX.h"
|
||||
|
||||
#include <string>
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
would then be used as a lookup into this delegate, which would return a string for each
|
||||
valid int value.
|
||||
|
||||
\ingroup DisplayDelegates
|
||||
\ingroup AAXLibraryFeatures_ParameterManager_DisplayDelegates
|
||||
|
||||
*/
|
||||
template <typename T>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -74,11 +74,12 @@ public: ////////////////////////////////////////////////////////////////////////
|
|||
*
|
||||
* \details
|
||||
* Convenience implementation that converts the \ref IACFUnknown
|
||||
* into an \ref AAX_ITask . Implementations should override the
|
||||
* version that provides an \ref AAX_ITask object.
|
||||
* into an \ref AAX_ITask . Implementations should override
|
||||
* \ref ReceiveTask() instead.
|
||||
*/
|
||||
AAX_Result AddTask(IACFUnknown * iTask) AAX_OVERRIDE;
|
||||
AAX_Result CancelAllTasks() AAX_OVERRIDE;
|
||||
AAX_Result CancelTask(AAX_CTaskID iTaskID) AAX_OVERRIDE;
|
||||
//@} Task management
|
||||
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2014-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2014-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -37,6 +37,7 @@
|
|||
#define AAX_CALLBACKS_H_
|
||||
/// @endcond
|
||||
|
||||
#include "AAX_Enums.h"
|
||||
#include "AAX.h"
|
||||
|
||||
// Callback IDs
|
||||
|
|
|
|||
|
|
@ -0,0 +1,60 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
*
|
||||
* The AAX SDK is subject to commercial or open-source licensing.
|
||||
*
|
||||
* By using the AAX SDK, you agree to the terms of both the Avid AAX SDK License
|
||||
* Agreement and Avid Privacy Policy.
|
||||
*
|
||||
* AAX SDK License: https://developer.avid.com/aax
|
||||
* Privacy Policy: https://www.avid.com/legal/privacy-policy-statement
|
||||
*
|
||||
* Or: You may also use this code under the terms of the GPL v3 (see
|
||||
* www.gnu.org/licenses).
|
||||
*
|
||||
* THE AAX SDK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
|
||||
* EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
|
||||
* DISCLAIMED.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file AAX_EnumSizeCheck.h
|
||||
*
|
||||
* \brief Utility for verifying the underlying type size of %AAX enums
|
||||
*
|
||||
*/
|
||||
/*================================================================================================*/
|
||||
|
||||
#ifndef AAX_ENUMSIZECHECK_H
|
||||
#define AAX_ENUMSIZECHECK_H
|
||||
|
||||
#include "AAX_EnvironmentUtilities.h"
|
||||
|
||||
#ifndef _TMS320C6X
|
||||
#include <cstdint>
|
||||
#endif
|
||||
|
||||
/** @def AAX_ENUM_SIZE_CHECK
|
||||
@brief Macro to ensure enum type consistency across binaries
|
||||
|
||||
Verifies that the underlying type for checked %AAX enums is always 4 bytes.
|
||||
*/
|
||||
|
||||
#ifndef _TMS320C6X
|
||||
#if defined(AAX_CPP11_SUPPORT)
|
||||
#define AAX_ENUM_SIZE_CHECK(x) static_assert(sizeof(x) == sizeof(uint32_t), "Enum size check failed for " #x)
|
||||
#else
|
||||
// force a compiler error if the size is not 4 bytes
|
||||
#define AAX_ENUM_SIZE_CHECK(x) extern int __enumSizeCheck[ 2*(sizeof(uint32_t)==sizeof(x)) - 1]
|
||||
#endif
|
||||
#else
|
||||
#define AAX_ENUM_SIZE_CHECK(x)
|
||||
#endif
|
||||
|
||||
#endif // AAX_ENUMSIZECHECK_H
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2019-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -37,6 +37,8 @@
|
|||
#define AAX_ENUMS_H
|
||||
/// @endcond
|
||||
|
||||
#include "AAX_EnumSizeCheck.h"
|
||||
#include "AAX.h"
|
||||
#include <stdint.h>
|
||||
|
||||
#define AAX_INT32_MIN (-2147483647 - 1) /** minimum signed 32 bit value */
|
||||
|
|
@ -48,13 +50,7 @@
|
|||
#define AAX_UINT16_MIN 0U /** minimum unsigned 16 bit value */
|
||||
#define AAX_UINT16_MAX 65535U /** maximum unsigned 16 bit value */
|
||||
|
||||
/** \brief Macro to ensure enum type consistency across binaries
|
||||
*/
|
||||
#ifndef _TMS320C6X
|
||||
#define AAX_ENUM_SIZE_CHECK(x) extern int __enumSizeCheck[ 2*(sizeof(uint32_t)==sizeof(x)) - 1]
|
||||
#else
|
||||
#define AAX_ENUM_SIZE_CHECK(x)
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
//******************************************************************
|
||||
|
|
@ -209,6 +205,16 @@ enum AAX_EMaxAudioSuiteTracks
|
|||
AAX_eMaxAudioSuiteTracks = 48
|
||||
}; AAX_ENUM_SIZE_CHECK( AAX_EMaxAudioSuiteTracks );
|
||||
|
||||
/** @def AAX_STEM_FORMAT
|
||||
@brief Defines an \ref AAX_EStemFormat value for a stem format using the format's unique index and its channel count
|
||||
*/
|
||||
/** @def AAX_STEM_FORMAT_CHANNEL_COUNT
|
||||
@brief Get the channel count from an \ref AAX_EStemFormat value
|
||||
*/
|
||||
/** @def AAX_STEM_FORMAT_INDEX
|
||||
@brief Get the unique index from an \ref AAX_EStemFormat value
|
||||
*/
|
||||
|
||||
// The channel count ternary here will issue a warning due to a
|
||||
// signed/unsigned mismatch if anyone tries to create an
|
||||
// AAX_STEM_FORMAT definition with a negative channel count.
|
||||
|
|
@ -243,6 +249,7 @@ enum AAX_EStemFormat
|
|||
{
|
||||
// Point source stem formats
|
||||
AAX_eStemFormat_Mono = AAX_STEM_FORMAT ( 0, 1 ), ///< M
|
||||
AAX_eStemFormat_DummyConnection = AAX_eStemFormat_Mono,
|
||||
AAX_eStemFormat_Stereo = AAX_STEM_FORMAT ( 1, 2 ), ///< L R
|
||||
AAX_eStemFormat_LCR = AAX_STEM_FORMAT ( 2, 3 ), ///< L C R
|
||||
AAX_eStemFormat_LCRS = AAX_STEM_FORMAT ( 3, 4 ), ///< L C R S
|
||||
|
|
@ -290,6 +297,18 @@ enum AAX_EStemFormat
|
|||
AAX_eStemFormat_INT32_MAX = AAX_INT32_MAX
|
||||
}; AAX_ENUM_SIZE_CHECK( AAX_EStemFormat );
|
||||
|
||||
/** \brief Function wrapper for the \ref AAX_STEM_FORMAT_CHANNEL_COUNT macro
|
||||
|
||||
*/
|
||||
static
|
||||
inline
|
||||
int32_t
|
||||
AAX_GetStemFormatChannelCount (
|
||||
AAX_EStemFormat inStemFormat)
|
||||
{
|
||||
return AAX_STEM_FORMAT_CHANNEL_COUNT (inStemFormat);
|
||||
}
|
||||
|
||||
/** @brief Effect category definitions
|
||||
|
||||
@details
|
||||
|
|
@ -303,7 +322,9 @@ enum AAX_EStemFormat
|
|||
|
||||
\note The host may handle plug-ins with different categories in different manners, e.g.
|
||||
replacing "analyze" with "reverse" for offline processing of delays and reverbs.
|
||||
|
||||
|
||||
\sa \ref AAX_EPlugInRole
|
||||
|
||||
*/
|
||||
enum AAX_EPlugInCategory
|
||||
{
|
||||
|
|
@ -321,7 +342,8 @@ enum AAX_EPlugInCategory
|
|||
AAX_ePlugInCategory_HWGenerators = 0x00000400, ///< Fixed hardware audio sources such as SampleCell
|
||||
AAX_ePlugInCategory_SWGenerators = 0x00000800, ///< Virtual instruments, metronomes, and other software audio sources
|
||||
AAX_ePlugInCategory_WrappedPlugin = 0x00001000, ///< All plug-ins wrapped by a thrid party wrapper (i.e. VST to RTAS wrapper), except for VI plug-ins which should be mapped to AAX_PlugInCategory_SWGenerators
|
||||
AAX_EPlugInCategory_Effect = 0x00002000, ///< Special effects
|
||||
AAX_ePlugInCategory_Effect = 0x00002000, ///< Special effects
|
||||
AAX_EPlugInCategory_Effect = AAX_ePlugInCategory_Effect, ///< \deprecated Use AAX_ePlugInCategory_Effect instead
|
||||
|
||||
// HACK: 32-bit hosts do not have support for AAX_ePlugInCategory_Example
|
||||
#if ( defined(_WIN64) || defined(__LP64__) )
|
||||
|
|
@ -330,11 +352,35 @@ enum AAX_EPlugInCategory
|
|||
AAX_ePlugInCategory_Example = AAX_EPlugInCategory_Effect,
|
||||
#endif
|
||||
|
||||
AAX_EPlugInCategory_MIDIEffect = 0x00010000, ///< MIDI effects
|
||||
AAX_ePlugInCategory_MIDIEffect = 0x00010000, ///< MIDI effects
|
||||
AAX_EPlugInCategory_MIDIEffect = AAX_ePlugInCategory_MIDIEffect, ///< \deprecated Use AAX_ePlugInCategory_MIDIEffect instead
|
||||
|
||||
|
||||
AAX_ePlugInCategory_INT32_MAX = AAX_INT32_MAX
|
||||
}; AAX_ENUM_SIZE_CHECK( AAX_EPlugInCategory );
|
||||
|
||||
#define AAX_DEFINE_ROLE_BITS(role_nibble) (role_nibble << 28)
|
||||
#define AAX_GET_ROLE_BITS(category_bits) (category_bits & 0xF0000000)
|
||||
#define AAX_IS_ROLE(category_bits, role) (role == (category_bits & 0xF0000000))
|
||||
|
||||
/** @brief Effect role definitions
|
||||
|
||||
@details
|
||||
Used with \ref AAX_IEffectDescriptor::SetRole() to define the role of an Effect.
|
||||
|
||||
Roles are special categories that are defined using the upper four bits of an
|
||||
\ref AAX_EPlugInCategory value. Unlike categories, roles are mutually exclusive
|
||||
and the full four bits are checked for equality, rather than as a bitfield.
|
||||
The category (lower) bits are only used if the role bits are equal to
|
||||
\ref AAX_ePlugInRole_InsertOrAudioSuite.
|
||||
|
||||
\sa \ref AAX_EPlugInCategory
|
||||
|
||||
*/
|
||||
enum AAX_EPlugInRole
|
||||
{
|
||||
AAX_ePlugInRole_InsertOrAudioSuite = AAX_DEFINE_ROLE_BITS(0x0), ///< Insert or AudioSuite (default role)
|
||||
}; AAX_ENUM_SIZE_CHECK( AAX_EPlugInRole );
|
||||
|
||||
/** @brief Effect string identifiers
|
||||
|
||||
@details
|
||||
|
|
@ -480,6 +526,9 @@ enum AAX_EResourceType
|
|||
\note All 'AX__' four-char IDs are reserved for the %AAX specification
|
||||
*/
|
||||
enum AAX_ENotificationEvent
|
||||
#if defined(AAX_CPP11_SUPPORT)
|
||||
: AAX_CTypeID
|
||||
#endif
|
||||
{
|
||||
/** \brief (not currently sent) The zero-indexed insert position
|
||||
of this plug-in instance within its track
|
||||
|
|
@ -771,6 +820,14 @@ enum AAX_ENotificationEvent
|
|||
|
||||
*/
|
||||
AAX_eNotificationEvent_HostLocale = 'AXLc',
|
||||
/** \brief Notify the plug-in that the timeline selection has changed
|
||||
|
||||
\compatibility Supported in Pro Tools 2025.6 and higher
|
||||
|
||||
<em>Data: none</em> <br />
|
||||
<em>Sent by: Host</em>
|
||||
*/
|
||||
AAX_eNotificationEvent_TimelineSelectionChanged = 'AXtC',
|
||||
}; AAX_ENUM_SIZE_CHECK( AAX_ENotificationEvent );
|
||||
|
||||
|
||||
|
|
@ -886,6 +943,60 @@ enum AAX_ESampleRateMask
|
|||
AAX_eSampleRateMask_All = AAX_INT32_MAX
|
||||
}; AAX_ENUM_SIZE_CHECK( AAX_ESampleRateMask );
|
||||
|
||||
|
||||
/*! \brief Determines whether a particular \ref AAX_CSampleRate is present
|
||||
in a given mask of \ref AAX_ESampleRateMask.
|
||||
|
||||
\details
|
||||
\sa kAAX_Property_SampleRate
|
||||
*/
|
||||
inline uint8_t sampleRateInMask(float inSR, uint32_t iMask)
|
||||
{
|
||||
return static_cast<uint8_t>( // AAX_CBoolean
|
||||
(44100.0f == inSR) ? ((iMask & AAX_eSampleRateMask_44100) != 0) :
|
||||
(48000.0f == inSR) ? ((iMask & AAX_eSampleRateMask_48000) != 0) :
|
||||
(88200.0f == inSR) ? ((iMask & AAX_eSampleRateMask_88200) != 0) :
|
||||
(96000.0f == inSR) ? ((iMask & AAX_eSampleRateMask_96000) != 0) :
|
||||
(176400.0f == inSR) ? ((iMask & AAX_eSampleRateMask_176400) != 0) :
|
||||
(192000.0f == inSR) ? ((iMask & AAX_eSampleRateMask_192000) != 0) : false
|
||||
);
|
||||
}
|
||||
|
||||
/*! \brief Converts from a mask of \ref AAX_ESampleRateMask to the lowest
|
||||
supported \ref AAX_CSampleRate value in Hz
|
||||
|
||||
*/
|
||||
inline float getLowestSampleRateInMask(uint32_t iMask)
|
||||
{
|
||||
return (
|
||||
((iMask & AAX_eSampleRateMask_44100) != 0) ? 44100.0f : // AAX_eSamplRateMask_All returns 44100
|
||||
((iMask & AAX_eSampleRateMask_48000) != 0) ? 48000.0f :
|
||||
((iMask & AAX_eSampleRateMask_88200) != 0) ? 88200.0f :
|
||||
((iMask & AAX_eSampleRateMask_96000) != 0) ? 96000.0f :
|
||||
((iMask & AAX_eSampleRateMask_176400) != 0) ? 176400.0f :
|
||||
((iMask & AAX_eSampleRateMask_192000) != 0) ? 192000.0f : 0.0f
|
||||
);
|
||||
}
|
||||
|
||||
/*! \brief Returns the \ref AAX_ESampleRateMask selector for a literal
|
||||
sample rate.
|
||||
|
||||
The given rate must be an exact match with one of the available
|
||||
selectors. If no exact match is found then
|
||||
\ref AAX_eSampleRateMask_No is returned.
|
||||
*/
|
||||
inline uint32_t getMaskForSampleRate(float inSR)
|
||||
{
|
||||
return (
|
||||
(44100.0 == inSR) ? AAX_eSampleRateMask_44100 :
|
||||
(48000.0 == inSR) ? AAX_eSampleRateMask_48000 :
|
||||
(88200.0 == inSR) ? AAX_eSampleRateMask_88200 :
|
||||
(96000.0 == inSR) ? AAX_eSampleRateMask_96000 :
|
||||
(176400.0 == inSR) ? AAX_eSampleRateMask_176400 :
|
||||
(192000.0 == inSR) ? AAX_eSampleRateMask_192000 : AAX_eSampleRateMask_No
|
||||
);
|
||||
}
|
||||
|
||||
/** @brief FIC stuff that I can't include without DAE library dependence
|
||||
|
||||
@details
|
||||
|
|
@ -1361,6 +1472,10 @@ enum AAX_ESupportLevel
|
|||
|
||||
Typically an %AAX plug-in should not need to query this information or change its
|
||||
behavior based on the level of the host.
|
||||
|
||||
\warning %AAX plugin description details are cached and are not re-scanned if the host
|
||||
level changes. Be careful to avoid changing any cacheable information based on this
|
||||
data.
|
||||
|
||||
@sa \ref AAXATTR_Client_Level
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
AAX_EnvironmentUtilities.h
|
||||
|
||||
Copyright 2018-2019, 2023-2024 Avid Technology, Inc.
|
||||
Copyright 2018-2019, 2023-2025 Avid Technology, Inc.
|
||||
All rights reserved.
|
||||
|
||||
This file is part of the Avid AAX SDK.
|
||||
|
|
@ -35,7 +35,39 @@
|
|||
#ifndef _AAX_ENVIRONMENTUTILITIES_H_
|
||||
#define _AAX_ENVIRONMENTUTILITIES_H_
|
||||
|
||||
#include <cstdlib>
|
||||
|
||||
/** @name C++ compiler macros
|
||||
*/
|
||||
//@{
|
||||
/** @def TI_VERSION
|
||||
@brief Preprocessor flag indicating compilation for TI
|
||||
*/
|
||||
/** @def AAX_CPP11_SUPPORT
|
||||
@brief Preprocessor toggle for code which requires C++11 compiler support
|
||||
*/
|
||||
//@} C++ compiler macros
|
||||
|
||||
#ifndef TI_VERSION
|
||||
#if defined _TMS320C6X
|
||||
#define TI_VERSION 1
|
||||
#elif defined DOXYGEN_PREPROCESSOR
|
||||
#define TI_VERSION 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef AAX_CPP11_SUPPORT
|
||||
#if (defined __cplusplus) && (__cplusplus >= 201103L)
|
||||
#define AAX_CPP11_SUPPORT 1
|
||||
// VS2015 supports all features except expression SFINAE
|
||||
#elif ((defined _MSVC_LANG) && (_MSVC_LANG >= 201402))
|
||||
#define AAX_CPP11_SUPPORT 1
|
||||
// Let Doxygen see the C++11 version of all code
|
||||
#elif defined DOXYGEN_PREPROCESSOR
|
||||
#define AAX_CPP11_SUPPORT 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#if (!defined (WINDOWS_VERSION))
|
||||
# if (defined (_WIN32))
|
||||
|
|
@ -64,24 +96,9 @@
|
|||
# error "AAX SDK: Cannot declare more than one OS environment"
|
||||
#endif
|
||||
|
||||
#if (!defined (WINDOWS_VERSION) && !defined (MAC_VERSION) && !defined (LINUX_VERSION))
|
||||
|
||||
#if (!defined (AAX_ALLOW_UNKNOWN_ENVIRONMENT) && !defined (WINDOWS_VERSION) && !defined (MAC_VERSION) && !defined (LINUX_VERSION))
|
||||
# warning "AAX SDK: Unknown OS environment"
|
||||
#endif
|
||||
|
||||
namespace AAX
|
||||
{
|
||||
static bool IsVenueSystem(void)
|
||||
{
|
||||
#if WINDOWS_VERSION
|
||||
static const char * const environmentVariableName = "JEX_HOST_TYPE";
|
||||
static const char * const venueEnvironment = "venue";
|
||||
static const char * const environment = std::getenv ( environmentVariableName );
|
||||
static const bool isVenue = ( NULL != environment) && (0 == strcmp ( environment, venueEnvironment ) );
|
||||
return isVenue;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
#endif // _AAX_ENVIRONMENTUTILITIES_H_
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2010-2017, 2019-2021, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2010-2017, 2019-2021, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -37,7 +37,7 @@
|
|||
#define AAX_ERRORS_H
|
||||
/// @endcond
|
||||
|
||||
#include "AAX_Enums.h"
|
||||
#include "AAX_EnumSizeCheck.h"
|
||||
|
||||
/** AAX result codes
|
||||
|
||||
|
|
@ -86,7 +86,7 @@ enum AAX_EError
|
|||
AAX_ERROR_DUPLICATE_TYPE_ID = -20036,
|
||||
AAX_ERROR_EMPTY_EFFECT_NAME = -20037,
|
||||
AAX_ERROR_UNKNOWN_PLUGIN = -20038,
|
||||
AAX_ERROR_PROPERTY_UNDEFINED = -20039,
|
||||
AAX_ERROR_PROPERTY_UNDEFINED = -20039, ///< The plugin does not explicitly define a value for a queried property
|
||||
AAX_ERROR_INVALID_PATH = -20040,
|
||||
AAX_ERROR_UNKNOWN_ID = -20041,
|
||||
AAX_ERROR_UNKNOWN_EXCEPTION = -20042, ///< An AAX plug-in should return this to the host if an unknown exception is caught. Exceptions should never be passed to the host.
|
||||
|
|
@ -99,6 +99,7 @@ enum AAX_EError
|
|||
AAX_ERROR_NO_ABBREVIATED_PARAMETER_NAME = -20049, ///< No parameter name abbreviation with the requested properties has been defined
|
||||
AAX_ERROR_ARGUMENT_OUT_OF_RANGE = -20050, ///< One or more input parameters are out of the expected range, e.g. an index argument that is negative or exceeds the number of elements
|
||||
AAX_ERROR_PRINT_FAILURE = -20051, ///< A failure occurred in a "print" library call such as @c printf
|
||||
AAX_ERROR_NOTIFICATION_REGISTRATION_FAILED = -20052,
|
||||
|
||||
|
||||
AAX_ERROR_PLUGIN_BEGIN = -20600, ///< Custom plug-in error codes may be placed in the range ( \ref AAX_ERROR_PLUGIN_END, \ref AAX_ERROR_PLUGIN_BEGIN ]
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2015, 2019, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2015, 2019, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -39,6 +39,7 @@
|
|||
|
||||
#ifndef _TMS320C6X
|
||||
|
||||
#include "AAX_Errors.h"
|
||||
#include "AAX.h"
|
||||
|
||||
#include AAX_ALIGN_FILE_BEGIN
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -36,6 +36,8 @@
|
|||
#ifndef _AAX_IACFCONTROLLER_H_
|
||||
#define _AAX_IACFCONTROLLER_H_
|
||||
|
||||
#include "AAX_Properties.h"
|
||||
#include "AAX_Enums.h"
|
||||
#include "AAX.h"
|
||||
|
||||
#ifdef __clang__
|
||||
|
|
@ -224,6 +226,31 @@ public:
|
|||
GetIsAudioSuite(AAX_CBoolean* outIsAudioSuite) const = 0;
|
||||
};
|
||||
|
||||
/** @copydoc AAX_IACFController
|
||||
*/
|
||||
class AAX_IACFController_V4 : public AAX_IACFController_V3
|
||||
{
|
||||
public:
|
||||
/** \copydoc AAX_IController::GetInstanceGroupID() */
|
||||
virtual
|
||||
AAX_Result
|
||||
GetInstanceGroupID(AAX_CInstanceGroupID* outInstanceGroupID) const = 0;
|
||||
};
|
||||
|
||||
class AAX_IACFController_V5 : public AAX_IACFController_V4
|
||||
{
|
||||
public:
|
||||
/** \copydoc AAX_IController::RegisterForNotification() */
|
||||
virtual
|
||||
AAX_Result
|
||||
RegisterForNotification(/* AAX_ENotificationEvent */ AAX_CTypeID inNotificationType, IACFUnknown const * inSubscriberObject) = 0;
|
||||
|
||||
/** \copydoc AAX_IController::GetInstanceID() */
|
||||
virtual
|
||||
AAX_Result
|
||||
GetInstanceID(AAX_CInstanceID* outInstanceID) const = 0;
|
||||
};
|
||||
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -35,9 +35,10 @@
|
|||
#ifndef AAX_IACFEFFECTGUI_H
|
||||
#define AAX_IACFEFFECTGUI_H
|
||||
|
||||
#include "AAX.h"
|
||||
#include "AAX_GUITypes.h"
|
||||
#include "AAX_IString.h"
|
||||
#include "AAX_Enums.h"
|
||||
#include "AAX.h"
|
||||
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic push
|
||||
|
|
@ -161,6 +162,9 @@ public:
|
|||
/*!
|
||||
* \brief Retrieves the size of the plug-in window
|
||||
*
|
||||
* If this method is inapplicable, return \ref AAX_SUCCESS and do not
|
||||
* modify \p oViewSize.
|
||||
*
|
||||
* \sa \ref AAX_IViewContainer::SetViewSize()
|
||||
*
|
||||
* \param[out] oViewSize
|
||||
|
|
@ -247,6 +251,31 @@ public:
|
|||
|
||||
};
|
||||
|
||||
|
||||
class AAX_IACFEffectGUI_V2 : public AAX_IACFEffectGUI
|
||||
{
|
||||
public:
|
||||
/** @name View accessors
|
||||
*/
|
||||
//@{
|
||||
/*!
|
||||
* \brief Retrieves the requested minimum size of the plug-in window
|
||||
*
|
||||
* The host is not required to respect this minimum size, and may
|
||||
* provide a smaller window.
|
||||
*
|
||||
* If this method is inapplicable, return \ref AAX_SUCCESS and do not
|
||||
* modify \p oMinimumViewSize.
|
||||
*
|
||||
* \sa \ref AAX_IViewContainer::GetViewSize()
|
||||
*
|
||||
* \param[out] oMinimumViewSize
|
||||
* The size of the plug-in window as a point (width, height)
|
||||
*/
|
||||
virtual AAX_Result GetMinimumViewSize ( AAX_Point * oMinimumViewSize ) const = 0;
|
||||
//@}end View accessors
|
||||
};
|
||||
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2019, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -35,6 +35,7 @@
|
|||
#ifndef AAX_IACFEFFECTPARAMETERS_H
|
||||
#define AAX_IACFEFFECTPARAMETERS_H
|
||||
|
||||
#include "AAX_Enums.h"
|
||||
#include "AAX.h"
|
||||
|
||||
class AAX_IString;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2016-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2016-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -24,6 +24,7 @@
|
|||
#ifndef AAXLibrary_AAX_IACFFeatureInfo_h
|
||||
#define AAXLibrary_AAX_IACFFeatureInfo_h
|
||||
|
||||
#include "AAX_Enums.h"
|
||||
#include "AAX.h"
|
||||
|
||||
class AAX_IACFPropertyMap;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -35,6 +35,7 @@
|
|||
#ifndef AAX_IACFPROPERTYMAP_H
|
||||
#define AAX_IACFPROPERTYMAP_H
|
||||
|
||||
#include "AAX_Properties.h"
|
||||
#include "AAX.h"
|
||||
|
||||
#ifdef __clang__
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -91,6 +91,13 @@ public:
|
|||
virtual AAX_Result SetDone(AAX_TaskCompletionStatus iStatus) = 0;
|
||||
};
|
||||
|
||||
class AAX_IACFTask_V2 : public AAX_IACFTask
|
||||
{
|
||||
public:
|
||||
virtual AAX_Result GetID(AAX_CTaskID * outID) const = 0; ///< \copydoc AAX_ITask::GetID()
|
||||
virtual AAX_Result SetProgressLabel(const char * iLabel) = 0; ///< \copydoc AAX_ITask::SetProgressLabel()
|
||||
};
|
||||
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -100,6 +100,27 @@ public:
|
|||
//@} Task management
|
||||
};
|
||||
|
||||
class AAX_IACFTaskAgent_V2 : public AAX_IACFTaskAgent
|
||||
{
|
||||
public:
|
||||
|
||||
/** @name Task management
|
||||
*/
|
||||
//@{
|
||||
/**
|
||||
* Request that the agent cancel a task
|
||||
*
|
||||
* If the task is already complete, or if it was not previously
|
||||
* added to the task agent using \ref AddTask(), then this
|
||||
* method should do nothing and should return \ref AAX_SUCCESS.
|
||||
*
|
||||
* \param[in] iTaskID
|
||||
* The ID of the task to cancel. \sa \ref AAX_IACFTask_V2::GetID()
|
||||
*/
|
||||
virtual AAX_Result CancelTask(AAX_CTaskID iTaskID) = 0;
|
||||
//@} Task management
|
||||
};
|
||||
|
||||
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic pop
|
||||
|
|
|
|||
|
|
@ -142,6 +142,10 @@ public: // AAX_IACFCollection
|
|||
\warning Do not use this method to infer host feature support. Instead, use
|
||||
\ref AAX_IDescriptionHost to query the host for specific features.
|
||||
|
||||
\warning %AAX plugin description details are cached and might not be re-scanned
|
||||
even if the host version changes. Be careful to avoid changing any cacheable
|
||||
information based on this data. See \ref describe_host_feature_checks for more information.
|
||||
|
||||
@param[in] outVersion
|
||||
Host version
|
||||
|
||||
|
|
@ -156,6 +160,10 @@ public: // AAX_ICollection
|
|||
method prototype for the \ref GetEffectDescriptions() method called from the %AAX Library.
|
||||
|
||||
@sa \ref AAX_UIDs.h for available feature UIDs, e.g. \ref AAXATTR_ClientFeature_AuxOutputStem
|
||||
|
||||
\warning %AAX plugin description details are cached and might not be re-scanned even if
|
||||
attributes of the host description change. Be careful to avoid changing any cacheable
|
||||
information based on this data. See \ref describe_host_feature_checks for more information.
|
||||
*/
|
||||
virtual AAX_IDescriptionHost* DescriptionHost() = 0;
|
||||
virtual const AAX_IDescriptionHost* DescriptionHost() const = 0; ///< \copydoc AAX_ICollection::DescriptionHost()
|
||||
|
|
@ -167,6 +175,10 @@ public: // AAX_ICollection
|
|||
|
||||
@sa \ref AAX_UIDs.h for available host attribute UIDs, e.g. \ref AAXATTR_Client_Level
|
||||
|
||||
\warning %AAX plugin description details are cached and might not be re-scanned even if
|
||||
attributes of the host definition change, for example the host level. Be careful to avoid
|
||||
changing any cacheable information based on this data. See \ref describe_host_feature_checks for more information.
|
||||
|
||||
The implementation of \ref AAX_ICollection owns the referenced object. No AddRef occurs.
|
||||
|
||||
\ref IACFDefinition::DefineAttribute() is not supported on this object
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -37,11 +37,13 @@
|
|||
|
||||
#include "AAX_Properties.h"
|
||||
#include "AAX_IString.h"
|
||||
#include "AAX_Enums.h"
|
||||
#include "AAX.h"
|
||||
#include <memory>
|
||||
|
||||
// Forward declarations
|
||||
class AAX_IPageTable;
|
||||
class IACFUnknown;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -448,6 +450,72 @@ public:
|
|||
virtual
|
||||
AAX_Result GetIsAudioSuite(AAX_CBoolean* outIsAudioSuite) const = 0;
|
||||
|
||||
/*!
|
||||
* \brief CALL: Provides an identifier for the group to which this instance belongs.
|
||||
*
|
||||
* Instances that share the same group ID are considered part of the same instance group.
|
||||
*
|
||||
* Check for \ref kAAX_InstanceGroupID_Undefined to determine if the instance has undefined
|
||||
* grouping. Instances sharing this value should not be considered to be part of the same
|
||||
* group. This value may be provided by hosts that do not support instance group
|
||||
* identification.
|
||||
*
|
||||
* Group ID values are not persistent between host sessions. An instance's Group ID will
|
||||
* not change during the lifetime of the instance. The host may re-use Group ID values
|
||||
* after all of the instances in a group have been destroyed.
|
||||
*
|
||||
* In Pro Tools:
|
||||
* - Instances within a multi-mono set will have the same group ID.
|
||||
* - If an instance is made inactive and then made active again, the instance's group
|
||||
* ID will remain the same.
|
||||
* - If the instance is moved to a different insert slot or to a different track, a
|
||||
* new group ID will be assigned.
|
||||
*
|
||||
* \param[out] outInstanceGroupID
|
||||
* The identifier for the group to which this instance belongs.
|
||||
*/
|
||||
virtual
|
||||
AAX_Result GetInstanceGroupID(AAX_CInstanceGroupID* outInstanceGroupID) const = 0;
|
||||
|
||||
/*!
|
||||
* \brief CALL: Provides an identifier for this plugin instance
|
||||
*/
|
||||
virtual
|
||||
AAX_Result GetInstanceID(AAX_CInstanceID* outInstanceID) const = 0;
|
||||
|
||||
/*!
|
||||
* \brief CALL: Subscribe a plugin object to notifications
|
||||
*
|
||||
* The plugin should subscribe its objects to any notification types that they require. The
|
||||
* host may automatically subscribe the plugin to some notification types.
|
||||
*
|
||||
* The subscriber object must be one of the plugin objects that can receive notifications via a
|
||||
* <tt>NotificationReceived()</tt> method:
|
||||
* - \ref AAX_IEffectParameters
|
||||
* - \ref AAX_IEffectGUI
|
||||
* - \ref AAX_IEffectDirectData
|
||||
* - \ref AAX_ISessionDocumentClient
|
||||
*
|
||||
* The plugin should register an object for notifiations as early as possible in the object's
|
||||
* lifetime, for example in the object's Initialize() or EffectInit() routine just after the
|
||||
* controller has been set on the object.
|
||||
*
|
||||
* \param[in] inNotificationType
|
||||
* Type of notification to subscribe to. One of \ref AAX_ENotificationEvent.
|
||||
* \param[in] inSubscriberObject
|
||||
* Pointer to the object that should receive notifications.
|
||||
*
|
||||
* - \return \ref AAX_ERROR_UNIMPLEMENTED if the host does not support this method
|
||||
* - \return \ref AAX_ERROR_NULL_ARGUMENT if \p inSubscriberObject is null
|
||||
* - \return \ref AAX_ERROR_INVALID_ARGUMENT if \p inSubscriberObject is not a valid subscriber
|
||||
* object address
|
||||
* - \return AAX_ERROR_NOTIFICATION_REGISTRATION_FAILED if the registration failed for another
|
||||
* reason, such as an invalid \p inNotificationType
|
||||
* - \return \ref AAX_SUCCESS if the registration was successful
|
||||
*/
|
||||
virtual
|
||||
AAX_Result RegisterForNotification(/* AAX_ENotificationEvent */ AAX_CTypeID inNotificationType, IACFUnknown const * inSubscriberObject) = 0;
|
||||
|
||||
/**
|
||||
* \brief Copy the current page table data for a particular plug-in type
|
||||
*
|
||||
|
|
|
|||
|
|
@ -30,6 +30,10 @@ class AAX_IFeatureInfo;
|
|||
|
||||
|
||||
/** Interface to host services provided during plug-in description
|
||||
|
||||
\warning %AAX plugin description details are cached and might not be re-scanned even if
|
||||
attributes of the host description change. Be careful to avoid changing any cacheable
|
||||
information based on this data. See \ref describe_host_feature_checks for more information.
|
||||
*/
|
||||
class AAX_IDescriptionHost
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -93,6 +93,13 @@ public:
|
|||
|
||||
*/
|
||||
virtual AAX_Result AddCategory ( uint32_t inCategory ) = 0;
|
||||
/** @brief Set the plug-in role. See \ref AAX_EPlugInRole.
|
||||
|
||||
@param[in] inRole
|
||||
The plug-in role
|
||||
|
||||
*/
|
||||
virtual AAX_Result SetRole ( uint32_t inRole ) = 0;
|
||||
/** @brief Add a category to your plug-in. See \ref AAX_EPlugInCategory.
|
||||
|
||||
@param[in] inCategory
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2014-2017, 2019-2021, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2014-2017, 2019-2021, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -60,7 +60,7 @@
|
|||
|
||||
\ingroup CommonInterface_GUI
|
||||
*/
|
||||
class AAX_IEffectGUI : public AAX_IACFEffectGUI,
|
||||
class AAX_IEffectGUI : public AAX_IACFEffectGUI_V2,
|
||||
public CACFUnknown
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2016-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2016-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -24,6 +24,7 @@
|
|||
#ifndef AAXLibrary_AAX_IFeatureInfo_h
|
||||
#define AAXLibrary_AAX_IFeatureInfo_h
|
||||
|
||||
#include "AAX_Enums.h"
|
||||
#include "AAX.h"
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -35,6 +35,7 @@
|
|||
#ifndef AAX_IPARAMETER_H
|
||||
#define AAX_IPARAMETER_H
|
||||
|
||||
#include "AAX_Enums.h"
|
||||
#include "AAX.h" //for types
|
||||
|
||||
//Forward Declarations
|
||||
|
|
@ -257,7 +258,7 @@ public:
|
|||
*
|
||||
*/
|
||||
//@{
|
||||
/** \brief Sets a parameter value using it's normalized representation
|
||||
/** \brief Sets a parameter value using its normalized representation
|
||||
*
|
||||
* For more information regarding normalized values, see
|
||||
* \ref AAXLibraryFeatures_ParameterManager
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -35,6 +35,7 @@
|
|||
|
||||
#include "AAX_IACFTask.h"
|
||||
#include "AAX.h"
|
||||
#include <memory>
|
||||
|
||||
class AAX_IACFDataBuffer;
|
||||
|
||||
|
|
@ -123,20 +124,53 @@ public:
|
|||
*
|
||||
* \details
|
||||
* If successful, returns a null pointer. Otherwise, returns
|
||||
* a pointer back to the same object. This is the expected
|
||||
* usage pattern:
|
||||
*
|
||||
* \code{.cpp}
|
||||
* // release the task on success, retain it on failure
|
||||
* myTask = myTask->SetDone(status);
|
||||
* \endcode
|
||||
* a pointer back to the same object. See
|
||||
* \ref SetDone(std::unique_ptr<AAX_ITask>&, AAX_TaskCompletionStatus)
|
||||
* for an example usage pattern.
|
||||
*
|
||||
* \param[in] iStatus
|
||||
* The final status of the task. This indicates to the host
|
||||
* whether or not the task was performed as requested.
|
||||
*/
|
||||
virtual AAX_ITask * SetDone(AAX_TaskCompletionStatus iStatus) = 0;
|
||||
|
||||
/**
|
||||
* \brief The identifier for this task
|
||||
*/
|
||||
virtual AAX_Result GetID(AAX_CTaskID * outID) const = 0;
|
||||
|
||||
/**
|
||||
* \brief Set a description of the current progress state
|
||||
*
|
||||
* \details
|
||||
* This label may be shown by the host in a progress dialog or
|
||||
* other progress reporting UI. If possible, use a localized
|
||||
* string based on \ref AAX_eNotificationEvent_HostLocale .
|
||||
*
|
||||
* \param[in] iDescription
|
||||
* A UTF-8 string describing the current progress state.
|
||||
*/
|
||||
virtual AAX_Result SetProgressLabel(const char * iLabel) = 0;
|
||||
|
||||
/// Helper for \ref SetDone() when using a unique_ptr
|
||||
static void SetDone(std::unique_ptr<AAX_ITask> & iTask, AAX_TaskCompletionStatus iStatus) {
|
||||
if (iTask) {
|
||||
AAX_ITask* const pt = iTask->SetDone(iStatus);
|
||||
if (pt != iTask.get()) {
|
||||
iTask.reset(pt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Helper for \ref SetDone() when using a shared_ptr
|
||||
static void SetDone(std::shared_ptr<AAX_ITask> & iTask, AAX_TaskCompletionStatus iStatus) {
|
||||
if (iTask) {
|
||||
AAX_ITask* const pt = iTask->SetDone(iStatus);
|
||||
if (pt != iTask.get()) {
|
||||
iTask.reset(pt);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
*
|
||||
* \ingroup AuxInterface_TaskAgent
|
||||
*/
|
||||
class AAX_ITaskAgent : public AAX_IACFTaskAgent
|
||||
class AAX_ITaskAgent : public AAX_IACFTaskAgent_V2
|
||||
, public CACFUnknown
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2015, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2015, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -94,7 +94,9 @@ namespace AAX
|
|||
,eSpecialData_UnaccentedClick = 0x01 ///< For use when the high status nibble is \ref eStatusNibble_NoteOn and the low status nibble is zero
|
||||
};
|
||||
|
||||
|
||||
AAX_CONSTEXPR int32_t kMIDIClocksPerQuarter = 24;
|
||||
AAX_CONSTEXPR int32_t kMIDIClocksPerSPPBeat = 6;
|
||||
|
||||
//
|
||||
// Basic MIDI utility functions
|
||||
//
|
||||
|
|
@ -167,6 +169,49 @@ namespace AAX
|
|||
{
|
||||
return (IsAccentedClick(inPacket) || IsUnaccentedClick(inPacket));
|
||||
}
|
||||
|
||||
/// Returns true if \c inPacket is a MIDI Beat Clock clock message
|
||||
inline bool IsMBCClock(const AAX_CMidiPacket* inPacket)
|
||||
{
|
||||
return ((inPacket) &&
|
||||
(eStatusByte_TimingClock == inPacket->mData[0]));
|
||||
}
|
||||
|
||||
/// Returns true if \c inPacket is a MIDI Beat Clock start message
|
||||
inline bool IsMBCStart(const AAX_CMidiPacket* inPacket)
|
||||
{
|
||||
return ((inPacket) &&
|
||||
(eStatusByte_Start == inPacket->mData[0]));
|
||||
}
|
||||
|
||||
/// Returns true if \c inPacket is a MIDI Beat Clock continue message
|
||||
inline bool IsMBCContinue(const AAX_CMidiPacket* inPacket)
|
||||
{
|
||||
return ((inPacket) &&
|
||||
(eStatusByte_Continue == inPacket->mData[0]));
|
||||
}
|
||||
|
||||
/// Returns true if \c inPacket is a MIDI Beat Clock stop message
|
||||
inline bool IsMBCStop(const AAX_CMidiPacket* inPacket)
|
||||
{
|
||||
return ((inPacket) &&
|
||||
(eStatusByte_Stop == inPacket->mData[0]));
|
||||
}
|
||||
|
||||
/// Returns true if \c inPacket is a Song Position Pointer message
|
||||
inline bool IsSongPositionPointer(const AAX_CMidiPacket* inPacket, int16_t* outPosition)
|
||||
{
|
||||
bool const isSongPostion = (
|
||||
(inPacket) &&
|
||||
(eStatusByte_SongPosition == inPacket->mData[0]));
|
||||
|
||||
if (isSongPostion && outPosition)
|
||||
{
|
||||
*outPosition = (static_cast<int16_t>(0x7F & inPacket->mData[2]) << 7) | static_cast<int16_t>(0x7F & inPacket->mData[1]);
|
||||
}
|
||||
|
||||
return isSongPostion;
|
||||
}
|
||||
} // namespace AAX
|
||||
|
||||
/// @cond ignore
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2019-2021, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019-2021, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -38,9 +38,7 @@
|
|||
#define AAX_PROPERTIES_H
|
||||
/// @endcond
|
||||
|
||||
#ifndef _AAX_H_
|
||||
#include "AAX.h"
|
||||
#endif
|
||||
#include "AAX_EnumSizeCheck.h"
|
||||
|
||||
|
||||
// Add new values only at the end of existing sections!
|
||||
|
|
@ -204,7 +202,7 @@ enum AAX_EProperty : int32_t
|
|||
*/
|
||||
AAX_eProperty_PlugInID_Deprecated = 18,
|
||||
/** \brief \deprecated Use \ref AAX_eProperty_Deprecated_Native_Plugin_List and \ref AAX_eProperty_Deprecated_DSP_Plugin_List
|
||||
* See AAX_eProperty_PlugInID_RTAS for an example.
|
||||
* See AAX_eProperty_PlugInID_Native for an example.
|
||||
*/
|
||||
AAX_eProperty_Deprecated_Plugin_List = 21,
|
||||
/** \brief Specify a list of DSP plug-ins that are related to a plug-in type.
|
||||
|
|
@ -680,6 +678,7 @@ enum AAX_EProperty : int32_t
|
|||
* \note See \ref PTSW-189725
|
||||
*/
|
||||
AAX_eProperty_UsesClientGUI = 151,
|
||||
|
||||
|
||||
AAX_eProperty_MaxGUIProp, // Intentionally given no explicit value
|
||||
//@}end GUI properties
|
||||
|
|
@ -756,9 +755,7 @@ enum AAX_EProperty : int32_t
|
|||
* cached, so if the plug-in description can change between launches of the host application then the plug-in
|
||||
* should apply this constraint to prevent the host from using stale description information.
|
||||
*
|
||||
* This property should be applied at the collection level as it affects the entire bundle.
|
||||
*
|
||||
* \li Apply this property at the \ref AAX_IEffectDescriptor level
|
||||
* \li Apply this property at the \ref AAX_ICollection level
|
||||
*/
|
||||
AAX_eProperty_Constraint_NeverCache = 303,
|
||||
/** \brief Indicates whether or not the plug-in supports multi-mono configurations
|
||||
|
|
@ -812,7 +809,7 @@ enum AAX_EProperty : int32_t
|
|||
* page table file. If this property is set to a non-zero value, the plug-in may describe a different
|
||||
* \ref AAX_eResourceType_PageTable for each separate Effect.
|
||||
*
|
||||
* This property needs to be set at the collection level.
|
||||
* \li Apply this property at the \ref AAX_ICollection level
|
||||
*/
|
||||
AAX_eProperty_StoreXMLPageTablesByEffect = 307,
|
||||
/** \brief \deprecated Use \ref AAX_eProperty_StoreXMLPageTablesByEffect
|
||||
|
|
@ -848,8 +845,10 @@ enum AAX_EProperty : int32_t
|
|||
*/
|
||||
AAX_eProperty_UsesTransportControl = 311,
|
||||
|
||||
|
||||
AAX_eProperty_MaxFeaturesProp, // Intentionally given no explicit value
|
||||
//@} end Plug-in features
|
||||
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
#if 0
|
||||
|
|
@ -922,9 +921,19 @@ enum AAX_EProperty : int32_t
|
|||
*/
|
||||
AAX_eProperty_EnableHostDebugLogs = 401,
|
||||
//@} end Debug properties
|
||||
|
||||
|
||||
|
||||
AAX_eProperty_MaxProp, // ALWAYS LEAVE AS LAST PROPERTY VALUE
|
||||
AAX_eProperty_MaxCap = 10000 // Maximum possible property value over the lifetime of AAX
|
||||
AAX_eProperty_MaxCap = 10000, // Maximum possible property value over the lifetime of AAX
|
||||
|
||||
/** \brief Property alias to define both input and output stem formats
|
||||
*
|
||||
* This property can be used in place of \ref AAX_eProperty_InputStemFormat and
|
||||
* \ref AAX_eProperty_OutputStemFormat . It is not registered directly with the
|
||||
* host. Instead, it is intercepted by \ref AAX_VPropertyMap::AddProperty() and
|
||||
* replaced with the equivalent input and output stem format properties.
|
||||
*/
|
||||
AAX_eProperty_StemFormat = 10001,
|
||||
}; AAX_ENUM_SIZE_CHECK(AAX_EProperty);
|
||||
|
||||
/// @cond ignore
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2014-2016, 2018, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2014-2016, 2018, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -34,8 +34,9 @@
|
|||
#define AAXLibrary_AAX_StringUtilities_h
|
||||
|
||||
// AAX headers
|
||||
#include "AAX.h"
|
||||
#include "AAX_Properties.h"
|
||||
#include "AAX_Enums.h"
|
||||
#include "AAX.h"
|
||||
|
||||
// Standard Library headers
|
||||
#include <string>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2019-2021, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019-2021, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -110,6 +110,10 @@ DEFINE_ACFUID(acfIID, IID_IAAXControllerV1, 0x9d5e3e3d, 0x52dc, 0x5efb, 0x20, 0x
|
|||
DEFINE_ACFUID(acfIID, IID_IAAXControllerV2, 0x4c59aa0e, 0xd7c0, 0x4205, 0x8b, 0x6c, 0x32, 0x46, 0x8d, 0x42, 0xd2, 0x02);
|
||||
/// ACF interface ID for \ref AAX_IACFController_V3
|
||||
DEFINE_ACFUID(acfIID, IID_IAAXControllerV3, 0xdd6f168c, 0xda86, 0x44f8, 0xb8, 0x64, 0xd6, 0xcd, 0x22, 0x19, 0x26, 0xe7);
|
||||
/// ACF interface ID for \ref AAX_IACFController_V4
|
||||
DEFINE_ACFUID(acfIID, IID_IAAXControllerV4, 0xf19c815c, 0xd885, 0x4677, 0x9e, 0x1f, 0x08, 0x37, 0xc7, 0xa6, 0x9e, 0xb3);
|
||||
/// ACF interface ID for \ref AAX_IACFController_V5
|
||||
DEFINE_ACFUID(acfIID, IID_IAAXControllerV5, 0xff310dbf, 0x04e8, 0x45b1, 0xb3, 0x6a, 0xb8, 0xf4, 0xd9, 0xb8, 0xd4, 0x82);
|
||||
|
||||
/// ACF component ID for %AAX page table controller components
|
||||
DEFINE_ACFUID(acfIID, AAXCompID_PageTableController, 0x63355d80, 0xbfe1, 0x4291, 0xa6, 0x27, 0xc6, 0x5c, 0xb9, 0x58, 0x91, 0x40);
|
||||
|
|
@ -172,6 +176,8 @@ DEFINE_ACFUID(acfIID, IID_IAAXFeatureInfoV1, 0x24545609, 0xa7c4, 0x44d4, 0xab, 0
|
|||
DEFINE_ACFUID(acfIID, AAXCompID_Task, 0xa5237386, 0xd1a7, 0x490d, 0x5, 0x8, 0x3, 0x2, 0xd, 0x0, 0x2, 0x1);
|
||||
/// ACF interface ID for \ref AAX_IACFTask
|
||||
DEFINE_ACFUID(acfIID, IID_IAAXTaskV1, 0x9733f64b, 0x45d6, 0x47ba, 0x8, 0xb, 0x9, 0xd, 0xd, 0x7, 0x8, 0xa);
|
||||
/// ACF interface ID for \ref AAX_IACFTask_V2
|
||||
DEFINE_ACFUID(acfIID, IID_IAAXTaskV2, 0x1cb60cfa, 0xbd54, 0x4132, 0x9f, 0xd7, 0xea, 0x69, 0xf5, 0x54, 0x12, 0x97);
|
||||
|
||||
/// ACF component ID for \ref AAX_ISessionDocument components
|
||||
DEFINE_ACFUID(acfIID, AAXCompID_SessionDocument, 0x65fd4d4a, 0xf85e, 0x46fd, 0x8b, 0x7c, 0xa0, 0x31, 0x5c, 0x93, 0x2a, 0xd1);
|
||||
|
|
@ -210,6 +216,8 @@ DEFINE_ACFUID(acfIID, IID_IAAXHostProcessorV2, 0x457546c0, 0xf6bc, 0x4af9, 0xbf,
|
|||
DEFINE_ACFUID(acfIID, AAXCompID_EffectGUI, 0xab94339d, 0x3b34, 0x35dc, 0x29, 0x32, 0x19, 0x23, 0x1d, 0x1d, 0x48, 0x2a);
|
||||
/// ACF interface ID for \ref AAX_IACFEffectGUI
|
||||
DEFINE_ACFUID(acfIID, IID_IAAXEffectGUIV1, 0x964e323d, 0x424c, 0x5e1a, 0x22, 0x27, 0x28, 0x24, 0x23, 0x22, 0x2e, 0x1e);
|
||||
/// ACF interface ID for \ref AAX_IACFEffectGUI_V2
|
||||
DEFINE_ACFUID(acfIID, IID_IAAXEffectGUIV2, 0xa0a8fb30, 0x7e5d, 0x4b4a, 0xaa, 0x00, 0xbc, 0x33, 0x4a, 0x42, 0x0d, 0xbb);
|
||||
|
||||
/// ACF component ID for \ref AAX_IEffectDirectData components
|
||||
DEFINE_ACFUID(acfIID, AAXCompID_EffectDirectData, 0xaafe80ab, 0x5b34, 0x4522, 0x49, 0x3b, 0x29, 0x53, 0xcd, 0xdd, 0x48, 0x4b);
|
||||
|
|
@ -222,6 +230,8 @@ DEFINE_ACFUID(acfIID, IID_IAAXEffectDirectDataV2, 0x156ea622, 0xbd2e, 0x11e9, 0x
|
|||
DEFINE_ACFUID(acfIID, AAXCompID_TaskAgent, 0xb0753064, 0xc37e, 0x11ed, 0xaf, 0xa1, 0x02, 0x42, 0xac, 0xe2, 0x00, 0x12);
|
||||
/// ACF interface ID for \ref AAX_IACFTaskAgent
|
||||
DEFINE_ACFUID(acfIID, IID_IAAXTaskAgentV1, 0xc096be3e, 0xbc3e, 0x4c38, 0x86, 0x1d, 0x06, 0xa4, 0xba, 0xa4, 0x10, 0x05);
|
||||
/// ACF interface ID for \ref AAX_IACFTaskAgent_V2
|
||||
DEFINE_ACFUID(acfIID, IID_IAAXTaskAgentV2, 0xa734a715, 0xd590, 0x4402, 0xbc, 0xff, 0x85, 0x64, 0x78, 0x52, 0x60, 0x1b);
|
||||
|
||||
/// ACF component ID for \ref AAX_ISessionDocumentClient components
|
||||
DEFINE_ACFUID(acfIID, AAXCompID_SessionDocumentClient, 0x2280c3d5, 0x38f9, 0x43c5, 0x90, 0x1d, 0x8d, 0x1a, 0xfe, 0xb4, 0x2f, 0xa5);
|
||||
|
|
@ -264,11 +274,22 @@ using AAX_Feature_UID = acfUID;
|
|||
\brief Client stem format feature support
|
||||
|
||||
\details
|
||||
To determine the client's support for specific stem formats, use the property map
|
||||
The host provides \ref AAX_eSupportLevel_ByProperty . To determine the client's support for
|
||||
specific stem formats, use the property map
|
||||
|
||||
<b>Property map contents</b>
|
||||
Key: \ref AAX_EStemFormat values
|
||||
Value: \ref AAX_ESupportLevel value; if undefined then no information is available
|
||||
- Key: \ref AAX_EStemFormat values
|
||||
- Value: \ref AAX_ESupportLevel value; if undefined then no information is available
|
||||
|
||||
Plugins that require support for a particular stem format in order for one or more of the
|
||||
included effects to function properly should return an empty \ref AAX_ICollection from the
|
||||
plugin's Describe routine if the host does not support this feature.
|
||||
|
||||
Note that feature queries should never be used to alter plugin description information that
|
||||
is included in the host's %AAX plugin cache. For example, the list of included Components
|
||||
should never be changed based on the host's stem format support.
|
||||
|
||||
\details
|
||||
*/
|
||||
DEFINE_ACFUID(AAX_Feature_UID, AAXATTR_ClientFeature_StemFormat, 0x729dd3e6, 0xd3dc, 0x484c, 0x91, 0x69, 0xf0, 0x64, 0xa0, 0x12, 0x60, 0x1d);
|
||||
|
||||
|
|
@ -276,23 +297,65 @@ DEFINE_ACFUID(AAX_Feature_UID, AAXATTR_ClientFeature_StemFormat, 0x729dd3e6, 0xd
|
|||
|
||||
\brief Client \ref additionalFeatures_AOS "Auxiliary Output Stem" feature support
|
||||
|
||||
Plug-ins must detect when a host does not support AOS in order to avoid running off the end of the output audio buffer list in the
|
||||
audio algorithm.
|
||||
\details
|
||||
The host provides \ref AAX_eSupportLevel_Supported if it supports Auxiliary Output Stems for
|
||||
%AAX effects.
|
||||
|
||||
\ref AAX_IComponentDescriptor::AddAuxOutputStem() "AddAuxOutputStem()" will return an error for hosts that do not support this feature, so typically
|
||||
a feature support query using this \ref AAX_Feature_UID is not required.
|
||||
Plug-ins must detect when a host does not support AOS in order to avoid running off the end
|
||||
of the output audio buffer list in the audio algorithm.
|
||||
|
||||
\ref AAX_IComponentDescriptor::AddAuxOutputStem() "AddAuxOutputStem()" will return an error
|
||||
for hosts that do not support this feature, so typically a feature support query using this
|
||||
\ref AAX_Feature_UID is not required.
|
||||
|
||||
Plugins that require Auxiliary Output Stem support for one or more of the included effects to
|
||||
function properly should return an empty \ref AAX_ICollection from the plugin's Describe
|
||||
routine if the host does not support this feature.
|
||||
|
||||
This feature query can also be used to dynamically change the behavior of the plugin, for
|
||||
example to reconfigure the Algorithm component data structure for hosts that do not support
|
||||
Auxiliary Output Stems.
|
||||
|
||||
Note that feature queries should never be used to alter plugin description information that
|
||||
is included in the host's %AAX plugin cache.
|
||||
*/
|
||||
DEFINE_ACFUID(AAX_Feature_UID, AAXATTR_ClientFeature_AuxOutputStem, 0x5bea3f7a, 0x2be8, 0x4fe1, 0x83, 0xb2, 0x94, 0xec, 0x91, 0x31, 0xb8, 0x52);
|
||||
|
||||
/** \var AAXATTR_ClientFeature_AuxOutputStem
|
||||
|
||||
\brief Client \ref additionalFeatures_Sidechain "Side Chain" feature support
|
||||
|
||||
\details
|
||||
The host provides \ref AAX_eSupportLevel_Supported if it supports MIDI for %AAX effects.
|
||||
|
||||
Plugins that require side chain support for one or more of the included effects to function
|
||||
properly should return an empty \ref AAX_ICollection from the plugin's Describe routine if the
|
||||
host does not support this feature.
|
||||
|
||||
This feature query can also be used to dynamically change the behavior of the plugin, for example
|
||||
to select a different Effect GUI factory function for hosts that do not support side chains.
|
||||
|
||||
Note that feature queries should never be used to alter plugin description information that
|
||||
is included in the host's %AAX plugin cache.
|
||||
*/
|
||||
DEFINE_ACFUID(AAX_Feature_UID, AAXATTR_ClientFeature_SideChainInput, 0x98b0a514, 0x2b96, 0x4e1f, 0x87, 0x81, 0x99, 0x08, 0xc9, 0xe3, 0xe6, 0x8b);
|
||||
|
||||
/** \var AAXATTR_ClientFeature_MIDI
|
||||
|
||||
\brief Client \ref additionalFeatures_MIDI "MIDI" feature support
|
||||
|
||||
\details
|
||||
The host provides \ref AAX_eSupportLevel_Supported if it supports MIDI for %AAX effects.
|
||||
|
||||
Plugins that require MIDI support for one or more of the included effects to function properly
|
||||
should return an empty \ref AAX_ICollection from the plugin's Describe routine if the host does
|
||||
not support this feature.
|
||||
|
||||
This feature query can also be used to dynamically change the behavior of the plugin, for example
|
||||
to select a different Effect Parameters factory function for hosts that do not support MIDI.
|
||||
|
||||
Note that feature queries should never be used to alter plugin description information that
|
||||
is included in the host's %AAX plugin cache.
|
||||
*/
|
||||
DEFINE_ACFUID(AAX_Feature_UID, AAXATTR_ClientFeature_MIDI, 0xf5b0816c, 0x5768, 0x49c2, 0xae, 0x3e, 0x85, 0x0d, 0xe3, 0x42, 0xeb, 0x07);
|
||||
|
||||
|
|
@ -314,6 +377,12 @@ DEFINE_ACFUID(AAX_Feature_UID, AAXATTR_ClientFeature_MIDI, 0xf5b0816c, 0x5768, 0
|
|||
Value: one of \ref AAX_EHostLevel
|
||||
|
||||
Query using the host's \ref IACFDefinition
|
||||
|
||||
Plugins that require a certain host level should return an empty \ref AAX_ICollection from
|
||||
the plugin's Describe routine if the host does not provide the required level or higher.
|
||||
|
||||
Note that host support queries should never be used to alter plugin description information
|
||||
that is included in the host's %AAX plugin cache.
|
||||
*/
|
||||
DEFINE_ACFUID(acfUID, AAXATTR_Client_Level, 0xe550868e, 0x1e6a, 0x482b, 0xb5, 0x86, 0x73, 0xf1, 0x24, 0x6e, 0x12, 0x6b);
|
||||
|
||||
|
|
@ -340,6 +409,15 @@ DEFINE_ACFUID(acfUID, AAXATTR_Client_Level, 0xe550868e, 0x1e6a, 0x482b, 0xb5, 0x
|
|||
<TT>00000111111001110000001100000001</TT>, or in decimal: 132580097
|
||||
|
||||
Query using the host's \ref IACFDefinition
|
||||
|
||||
Plugins that require a certain host version should return an empty \ref AAX_ICollection from
|
||||
the plugin's Describe routine if the host does not provide the required level or higher.
|
||||
|
||||
That said, this check should only be used as a last resort. In nearly all cases a plugin
|
||||
should use other available queries, such as feature queries, to determine host capabilities.
|
||||
|
||||
Note that a host version query should never be used to alter plugin description information
|
||||
that is included in the host's %AAX plugin cache.
|
||||
*/
|
||||
DEFINE_ACFUID(acfUID, AAXATTR_Client_Version, 0x950cf999, 0x37aa, 0x49de, 0x8d, 0xcc, 0xbe, 0x7f, 0xa7, 0x3e, 0x6a, 0xee);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2019, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -38,6 +38,8 @@
|
|||
#include "AAX_IComponentDescriptor.h"
|
||||
#include "AAX_IDma.h"
|
||||
#include "AAX_IACFComponentDescriptor.h"
|
||||
#include "AAX_Properties.h"
|
||||
#include "AAX_Enums.h"
|
||||
|
||||
// ACF Includes
|
||||
#include "acfunknown.h"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2019, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -77,6 +77,8 @@ public:
|
|||
AAX_Result GetHybridSignalLatency(int32_t* outSamples) const AAX_OVERRIDE; ///< \copydoc AAX_IController::GetHybridSignalLatency()
|
||||
AAX_Result GetPlugInTargetPlatform(AAX_CTargetPlatform* outTargetPlatform) const AAX_OVERRIDE; ///< \copydoc AAX_IController::GetPlugInTargetPlatform()
|
||||
AAX_Result GetIsAudioSuite(AAX_CBoolean* outIsAudioSuite) const AAX_OVERRIDE; ///< \copydoc AAX_IController::GetIsAudioSuite()
|
||||
AAX_Result GetInstanceGroupID(AAX_CInstanceGroupID* outInstanceGroupID) const AAX_OVERRIDE; ///< \copydoc AAX_IController::GetInstanceGroupID()
|
||||
AAX_Result GetInstanceID(AAX_CInstanceID* outInstanceID) const AAX_OVERRIDE; ///< \copydoc AAX_IController::GetInstanceID()
|
||||
AAX_Result GetCycleCount( AAX_EProperty inWhichCycleCount, AAX_CPropertyValue* outNumCycles) const AAX_OVERRIDE; ///< \copydoc AAX_IController::GetCycleCount()
|
||||
AAX_Result GetTODLocation ( AAX_CTimeOfDay* outTODLocation ) const AAX_OVERRIDE; ///< \copydoc AAX_IController::GetTODLocation()
|
||||
AAX_Result GetCurrentAutomationTimestamp(AAX_CTransportCounter* outTimestamp) const AAX_OVERRIDE; ///< \copydoc AAX_IController::GetCurrentAutomationTimestamp()
|
||||
|
|
@ -92,6 +94,7 @@ public:
|
|||
// Notification functions
|
||||
AAX_Result SendNotification ( AAX_CTypeID inNotificationType, const void* inNotificationData, uint32_t inNotificationDataSize ) AAX_OVERRIDE; ///< \copydoc AAX_IController::SendNotification(AAX_CTypeID, const void*, uint32_t)
|
||||
AAX_Result SendNotification ( AAX_CTypeID inNotificationType) AAX_OVERRIDE; ///< \copydoc AAX_IController::SendNotification(AAX_CTypeID) \note Not an AAX interface method
|
||||
AAX_Result RegisterForNotification(/* AAX_ENotificationEvent */ AAX_CTypeID inNotificationType, IACFUnknown const * inSubscriberObject) AAX_OVERRIDE; ///< \copydoc AAX_IController::RegisterForNotification()
|
||||
|
||||
//Metering functions
|
||||
AAX_Result GetCurrentMeterValue ( AAX_CTypeID inMeterID, float * outMeterValue ) const AAX_OVERRIDE; ///< \copydoc AAX_IController::GetCurrentMeterValue()
|
||||
|
|
@ -155,6 +158,8 @@ private:
|
|||
ACFPtr<AAX_IACFController> mIController;
|
||||
ACFPtr<AAX_IACFController_V2> mIControllerV2;
|
||||
ACFPtr<AAX_IACFController_V3> mIControllerV3;
|
||||
ACFPtr<AAX_IACFController_V4> mIControllerV4;
|
||||
ACFPtr<AAX_IACFController_V5> mIControllerV5;
|
||||
|
||||
// AAX_IACFPageTableController interface methods are aggregated into AAX_IController
|
||||
ACFPtr<AAX_IACFPageTableController> mIPageTableController;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2016-2017, 2019, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2016-2017, 2019, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
|
||||
#include "AAX_IDescriptionHost.h"
|
||||
#include "AAX_Errors.h"
|
||||
#include "ACFPtr.h"
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2013-2017, 2019, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -66,6 +66,7 @@ public:
|
|||
AAX_Result AddComponent ( AAX_IComponentDescriptor * inComponentDescriptor ) AAX_OVERRIDE; ///< \copydoc AAX_IEffectDescriptor::AddComponent()
|
||||
AAX_Result AddName ( const char * inPlugInName ) AAX_OVERRIDE; ///< \copydoc AAX_IEffectDescriptor::AddName()
|
||||
AAX_Result AddCategory ( uint32_t inCategory ) AAX_OVERRIDE; ///< \copydoc AAX_IEffectDescriptor::AddCategory()
|
||||
AAX_Result SetRole ( uint32_t inRole ) AAX_OVERRIDE; ///< \copydoc AAX_IEffectDescriptor::SetRole()
|
||||
AAX_Result AddCategoryBypassParameter ( uint32_t inCategory, AAX_CParamID inParamID ) AAX_OVERRIDE; ///< \copydoc AAX_IEffectDescriptor::AddCategoryBypassParameter()
|
||||
AAX_Result AddProcPtr ( void * inProcPtr, AAX_CProcPtrID inProcID ) AAX_OVERRIDE; ///< \copydoc AAX_IEffectDescriptor::AddProcPtr()
|
||||
/** \copydoc AAX_IEffectDescriptor::NewPropertyMap()
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
*
|
||||
* Copyright 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -39,6 +39,8 @@
|
|||
#include "ACFPtr.h"
|
||||
|
||||
class IACFUnknown;
|
||||
class AAX_IACFTask;
|
||||
class AAX_IACFTask_V2;
|
||||
|
||||
/*!
|
||||
\brief Version-managed concrete \ref AAX_ITask
|
||||
|
|
@ -56,8 +58,11 @@ public:
|
|||
float GetProgress() const AAX_OVERRIDE; ///< \copydoc AAX_ITask::GetProgress()
|
||||
AAX_Result AddResult(AAX_IACFDataBuffer const * iResult) AAX_OVERRIDE; ///< \copydoc AAX_ITask::AddResult()
|
||||
AAX_ITask * SetDone(AAX_TaskCompletionStatus iStatus) AAX_OVERRIDE; ///< \copydoc AAX_ITask::SetDone()
|
||||
AAX_Result GetID(AAX_CTaskID * outID) const AAX_OVERRIDE; ///< \copydoc AAX_ITask::GetID()
|
||||
AAX_Result SetProgressLabel(const char * iLabel) AAX_OVERRIDE; ///< \copydoc AAX_ITask::SetProgressLabel()
|
||||
private:
|
||||
ACFPtr<AAX_IACFTask> mTaskV1;
|
||||
ACFPtr<AAX_IACFTask_V2> mTaskV2;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
|
||||
* Copyright 2013-2017, 2019, 2021-2024 Avid Technology, Inc.
|
||||
*
|
||||
* Copyright 2013-2017, 2019, 2021-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -53,11 +53,11 @@
|
|||
* - SDK 10.2.1 > \c 0x0A02
|
||||
*
|
||||
*/
|
||||
#define AAX_SDK_VERSION ( 0x0208 )
|
||||
#define AAX_SDK_VERSION ( 0x0209 )
|
||||
|
||||
/** \brief An atomic revision number for the source included in this SDK
|
||||
*/
|
||||
#define AAX_SDK_CURRENT_REVISION ( 20208000 )
|
||||
#define AAX_SDK_CURRENT_REVISION ( 20209000 )
|
||||
|
||||
|
||||
#define AAX_SDK_1p0p1_REVISION ( 3712639 )
|
||||
|
|
@ -85,6 +85,8 @@
|
|||
#define AAX_SDK_2p6p1_REVISION ( 20206001 )
|
||||
#define AAX_SDK_2p7p0_REVISION ( 20207000 )
|
||||
#define AAX_SDK_2p8p0_REVISION ( 20208000 )
|
||||
#define AAX_SDK_2p8p1_REVISION ( 20208001 )
|
||||
#define AAX_SDK_2p9p0_REVISION ( 20209000 )
|
||||
//CURREVSTAMP < do not remove this comment
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2013-2015, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2015, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -29,6 +29,7 @@
|
|||
#include "AAX_VPrivateDataAccess.h"
|
||||
#include "AAX_VController.h"
|
||||
#include "AAX_UIDs.h"
|
||||
#include "AAX_Errors.h"
|
||||
|
||||
AAX_CEffectDirectData::AAX_CEffectDirectData() :
|
||||
mController(NULL),
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2013-2017, 2019, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -941,7 +941,9 @@ AAX_Result AAX_CEffectParameters::UpdatePageTable(uint32_t inTableType, int32_t
|
|||
//----------------------------------------------------------------------------------------------
|
||||
AAX_Result AAX_CEffectParameters::GetCustomData( AAX_CTypeID /*iDataBlockID*/, uint32_t /*inDataSize*/, void* /*oData*/, uint32_t* oDataWritten) const
|
||||
{
|
||||
*oDataWritten = 0;
|
||||
if (oDataWritten) {
|
||||
*oDataWritten = 0;
|
||||
}
|
||||
return AAX_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2010-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2010-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -29,6 +29,7 @@
|
|||
#include "AAX_VController.h"
|
||||
#include "AAX_IEffectParameters.h"
|
||||
#include "AAX_UIDs.h"
|
||||
#include "AAX_Errors.h"
|
||||
|
||||
// ***************************************************************************
|
||||
// METHOD: AAX_CHostProcessor
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2013-2015, 2018, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2015, 2018, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -24,9 +24,10 @@
|
|||
/*================================================================================================*/
|
||||
|
||||
|
||||
#include "AAX.h"
|
||||
#include "AAX_CHostServices.h"
|
||||
#include "AAX_VHostServices.h"
|
||||
#include "AAX_Errors.h"
|
||||
#include "AAX.h"
|
||||
#include <cstdarg>
|
||||
#include <cstdio>
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
#if defined(__GNUC__)
|
||||
#include <pthread.h>
|
||||
#include <errno.h>
|
||||
#elif defined(WIN32)
|
||||
#elif defined(_WIN32)
|
||||
#include <windows.h>
|
||||
#else
|
||||
#error AAX_CMutex not implemented
|
||||
|
|
@ -46,7 +46,7 @@ struct opaque_aax_mutex_t
|
|||
#if defined(__GNUC__)
|
||||
pthread_t mOwner;
|
||||
pthread_mutex_t mSysMutex;
|
||||
#elif defined(WIN32)
|
||||
#elif defined(_WIN32)
|
||||
DWORD mOwner;
|
||||
HANDLE mSysMutex;
|
||||
#endif
|
||||
|
|
@ -61,7 +61,7 @@ AAX_CMutex::AAX_CMutex()
|
|||
mMutex->mOwner = 0;
|
||||
#if defined(__GNUC__)
|
||||
if (::pthread_mutex_init(&mMutex->mSysMutex, NULL) != 0)
|
||||
#elif defined(WIN32)
|
||||
#elif defined(_WIN32)
|
||||
mMutex->mSysMutex = ::CreateMutex(NULL, false, NULL);
|
||||
if (0 == mMutex->mSysMutex)
|
||||
#endif
|
||||
|
|
@ -80,7 +80,7 @@ AAX_CMutex::~AAX_CMutex()
|
|||
{
|
||||
#if defined(__GNUC__)
|
||||
::pthread_mutex_destroy(&mMutex->mSysMutex);
|
||||
#elif defined(WIN32)
|
||||
#elif defined(_WIN32)
|
||||
::CloseHandle(mMutex->mSysMutex);
|
||||
#endif
|
||||
delete mMutex;
|
||||
|
|
@ -104,7 +104,7 @@ bool AAX_CMutex::Lock()
|
|||
mMutex->mOwner = curThread;
|
||||
result = true;
|
||||
}
|
||||
#elif defined(WIN32)
|
||||
#elif defined(_WIN32)
|
||||
DWORD curThread = ::GetCurrentThreadId();
|
||||
if(mMutex->mOwner != curThread)
|
||||
{
|
||||
|
|
@ -130,7 +130,7 @@ void AAX_CMutex::Unlock()
|
|||
mMutex->mOwner = 0;
|
||||
::pthread_mutex_unlock(&mMutex->mSysMutex);
|
||||
}
|
||||
#elif defined(WIN32)
|
||||
#elif defined(_WIN32)
|
||||
if(mMutex->mOwner == ::GetCurrentThreadId())
|
||||
{
|
||||
mMutex->mOwner = 0;
|
||||
|
|
@ -177,7 +177,7 @@ bool AAX_CMutex::Try_Lock()
|
|||
// current thread already owns the lock
|
||||
result = true;
|
||||
}
|
||||
#elif defined(WIN32)
|
||||
#elif defined(_WIN32)
|
||||
if(mMutex->mOwner != ::GetCurrentThreadId())
|
||||
{
|
||||
// try to acquire the mutex
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2013-2015, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2015, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 1993-2015, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 1993-2015, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -29,7 +29,8 @@
|
|||
|
||||
ACFMETHODIMP AAX_IEffectGUI::InternalQueryInterface(const acfIID & riid, void **ppvObjOut)
|
||||
{
|
||||
if (riid == IID_IAAXEffectGUIV1 )
|
||||
if ( riid == IID_IAAXEffectGUIV1
|
||||
|| riid == IID_IAAXEffectGUIV2)
|
||||
{
|
||||
*ppvObjOut = static_cast<IACFUnknown *>(this);
|
||||
( static_cast<IACFUnknown *>(*ppvObjOut))->AddRef();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2013-2015, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2015, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -26,6 +26,7 @@
|
|||
#include "AAX_VAutomationDelegate.h"
|
||||
#include "AAX_IACFController.h"
|
||||
#include "AAX_UIDs.h"
|
||||
#include "AAX_Errors.h"
|
||||
#include <algorithm>
|
||||
#include <iterator>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2013-2017, 2019, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -30,6 +30,7 @@
|
|||
#include "AAX_VPropertyMap.h"
|
||||
#include "AAX_UIDs.h"
|
||||
#include "AAX_Assert.h"
|
||||
#include "AAX_Errors.h"
|
||||
|
||||
// ACF Includes
|
||||
#include "acfbaseapi.h"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2013-2017, 2019, 2021, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019, 2021, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -28,6 +28,7 @@
|
|||
#include "AAX_IACFPageTableController.h"
|
||||
#include "AAX_UIDs.h"
|
||||
#include "AAX_Assert.h"
|
||||
#include "AAX_Errors.h"
|
||||
|
||||
#include "acfbaseapi.h"
|
||||
|
||||
|
|
@ -43,6 +44,8 @@ AAX_VController::AAX_VController( IACFUnknown* pUnknown )
|
|||
pUnknown->QueryInterface(IID_IAAXControllerV1, (void **)&mIController);
|
||||
pUnknown->QueryInterface(IID_IAAXControllerV2, (void **)&mIControllerV2);
|
||||
pUnknown->QueryInterface(IID_IAAXControllerV3, (void **)&mIControllerV3);
|
||||
pUnknown->QueryInterface(IID_IAAXControllerV4, (void **)&mIControllerV4);
|
||||
pUnknown->QueryInterface(IID_IAAXControllerV5, (void **)&mIControllerV5);
|
||||
pUnknown->QueryInterface(IID_IAAXPageTableController, (void **)&mIPageTableController);
|
||||
pUnknown->QueryInterface(IID_IAAXPageTableControllerV2, (void **)&mIPageTableControllerV2);
|
||||
|
||||
|
|
@ -55,7 +58,7 @@ AAX_VController::AAX_VController( IACFUnknown* pUnknown )
|
|||
// swallow any failure here - just clear the smart pointer
|
||||
mComponentFactory = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ******************************************************************************************
|
||||
|
|
@ -98,6 +101,17 @@ AAX_Result AAX_VController::SendNotification (AAX_CTypeID inNotificationType)
|
|||
return AAX_ERROR_UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
// ******************************************************************************************
|
||||
// METHOD: RegisterForNotification
|
||||
// ******************************************************************************************
|
||||
AAX_Result AAX_VController::RegisterForNotification(/* AAX_ENotificationEvent */ AAX_CTypeID inNotificationType, IACFUnknown const * inSubscriberObject)
|
||||
{
|
||||
if (mIControllerV5)
|
||||
return mIControllerV5->RegisterForNotification(inNotificationType, inSubscriberObject);
|
||||
|
||||
return AAX_ERROR_UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
// ******************************************************************************************
|
||||
// METHOD: GetEffectID
|
||||
// ******************************************************************************************
|
||||
|
|
@ -322,6 +336,28 @@ AAX_Result AAX_VController::GetIsAudioSuite(AAX_CBoolean* outIsAudioSuite) const
|
|||
return AAX_ERROR_UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
// ******************************************************************************************
|
||||
// METHOD: GetInstanceGroupID
|
||||
// ******************************************************************************************
|
||||
AAX_Result AAX_VController::GetInstanceGroupID(AAX_CInstanceGroupID* outInstanceGroupID) const
|
||||
{
|
||||
if (mIControllerV4)
|
||||
return mIControllerV4->GetInstanceGroupID(outInstanceGroupID);
|
||||
|
||||
return AAX_ERROR_UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
// ******************************************************************************************
|
||||
// METHOD: GetInstanceID
|
||||
// ******************************************************************************************
|
||||
AAX_Result AAX_VController::GetInstanceID(AAX_CInstanceID* outInstanceID) const
|
||||
{
|
||||
if (mIControllerV5)
|
||||
return mIControllerV5->GetInstanceID(outInstanceID);
|
||||
|
||||
return AAX_ERROR_UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
// ******************************************************************************************
|
||||
// METHOD: GetHostName
|
||||
// ******************************************************************************************
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2013-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -26,6 +26,7 @@
|
|||
#include "AAX_VEffectDescriptor.h"
|
||||
#include "AAX_VComponentDescriptor.h"
|
||||
#include "AAX_VPropertyMap.h"
|
||||
#include "AAX_Errors.h"
|
||||
|
||||
#include "AAX_UIDs.h"
|
||||
#include "acfbaseapi.h"
|
||||
|
|
@ -114,12 +115,22 @@ AAX_Result AAX_VEffectDescriptor::AddName( const char * inPlugInName )
|
|||
// ******************************************************************************************
|
||||
AAX_Result AAX_VEffectDescriptor::AddCategory( uint32_t inCategory )
|
||||
{
|
||||
// For now, not checking that the value only contains category bits
|
||||
if ( mIACFEffectDescriptor )
|
||||
return mIACFEffectDescriptor->AddCategory( inCategory );
|
||||
|
||||
return AAX_ERROR_NULL_OBJECT;
|
||||
}
|
||||
|
||||
// ******************************************************************************************
|
||||
// METHOD: SetRole
|
||||
// ******************************************************************************************
|
||||
AAX_Result AAX_VEffectDescriptor::SetRole( uint32_t inRole )
|
||||
{
|
||||
// For now, not checking that the value only contains role bits
|
||||
return this->AddCategory( inRole );
|
||||
}
|
||||
|
||||
// ******************************************************************************************
|
||||
// METHOD: AddCategoryBypassParameter
|
||||
// ******************************************************************************************
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2016-2017, 2019, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2016-2017, 2019, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -28,6 +28,7 @@
|
|||
#include "AAX_IACFFeatureInfo.h"
|
||||
#include "AAX_VPropertyMap.h"
|
||||
#include "AAX_UIDs.h"
|
||||
#include "AAX_Errors.h"
|
||||
|
||||
// Standard includes
|
||||
#include <memory>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2010-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2010-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -26,6 +26,7 @@
|
|||
#include "AAX_VHostProcessorDelegate.h"
|
||||
|
||||
#include "AAX_UIDs.h"
|
||||
#include "AAX_Errors.h"
|
||||
|
||||
// ******************************************************************************************
|
||||
// METHOD: AAX_VHostProcessorDelegate
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2013-2015, 2018, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2015, 2018, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
#include "AAX_VHostServices.h"
|
||||
#include "AAX_UIDs.h"
|
||||
#include "AAX_Errors.h"
|
||||
#include "acfbaseapi.h"
|
||||
#include "ACFPtr.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2016-2017, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2016-2017, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
#include "AAX_VPageTable.h"
|
||||
#include "AAX_UIDs.h"
|
||||
#include "AAX_Errors.h"
|
||||
|
||||
|
||||
// ******************************************************************************************
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2013-2015, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2015, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
#include "AAX_VPrivateDataAccess.h"
|
||||
#include "AAX_UIDs.h"
|
||||
#include "AAX_Errors.h"
|
||||
|
||||
// ******************************************************************************************
|
||||
// METHOD: AAX_VPrivateDataAccess
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2013-2017, 2019, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2017, 2019, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -227,6 +227,20 @@ AAX_CBoolean AAX_VPropertyMap::GetPointerProperty ( AAX_EProperty inProperty, co
|
|||
// ******************************************************************************************
|
||||
AAX_Result AAX_VPropertyMap::AddProperty ( AAX_EProperty inProperty, AAX_CPropertyValue inValue )
|
||||
{
|
||||
// AAX_eProperty_StemFormat is an alias to register equivalent input/output stem formats
|
||||
if (AAX_eProperty_StemFormat == inProperty)
|
||||
{
|
||||
AAX_Result inputResult = this->AddProperty(AAX_eProperty_InputStemFormat, inValue);
|
||||
AAX_Result outputResult = this->AddProperty(AAX_eProperty_OutputStemFormat, inValue);
|
||||
if (inputResult != AAX_SUCCESS) {
|
||||
return inputResult;
|
||||
}
|
||||
if (outputResult != AAX_SUCCESS) {
|
||||
return outputResult;
|
||||
}
|
||||
return AAX_SUCCESS;
|
||||
}
|
||||
|
||||
// PT-223581: Pro Tools removes plug-ins from the insert menu if unsupported stem formats are detected
|
||||
if ( (AAX_eProperty_InputStemFormat == inProperty) || (AAX_eProperty_OutputStemFormat == inProperty))
|
||||
{
|
||||
|
|
@ -246,7 +260,7 @@ AAX_Result AAX_VPropertyMap::AddProperty ( AAX_EProperty inProperty, AAX_CProper
|
|||
}
|
||||
// otherwise, it is fine to register stem formats which are unknown to the host
|
||||
}
|
||||
|
||||
|
||||
if ( mIACFPropertyMap )
|
||||
{
|
||||
return mIACFPropertyMap->AddProperty ( inProperty, inValue );
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*================================================================================================*/
|
||||
/*
|
||||
* Copyright 2013-2015, 2019-2021, 2023-2024 Avid Technology, Inc.
|
||||
* Copyright 2013-2015, 2019-2021, 2023-2025 Avid Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the Avid AAX SDK.
|
||||
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
#include "AAX_VTransport.h"
|
||||
#include "AAX_UIDs.h"
|
||||
#include "AAX_Errors.h"
|
||||
|
||||
AAX_VTransport::AAX_VTransport( IACFUnknown* pUnknown )
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue