From 77aff4b1df28df13d64efdc5bd5a4389121eb261 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Tue, 6 Apr 2021 20:45:37 +0200 Subject: [PATCH 1/2] Pass the type of plugin to editor --- plugins/editor/src/editor/DlgAbout.cpp | 5 +++++ plugins/editor/src/editor/DlgAbout.h | 3 +++ plugins/editor/src/editor/EditIds.h | 2 ++ plugins/editor/src/editor/Editor.cpp | 3 +++ plugins/lv2/sfizz_ui.cpp | 3 +++ plugins/vst/SfizzVstEditor.cpp | 3 +++ 6 files changed, 19 insertions(+) diff --git a/plugins/editor/src/editor/DlgAbout.cpp b/plugins/editor/src/editor/DlgAbout.cpp index 75392fab..95024388 100644 --- a/plugins/editor/src/editor/DlgAbout.cpp +++ b/plugins/editor/src/editor/DlgAbout.cpp @@ -136,6 +136,11 @@ SAboutDialog::SAboutDialog(const CRect& bounds) aboutView->setViewSize(aboutBounds); } +void SAboutDialog::setPluginFormat(const std::string& pluginFormat) +{ + // 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 e7d621d8..399e563c 100644 --- a/plugins/editor/src/editor/DlgAbout.h +++ b/plugins/editor/src/editor/DlgAbout.h @@ -9,6 +9,7 @@ #include "vstgui/lib/cviewcontainer.h" #include "vstgui/vstgui.h" #include "utility/vstgui_after.h" +#include using namespace VSTGUI; @@ -25,6 +26,8 @@ class SAboutDialog : public CViewContainer, public IControlListener { public: explicit SAboutDialog(const CRect& bounds); + void setPluginFormat(const std::string& pluginFormat); + 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 19016456..2fc496eb 100644 --- a/plugins/editor/src/editor/EditIds.h +++ b/plugins/editor/src/editor/EditIds.h @@ -46,6 +46,8 @@ enum class EditId : int { // BackgroundImage, // + PluginFormat, + // #undef KEY_RANGE #undef CC_RANGE }; diff --git a/plugins/editor/src/editor/Editor.cpp b/plugins/editor/src/editor/Editor.cpp index 5134b533..436c5a91 100644 --- a/plugins/editor/src/editor/Editor.cpp +++ b/plugins/editor/src/editor/Editor.cpp @@ -403,6 +403,9 @@ void Editor::Impl::uiReceiveValue(EditId id, const EditValue& v) fallbackFilesDir_ = v.to_string(); break; } + case EditId::PluginFormat: + aboutDialog_->setPluginFormat(v.to_string()); + break; case EditId::UINumCurves: { const int value = static_cast(v.to_float()); diff --git a/plugins/lv2/sfizz_ui.cpp b/plugins/lv2/sfizz_ui.cpp index 581f373f..9627d7e1 100644 --- a/plugins/lv2/sfizz_ui.cpp +++ b/plugins/lv2/sfizz_ui.cpp @@ -256,6 +256,9 @@ instantiate(const LV2UI_Descriptor *descriptor, self->editor.reset(editor); editor->open(*uiFrame); + // let the editor know about plugin format + self->uiReceiveValue(EditId::PluginFormat, std::string("LV2")); + // user files dir is not relevant to LV2 (not yet?) // LV2 has its own path management mechanism self->uiReceiveValue(EditId::CanEditUserFilesDir, 0); diff --git a/plugins/vst/SfizzVstEditor.cpp b/plugins/vst/SfizzVstEditor.cpp index 8053e91a..98ba5ac6 100644 --- a/plugins/vst/SfizzVstEditor.cpp +++ b/plugins/vst/SfizzVstEditor.cpp @@ -97,6 +97,9 @@ bool PLUGIN_API SfizzVstEditor::open(void* parent, const VSTGUI::PlatformType& p for (FObject* update : continuousUpdates_) update->deferUpdate(); + // let the editor know about plugin format + uiReceiveValue(EditId::PluginFormat, std::string("VST3")); + absl::optional userFilesDir = SfizzPaths::getSfzConfigDefaultPath(); uiReceiveValue(EditId::CanEditUserFilesDir, 1); uiReceiveValue(EditId::UserFilesDir, userFilesDir.value_or(fs::path()).u8string()); From fafabe53fca837c4c369db60a98bd5406d824f9d Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Tue, 6 Apr 2021 21:01:39 +0200 Subject: [PATCH 2/2] 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());