Jamba C++ API
6.1.0
|
This is the class which maintains all the registered parameters. More...
#include <Parameters.h>
Classes | |
class | IChangeListener |
Interface to implement to receive parameter changes. More... | |
struct | JmbParamDefBuilder |
Implements the builder pattern for ease of build. More... | |
struct | RawVstParamDefBuilder |
Implements the builder pattern for ease of build. More... | |
struct | VstParamDefBuilder |
Implements the builder pattern for ease of build. More... | |
Public Types | |
using | ChangeCallback = std::function< void()> |
A callback that will be invoked for changes. More... | |
template<typename Param > | |
using | ChangeCallback1 = std::function< void(Param &)> |
A callback which will be invoked for changes with the param as an argument. More... | |
template<typename TView , typename Param > | |
using | ChangeCallback2 = std::function< void(TView *, Param &)> |
A callback which will be invoked for changes with the view and param as arguments. More... | |
Public Member Functions | |
std::vector< ParamID > const & | getAllRegistrationOrder () const |
NormalizedState::SaveOrder const * | getGUIDeprecatedSaveStateOrder (int16 iVersion) const |
NormalizedState::SaveOrder const & | getGUISaveStateOrder () const |
std::shared_ptr< IJmbParamDef > | getJmbParamDef (ParamID iParamID) const |
std::shared_ptr< RawVstParamDef > | getRawVstParamDef (ParamID iParamID) const |
NormalizedState::SaveOrder const & | getRTSaveStateOrder () const |
std::vector< ParamID > const & | getVstRegistrationOrder () const |
virtual tresult | handleRTStateUpgrade (NormalizedState const &iDeprecatedState, NormalizedState &oNewState) const |
When Jamba detects that a previously saved RT state matches a deprecated version (as registered with setRTDeprecatedSaveStateOrder ), it will call this method to let the plugin handle the upgrade if necessary. More... | |
template<typename ParamSerializer , typename... Args> | |
JmbParamDefBuilder< typename ParamSerializer::ParamType > | jmb (ParamID iParamID, VstString16 iTitle, Args &&...iSerializerArgs) |
Used from derived classes to build a non vst parameter (not convertible to a ParamValue) More... | |
template<typename ParamSerializer > | |
JmbParamDefBuilder< typename ParamSerializer::ParamType > | jmb (int32 iParamID, VstString16 iTitle, typename ParamSerializer::ConstructorType initValue) |
This flavor allows the ParamSerializer to provide an actual type for the primary constructor. More... | |
template<typename T > | |
JmbParamDefBuilder< T > | jmbFromType (ParamID iParamID, VstString16 iTitle) |
Used from derived classes to build a non vst parameter (not convertible to a ParamValue). More... | |
virtual std::unique_ptr< NormalizedState > | newRTState () const |
virtual std::unique_ptr< NormalizedState > | newRTState (NormalizedState::SaveOrder const *iSaveOrder) const |
Parameters ()=default | |
RawVstParamDefBuilder | raw (ParamID iParamID, VstString16 iTitle) |
Used from derived classes to build a parameter backed by a raw VST parameter. More... | |
virtual ParamValue | readNormalizedValue (ParamID iParamID, IBStreamer &iStreamer) const |
virtual tresult | readRTState (IBStreamer &iStreamer, NormalizedState *oNormalizedState) const |
This method is called to read the RTState from the stream. More... | |
void | registerVstParameters (Vst::ParameterContainer &iParameterContainer) const |
This method is called from the GUI controller to register all the parameters to the ParameterContainer class which is the class managing the parameters in the vst sdk. More... | |
template<typename... Args> | |
tresult | setGUIDeprecatedSaveStateOrder (int16 iVersion, Args &&...args) |
This method should be called to save the order of a deprecated version so that it can be handled during upgrade. More... | |
template<typename... Args> | |
tresult | setGUISaveStateOrder (int16 iVersion, Args &&...args) |
Used to change the default order (registration order) used when saving the GUI state (getState/setState in the controller) More... | |
tresult | setGUISaveStateOrder (NormalizedState::SaveOrder const &iSaveOrder) |
Used to change the default order (registration order) used when saving the GUI state (getState/setState in the controller) More... | |
template<typename... Args> | |
tresult | setRTDeprecatedSaveStateOrder (int16 iVersion, Args &&...args) |
This method should be called to save the order of a deprecated version so that it can be handled during upgrade. More... | |
template<typename... Args> | |
tresult | setRTSaveStateOrder (int16 iVersion, Args &&...args) |
Used to change the default order (registration order) used when saving the RT state (getState/setState in the processor, setComponentState in the controller) More... | |
tresult | setRTSaveStateOrder (NormalizedState::SaveOrder const &iSaveOrder) |
Used to change the default order (registration order) used when saving the RT state (getState/setState in the processor, setComponentState in the controller) More... | |
template<typename ParamConverter , typename... Args> | |
VstParamDefBuilder< typename ParamConverter::ParamType > | vst (ParamID iParamID, VstString16 iTitle, Args &&...iConverterArgs) |
Used from derived classes to build a parameter backed by a VST parameter. More... | |
template<typename ParamConverter > | |
VstParamDefBuilder< typename ParamConverter::ParamType > | vst (int32 iParamID, VstString16 iTitle, typename ParamConverter::ConstructorType initValue) |
This flavor allows the ParamConverter to provide an actual type for the primary constructor. More... | |
template<typename T > | |
VstParamDefBuilder< T > | vstFromType (ParamID iParamID, VstString16 iTitle) |
Used from derived classes to build a parameter backed by a VST parameter. More... | |
virtual tresult | writeRTState (NormalizedState const *iNormalizedState, IBStreamer &oStreamer) const |
This method is called to write the NormalizedState to the stream. More... | |
virtual | ~Parameters ()=default |
Protected Member Functions | |
RawVstParam | add (RawVstParamDefBuilder const &iBuilder) |
template<typename T > | |
VstParam< T > | add (VstParamDefBuilder< T > const &iBuilder) |
template<typename T > | |
JmbParam< T > | add (JmbParamDefBuilder< T > const &iBuilder) |
tresult | addJmbParamDef (std::shared_ptr< IJmbParamDef > iParamDef) |
tresult | addVstParamDef (std::shared_ptr< RawVstParamDef > iParamDef) |
virtual tresult | readDeprecatedRTState (uint16 iVersion, IBStreamer &iStreamer, NormalizedState *oNormalizedState) const |
This method is called to read a deprecated (prior version) RTState from the stream. More... | |
Private Member Functions | |
tresult | addParamID (std::vector< ParamID > &oParamIDs, ParamID iParamID) |
tresult | buildParamIDs (std::vector< ParamID > &iParamIDs) |
template<typename... Args> | |
tresult | buildParamIDs (std::vector< ParamID > &iParamIDs, ParamID id, Args &&...args) |
template<typename... Args> | |
tresult | buildParamIDs (std::vector< ParamID > &iParamIDs, std::shared_ptr< IJmbParamDef > &iParamDef, Args &&...args) |
template<typename T , typename... Args> | |
tresult | buildParamIDs (std::vector< ParamID > &iParamIDs, std::shared_ptr< JmbParamDef< T >> &iParamDef, Args &&...args) |
template<typename ParamConverter , typename... Args> | |
tresult | buildParamIDs (std::vector< ParamID > &iParamIDs, std::shared_ptr< VstParamDef< ParamConverter >> &iParamDef, Args &&...args) |
template<typename ParamConverter , size_t N, typename... Args> | |
tresult | buildParamIDs (std::vector< ParamID > &iParamIDs, std::array< std::shared_ptr< VstParamDef< ParamConverter >>, N > &iParamDefs, Args &&...args) |
template<typename... Args> | |
tresult | buildParamIDs (std::vector< ParamID > &iParamIDs, std::shared_ptr< RawVstParamDef > &iParamDef, Args &&...args) |
tresult | setGUIDeprecatedSaveStateOrder (NormalizedState::SaveOrder const &iSaveOrder) |
Called internally with the order for a deprecated version. More... | |
tresult | setRTDeprecatedSaveStateOrder (NormalizedState::SaveOrder const &iSaveOrder) |
Called internally with the order for a deprecated version. More... | |
Private Attributes | |
std::vector< ParamID > | fAllRegistrationOrder {} |
std::map< int16, NormalizedState::SaveOrder > | fGUIDeprecatedSaveStateOrders {} |
NormalizedState::SaveOrder | fGUISaveStateOrder {} |
std::map< ParamID, std::shared_ptr< IJmbParamDef > > | fJmbParams {} |
std::map< int16, NormalizedState::SaveOrder > | fRTDeprecatedSaveStateOrders {} |
NormalizedState::SaveOrder | fRTSaveStateOrder {} |
std::map< ParamID, std::shared_ptr< RawVstParamDef > > | fVstParams {} |
std::vector< ParamID > | fVstRegistrationOrder {} |
Friends | |
class | Debug::ParamDisplay |
This is the class which maintains all the registered parameters.
using ChangeCallback = std::function<void()> |
A callback that will be invoked for changes.
Note that unlike the IChangeListener, there is no parameter since it is expected to be used like this:
fMyParam = registerVstParam(myParamId, [this]() { .... ; });
using ChangeCallback1 = std::function<void(Param &)> |
A callback which will be invoked for changes with the param as an argument.
using ChangeCallback2 = std::function<void(TView *, Param &)> |
A callback which will be invoked for changes with the view and param as arguments.
|
explicitdefault |
|
virtualdefault |
|
protected |
|
protected |
|
protected |
|
protected |
|
private |
|
protected |
|
inlineprivate |
|
private |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
private |
|
inlineprivate |
|
inline |
NormalizedState::SaveOrder const * getGUIDeprecatedSaveStateOrder | ( | int16 | iVersion | ) | const |
nullptr
if there is no such version
|
inline |
std::shared_ptr< IJmbParamDef > getJmbParamDef | ( | ParamID | iParamID | ) | const |
std::shared_ptr< RawVstParamDef > getRawVstParamDef | ( | ParamID | iParamID | ) | const |
|
inline |
|
inline |
|
inlinevirtual |
When Jamba detects that a previously saved RT state matches a deprecated version (as registered with setRTDeprecatedSaveStateOrder
), it will call this method to let the plugin handle the upgrade if necessary.
Here is an example of a typical implementation of this method:
oNewState
has already been populated with the values from iDeprecatedState
that had the same parameter ID, this method should be overridden only when further tweaks need to happen (like in the above example when a parameter value which was an enumeration, need to be converted to a float)iDeprecatedState | the populated deprecated state from which to read the deprecated values |
oNewState | the new state already populated with the common values from iDeprecatedState for further tweaks |
kResultTrue
if handled, kResultFalse
if unhandled Parameters::JmbParamDefBuilder< typename ParamSerializer::ParamType > jmb | ( | ParamID | iParamID, |
VstString16 | iTitle, | ||
Args &&... | iSerializerArgs | ||
) |
Used from derived classes to build a non vst parameter (not convertible to a ParamValue)
Parameters::JmbParamDefBuilder< typename ParamSerializer::ParamType > jmb | ( | int32 | iParamID, |
VstString16 | iTitle, | ||
typename ParamSerializer::ConstructorType | initValue | ||
) |
This flavor allows the ParamSerializer
to provide an actual type for the primary constructor.
Parameters::JmbParamDefBuilder< T > jmbFromType | ( | ParamID | iParamID, |
VstString16 | iTitle | ||
) |
Used from derived classes to build a non vst parameter (not convertible to a ParamValue).
Use this version if you want to provide a different serializer.
|
virtual |
|
virtual |
Parameters::RawVstParamDefBuilder raw | ( | ParamID | iParamID, |
VstString16 | iTitle | ||
) |
Used from derived classes to build a parameter backed by a raw VST parameter.
|
protectedvirtual |
This method is called to read a deprecated (prior version) RTState from the stream.
|
virtual |
|
virtual |
This method is called to read the RTState from the stream.
void registerVstParameters | ( | Vst::ParameterContainer & | iParameterContainer | ) | const |
This method is called from the GUI controller to register all the parameters to the ParameterContainer class which is the class managing the parameters in the vst sdk.
tresult setGUIDeprecatedSaveStateOrder | ( | int16 | iVersion, |
Args &&... | args | ||
) |
This method should be called to save the order of a deprecated version so that it can be handled during upgrade.
A deprecated version should be used when the state changes in a non compatible fashion.
For example, adding new parameters at the end of the state is not an incompatible change and does not require to deprecate the version.
On the other end, adding new parameters in the middle and removing parameters are incompatible changes and require to deprecate the version.
iVersion | should be a >= 0 number. If negative it will be ignored |
args | can be any combination of ParamID , RawVstParamDef, VstParamDef, JmbParamDef |
|
private |
Called internally with the order for a deprecated version.
tresult setGUISaveStateOrder | ( | int16 | iVersion, |
Args &&... | args | ||
) |
Used to change the default order (registration order) used when saving the GUI state (getState/setState in the controller)
iVersion | should be a >= 0 number. If negative it will be ignored |
args | can be any combination of ParamID , RawVstParamDef, VstParamDef, JmbParamDef |
tresult setGUISaveStateOrder | ( | NormalizedState::SaveOrder const & | iSaveOrder | ) |
Used to change the default order (registration order) used when saving the GUI state (getState/setState in the controller)
tresult setRTDeprecatedSaveStateOrder | ( | int16 | iVersion, |
Args &&... | args | ||
) |
This method should be called to save the order of a deprecated version so that it can be handled during upgrade.
A deprecated version should be used when the state changes in a non compatible fashion.
For example, adding new parameters at the end of the state is not an incompatible change and does not require to deprecate the version.
On the other end, adding new parameters in the middle and removing parameters are incompatible changes and require to deprecate the version.
iVersion | should be a >= 0 number. If negative it will be ignored |
args | can be any combination of ParamID , RawVstParamDef, VstParamDef |
|
private |
Called internally with the order for a deprecated version.
tresult setRTSaveStateOrder | ( | int16 | iVersion, |
Args &&... | args | ||
) |
Used to change the default order (registration order) used when saving the RT state (getState/setState in the processor, setComponentState in the controller)
iVersion | should be a >= 0 number. If negative it will be ignored |
args | can be any combination of ParamID , RawVstParamDef, VstParamDef |
tresult setRTSaveStateOrder | ( | NormalizedState::SaveOrder const & | iSaveOrder | ) |
Used to change the default order (registration order) used when saving the RT state (getState/setState in the processor, setComponentState in the controller)
Parameters::VstParamDefBuilder< typename ParamConverter::ParamType > vst | ( | ParamID | iParamID, |
VstString16 | iTitle, | ||
Args &&... | iConverterArgs | ||
) |
Used from derived classes to build a parameter backed by a VST parameter.
Parameters::VstParamDefBuilder< typename ParamConverter::ParamType > vst | ( | int32 | iParamID, |
VstString16 | iTitle, | ||
typename ParamConverter::ConstructorType | initValue | ||
) |
This flavor allows the ParamConverter
to provide an actual type for the primary constructor.
Parameters::VstParamDefBuilder< T > vstFromType | ( | ParamID | iParamID, |
VstString16 | iTitle | ||
) |
Used from derived classes to build a parameter backed by a VST parameter.
Use this version if you want to provide a different converter.
|
virtual |
This method is called to write the NormalizedState to the stream.
|
friend |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |