20#include <pluginterfaces/vst/ivsteditcontroller.h>
21#include <pluginterfaces/vst/ivstparameterchanges.h>
26 return wxString::Format(
"%s;%s", modulePath, effectUIDString);
30 std::string* effectUIDString)
32 const auto sep = pluginPath.Find(
';',
true);
33 if(sep != wxNOT_FOUND &&
37 static_cast<size_t>(sep) < pluginPath.Length() - 1)
39 if(modulePath !=
nullptr)
40 *modulePath = pluginPath.Left(sep);
41 if(effectUIDString !=
nullptr)
42 *effectUIDString = pluginPath.Mid(
static_cast<size_t>(sep) + 1);
50 static const wxCSConv csConv { wxFONTENCODING_UTF16 };
51 return {
reinterpret_cast<const char*
>(
str), csConv };
56 auto suffix =
ToWxString(parameterInfo.shortTitle);
61 return wxString::Format(
"%lu_",
static_cast<unsigned long>(parameterInfo.id)) + suffix;
63 return wxString::Format(
"%lu",
static_cast<unsigned long>(parameterInfo.id));
68 const auto pos =
key.Find(
'_');
69 const auto idStr = pos == wxNOT_FOUND ?
key :
key.Left(pos);
70 unsigned long value { };
71 if(idStr.ToULong(&value))
73 paramId =
static_cast<Steinberg::Vst::ParamID
>(value);
82 Steinberg::Buffer buffer(
str.length() / 4 * 3);
87 buffer.setSize(numBytes);
90 result->mBuffer.take(buffer);
static const AudacityProject::AttachedObjects::RegisteredFactory key
static Steinberg::IPtr< PresetsBufferStream > fromString(const wxString &str)
wxString toString() const
static wxString MakePluginPathString(const wxString &modulePath, const std::string &effectUIDString)
static wxString ToWxString(const Steinberg::Vst::TChar *str)
static bool ParseAutomationParameterKey(const wxString &key, Steinberg::Vst::ParamID ¶mId)
static wxString MakeAutomationParameterKey(const Steinberg::Vst::ParameterInfo &info)
static bool ParsePluginPath(const wxString &pluginPath, wxString *modulePath, std::string *effectUIDString)
STRINGS_API wxString Encode(const void *in, int len)
STRINGS_API int Decode(const wxString &in, void *out)