diff --git a/plugins/editor/src/editor/DlgAbout.cpp b/plugins/editor/src/editor/DlgAbout.cpp index 75392fab..3d417dae 100644 --- a/plugins/editor/src/editor/DlgAbout.cpp +++ b/plugins/editor/src/editor/DlgAbout.cpp @@ -136,6 +136,16 @@ SAboutDialog::SAboutDialog(const CRect& bounds) aboutView->setViewSize(aboutBounds); } +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 e7d621d8..e7ac0119 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,9 @@ class SAboutDialog : public CViewContainer, public IControlListener { 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 19016456..59369023 100644 --- a/plugins/editor/src/editor/EditIds.h +++ b/plugins/editor/src/editor/EditIds.h @@ -46,6 +46,9 @@ 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 5134b533..6697d07f 100644 --- a/plugins/editor/src/editor/Editor.cpp +++ b/plugins/editor/src/editor/Editor.cpp @@ -403,6 +403,12 @@ 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::PluginHost: + aboutDialog_->setPluginHost(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..f1768b9e 100644 --- a/plugins/vst/SfizzVstEditor.cpp +++ b/plugins/vst/SfizzVstEditor.cpp @@ -97,6 +97,15 @@ 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")); + + 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());