From fafabe53fca837c4c369db60a98bd5406d824f9d Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Tue, 6 Apr 2021 21:01:39 +0200 Subject: [PATCH] Pass the name of the VST3 host program --- plugins/editor/src/editor/DlgAbout.cpp | 5 +++++ plugins/editor/src/editor/DlgAbout.h | 1 + plugins/editor/src/editor/EditIds.h | 1 + plugins/editor/src/editor/Editor.cpp | 3 +++ plugins/vst/SfizzVstEditor.cpp | 6 ++++++ 5 files changed, 16 insertions(+) diff --git a/plugins/editor/src/editor/DlgAbout.cpp b/plugins/editor/src/editor/DlgAbout.cpp index 95024388..3d417dae 100644 --- a/plugins/editor/src/editor/DlgAbout.cpp +++ b/plugins/editor/src/editor/DlgAbout.cpp @@ -141,6 +141,11 @@ void SAboutDialog::setPluginFormat(const std::string& pluginFormat) // TODO } +void SAboutDialog::setPluginHost(const std::string& pluginHost) +{ + // TODO +} + CMouseEventResult SAboutDialog::onMouseDown(CPoint& where, const CButtonState& buttons) { CMouseEventResult result = CViewContainer::onMouseDown(where, buttons); diff --git a/plugins/editor/src/editor/DlgAbout.h b/plugins/editor/src/editor/DlgAbout.h index 399e563c..e7ac0119 100644 --- a/plugins/editor/src/editor/DlgAbout.h +++ b/plugins/editor/src/editor/DlgAbout.h @@ -27,6 +27,7 @@ public: explicit SAboutDialog(const CRect& bounds); void setPluginFormat(const std::string& pluginFormat); + void setPluginHost(const std::string& pluginHost); protected: CMouseEventResult onMouseDown(CPoint& where, const CButtonState& buttons) override; diff --git a/plugins/editor/src/editor/EditIds.h b/plugins/editor/src/editor/EditIds.h index 2fc496eb..59369023 100644 --- a/plugins/editor/src/editor/EditIds.h +++ b/plugins/editor/src/editor/EditIds.h @@ -47,6 +47,7 @@ enum class EditId : int { BackgroundImage, // PluginFormat, + PluginHost, // #undef KEY_RANGE #undef CC_RANGE diff --git a/plugins/editor/src/editor/Editor.cpp b/plugins/editor/src/editor/Editor.cpp index 436c5a91..6697d07f 100644 --- a/plugins/editor/src/editor/Editor.cpp +++ b/plugins/editor/src/editor/Editor.cpp @@ -406,6 +406,9 @@ void Editor::Impl::uiReceiveValue(EditId id, const EditValue& v) case EditId::PluginFormat: aboutDialog_->setPluginFormat(v.to_string()); break; + case EditId::PluginHost: + aboutDialog_->setPluginHost(v.to_string()); + break; case EditId::UINumCurves: { const int value = static_cast(v.to_float()); diff --git a/plugins/vst/SfizzVstEditor.cpp b/plugins/vst/SfizzVstEditor.cpp index 98ba5ac6..f1768b9e 100644 --- a/plugins/vst/SfizzVstEditor.cpp +++ b/plugins/vst/SfizzVstEditor.cpp @@ -100,6 +100,12 @@ bool PLUGIN_API SfizzVstEditor::open(void* parent, const VSTGUI::PlatformType& p // let the editor know about plugin format uiReceiveValue(EditId::PluginFormat, std::string("VST3")); + if (FUnknownPtr app { controller->getHostContext() }) { + Vst::String128 name; + app->getName(name); + uiReceiveValue(EditId::PluginHost, std::string(Steinberg::String(name).text8())); + } + absl::optional userFilesDir = SfizzPaths::getSfzConfigDefaultPath(); uiReceiveValue(EditId::CanEditUserFilesDir, 1); uiReceiveValue(EditId::UserFilesDir, userFilesDir.value_or(fs::path()).u8string());