Merge pull request #787 from jpcima/editor-host-info

Editor host info
This commit is contained in:
JP Cimalando 2021-04-06 21:51:50 +02:00 committed by GitHub
commit ef7288857a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 35 additions and 0 deletions

View file

@ -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);

View file

@ -9,6 +9,7 @@
#include "vstgui/lib/cviewcontainer.h"
#include "vstgui/vstgui.h"
#include "utility/vstgui_after.h"
#include <string>
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;

View file

@ -46,6 +46,9 @@ enum class EditId : int {
//
BackgroundImage,
//
PluginFormat,
PluginHost,
//
#undef KEY_RANGE
#undef CC_RANGE
};

View file

@ -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<int>(v.to_float());

View file

@ -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);

View file

@ -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<Vst::IHostApplication> app { controller->getHostContext() }) {
Vst::String128 name;
app->getName(name);
uiReceiveValue(EditId::PluginHost, std::string(Steinberg::String(name).text8()));
}
absl::optional<fs::path> userFilesDir = SfizzPaths::getSfzConfigDefaultPath();
uiReceiveValue(EditId::CanEditUserFilesDir, 1);
uiReceiveValue(EditId::UserFilesDir, userFilesDir.value_or(fs::path()).u8string());