20 #include "IPlugStructs.h" 35 #pragma mark - Plug-in properties 52 const char*
GetMfrName()
const {
return mMfrName.Get(); }
92 void GetBuildInfoStr(WDL_String& str,
const char* date,
const char* time)
const;
95 bool HasUI()
const {
return mHasUI; }
101 const char* GetBundleID()
const {
return mBundleID.Get(); }
103 #pragma mark - Parameters 121 #pragma mark - State Serialization 169 #pragma mark - Preset Manipulation 182 int NPresets()
const {
return mPresets.GetSize(); }
204 IPreset* pDst = mPresets.Get(destIdx);
206 pDst->mChunk.
Clear();
207 pDst->mChunk.
PutChunk(&pSrc->mChunk);
208 pDst->mInitialized =
true;
209 strncpy(pDst->mName, pSrc->mName, MAX_PRESET_NAME_LEN - 1);
303 #pragma mark - Parameter manipulation 320 void InitParamRange(
int startIdx,
int endIdx,
int countStart,
const char* nameFmtStr,
double defaultVal,
double minVal,
double maxVal,
double step,
const char* label =
"",
int flags = 0,
const char* group =
"",
const IParam::Shape& shape =
IParam::ShapeLinear(),
IParam::EParamUnit unit = IParam::kUnitCustom,
IParam::DisplayFunc displayFunc =
nullptr);
329 void CloneParamRange(
int cloneStartIdx,
int cloneEndIdx,
int startIdx,
const char* searchStr =
"",
const char* replaceStr =
"",
const char* newGroup =
"");
335 void ForParamInRange(
int startIdx,
int endIdx, std::function<
void(
int paramIdx,
IParam& param)> func);
388 friend class IPlugWEB;
393 int mCurrentPresetIdx = 0;
395 bool mStateChunks =
false;
397 WDL_String mPluginName;
399 WDL_String mProductName;
409 int mHostVersion = 0;
411 EHost mHost = kHostUninit;
415 WDL_String mBundleID;
419 bool mHostResize =
false;
421 WDL_PtrList<const char> mParamGroups;
423 WDL_PtrList<IPreset> mPresets;
429 WDL_Mutex mParams_mutex;
void MakeDefaultPreset(const char *name=0, int nPresets=1)
This method can be used to initialize baked-in factory presets with the default parameter values...
void GetBuildInfoStr(WDL_String &str, const char *date, const char *time) const
Get the build date of the plug-in and architecture/api details in one string.
const char * GetPresetName(int idx) const
Get the name a preset.
The base class of an IPlug plug-in, which interacts with the different plug-in APIs.
virtual void InformHostOfParameterDetailsChange()
Implemented by the API class, call this if you update parameter labels and hopefully the host should ...
void MakePreset(const char *name,...)
Create a baked-in factory preset, specifiying parameter values sequentially usage: MakePreset(name...
void PrintParamValues()
Default parameter values for a parameter group.
const char * GetArchStr() const
const char * GetProductName() const
Get the product name as a CString.
int NPresets() const
Gets the number of factory presets.
void CloneParamRange(int cloneStartIdx, int cloneEndIdx, int startIdx, const char *searchStr="", const char *replaceStr="", const char *newGroup="")
Clone a range of parameters, optionally doing a string substitution on the parameter name...
const char * GetAPIStr() const
void Clear()
Clears the chunk (resizes to 0)
virtual void InformHostOfPresetChange()
Implemented by the API class, called by the UI (etc) when the plug-in initiates a program/preset chan...
void DumpMakePresetSrc(const char *file) const
Writes a call to MakePreset() for the current preset to a new text file.
void ForParamInGroup(const char *paramGroup, std::function< void(int paramIdx, IParam ¶m)> func)
Modify a parameter group simulataneously.
void MakePresetFromNamedParams(const char *name, int nParamsNamed,...)
Create a baked-in factory preset, specifiying parameter values with a list of parameter index and val...
IPlug's parameter class.
void GetHostVersionStr(WDL_String &str) const
Get the host version number as a string.
Standalone application base class for an IPlug plug-in.
void PruneUninitializedPresets()
[AUV2 only] Removes any presets that weren't initialized
void SetCurrentPresetIdx(int idx)
Set the index of the current, active preset.
void RandomiseParamValues()
Randomise all parameters.
IPlug's parameter class.
void GetPluginVersionStr(WDL_String &str) const
Gets the plug-in version as a string.
bool DoesStateChunks() const
virtual bool SerializeState(IByteChunk &chunk) const
Override this method to serialize custom state data, if your plugin does state chunks.
AudioUnit v3 API base class for an IPlug plug-in.
const char * GetParamGroupName(int idx) const
Get the parameter group name as a particular index.
Base struct for parameter shaping.
void EnsureDefaultPreset()
[VST2 only] Called to fill uninitialzed presets
void GetHostStr(WDL_String &str) const
Get the host name as a CString.
void DumpPresetBlob(const char *file) const
Writes a call to MakePresetFromBlob() for the current preset to a new text file.
IPlug logging a.k.a tracing functionality.
VST3 Processor API-base class for a distributed IPlug VST3 plug-in.
Manages a block of memory, for plug-in settings store/recall.
void DefaultParamValues()
Set all parameters to their default values.
int UnserializePresets(const IByteChunk &chunk, int startPos)
[VST2 only] Called when the VST2 host calls effSetChunk for a bank *
void CopyPreset(IPreset *pSrc, int destIdx, bool copyname=false)
Copy source preset to preset at index.
VST2.4 API base class for an IPlug plug-in.
void MakePresetFromBlob(const char *name, const char *blob, int sizeOfChunk)
Creates a preset from a base64 encoded CString.
AAX API base class for an IPlug plug-in.
int UnserializeParams(const IByteChunk &chunk, int startPos)
Unserializes double precision floating point, non-normalised values from a byte chunk into mParams...
const char * GetPluginName() const
VST3 base class for a non-distributed IPlug VST3 plug-in.
IPreset * GetPreset(int idx)
Get a ptr to a factory preset @ param idx The index number of the preset you are referring to...
virtual int UnserializeState(const IByteChunk &chunk, int startPos)
Override this method to unserialize custom state data, if your plugin does state chunks.
A struct used for specifying baked-in factory presets.
std::function< void(double, WDL_String &)> DisplayFunc
DisplayFunc allows custom parameter display functions, defined by a lambda matching this signature...
const char * GetMfrName() const
Get the manufacturer name as a CString.
int GetHostVersion(bool decimal) const
Get the host version number as an integer.
bool LoadPresetFromFXP(const char *file)
Load VST2 format preset.
int GetCurrentPresetIdx() const
Get the index of the current, active preset.
void ModifyCurrentPreset(const char *name=0)
This method should update the current preset with current values NOTE: This is only relevant for VST2...
Used for choosing an editor delegate.
bool LoadBankFromFXB(const char *file)
Load VST2 format bank [VST2 only].
bool GetHostResizeEnabled() const
bool SerializeParams(IByteChunk &chunk) const
Serializes the current double precision floating point, non-normalised values (IParam::mValue) of all...
EParamUnit
Used by AudioUnit plugins to determine the appearance of parameters, based on the kind of data they r...
bool RestorePreset(int idx)
Restore a preset by index.
void ForParamInRange(int startIdx, int endIdx, std::function< void(int paramIdx, IParam ¶m)> func)
Modify a range of parameters with a lamda function.
void MakePresetFromChunk(const char *name, IByteChunk &chunk)
Creates a preset from an IByteChunk containging serialized data.
Shared VST3 processor code.
bool SavePresetAsFXP(const char *file) const
Save current state as a VST2 format preset.
int AddParamGroup(const char *name)
Called to add a parameter group name, when a unique group name is discovered.
VST3 Controller API-base class for a distributed IPlug VST3 plug-in.
AudioUnit v2 API base class for an IPlug plug-in.
virtual int UnserializeVST3CtrlrState(const IByteChunk &chunk, int startPos)
VST3 ONLY! - THIS IS ONLY INCLUDED FOR COMPATIBILITY - NOONE ELSE SHOULD NEED IT! ...
void DumpMakePresetFromNamedParamsSrc(const char *file, const char *paramEnumNames[]) const
Writes a call to MakePresetFromNamedParams() for the current preset to a new text file...
int PutChunk(const IByteChunk *pRHS)
Put another IByteChunk into this one.
void InitParamRange(int startIdx, int endIdx, int countStart, const char *nameFmtStr, double defaultVal, double minVal, double maxVal, double step, const char *label="", int flags=0, const char *group="", const IParam::Shape &shape=IParam::ShapeLinear(), IParam::EParamUnit unit=IParam::kUnitCustom, IParam::DisplayFunc displayFunc=nullptr)
Initialise a range of parameters simultaneously.
int GetPluginVersion(bool decimal) const
Get the plug-in version number.
void CopyParamValues(int startIdx, int destIdx, int nParams)
Copy a range of parameter values.
bool SerializePresets(IByteChunk &chunk) const
[VST2 only] Called when the VST2 host calls effGetChunk for a bank *
Linear parameter shaping.
bool SaveBankAsFXB(const char *file) const
Save current bank as a VST2 format bank [VST2 only].
Base class that contains plug-in info and state manipulation methods.
virtual void OnPresetsModified()
[VST2 only] Called when the preset name is changed by the host
static void GetHostNameStr(EHost host, WDL_String &str)
Gets a human-readable name from host identifier.
WebAudioModule (WAM) API base class.
virtual bool SerializeVST3CtrlrState(IByteChunk &chunk) const
VST3 ONLY! - THIS IS ONLY INCLUDED FOR COMPATIBILITY - NOONE ELSE SHOULD NEED IT! ...