From e727d21431bf1f2d276b684f43d405cbb17ec6bb Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando Date: Thu, 15 Apr 2021 23:33:20 +0200 Subject: [PATCH] Format detection for Audio Unit --- plugins/vst/SfizzVstEditor.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/vst/SfizzVstEditor.cpp b/plugins/vst/SfizzVstEditor.cpp index b7bb01e7..e577eb9f 100644 --- a/plugins/vst/SfizzVstEditor.cpp +++ b/plugins/vst/SfizzVstEditor.cpp @@ -12,6 +12,7 @@ #include "editor/EditIds.h" #include "plugin/SfizzFileScan.h" #include "plugin/InstrumentDescription.h" +#include "pluginterfaces/vst/ivsthostapplication.h" #include "IdleUpdateHandler.h" #if !defined(__APPLE__) && !defined(_WIN32) #include "X11RunLoop.h" @@ -98,14 +99,20 @@ bool PLUGIN_API SfizzVstEditor::open(void* parent, const VSTGUI::PlatformType& p update->deferUpdate(); // let the editor know about plugin format - uiReceiveValue(EditId::PluginFormat, std::string("VST3")); + absl::string_view pluginFormatName = "VST3"; if (FUnknownPtr app { controller->getHostContext() }) { Vst::String128 name; app->getName(name); uiReceiveValue(EditId::PluginHost, std::string(Steinberg::String(name).text8())); + + void* interfacePtr; + if (app->queryInterface(Vst::IVst3ToAUWrapper_iid, &interfacePtr) == kResultTrue) + pluginFormatName = "Audio Unit"; } + uiReceiveValue(EditId::PluginFormat, std::string(pluginFormatName)); + absl::optional userFilesDir = SfizzPaths::getSfzConfigDefaultPath(); uiReceiveValue(EditId::CanEditUserFilesDir, 1); uiReceiveValue(EditId::UserFilesDir, userFilesDir.value_or(fs::path()).u8string());