From 187d88e75ad02e0251438ea180e682e2412fbe39 Mon Sep 17 00:00:00 2001 From: Tom Poole Date: Mon, 12 Feb 2018 16:35:01 +0000 Subject: [PATCH] VST: Added a Cockos extension to the VST interface to display parameter labels --- .../VST/juce_VST_Wrapper.cpp | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp index 728957af24..522162dc05 100644 --- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp @@ -1931,6 +1931,9 @@ private: if (args.index == presonusVendorID && args.value == presonusSetContentScaleFactor) return handleSetContentScaleFactor (args.opt); + if (args.index == plugInOpcodeGetParameterText) + return handleCockosGetParameterText (args.value, args.ptr, args.opt); + if (auto callbackHandler = dynamic_cast (processor)) return callbackHandler->handleVstManufacturerSpecific (args.index, args.value, args.ptr, args.opt); @@ -1988,6 +1991,9 @@ private: } #endif + if (matches ("hasCockosExtensions")) + return (int32) 0xbeef0000; + return 0; } @@ -2083,6 +2089,23 @@ private: return 1; } + pointer_sized_int handleCockosGetParameterText (pointer_sized_int paramIndex, + void* destination, + float value) + { + if (processor != nullptr && destination != nullptr) + { + if (auto* param = processor->getParameters()[(int) paramIndex]) + { + String text (param->getText (value, 1024)); + memcpy (destination, text.toRawUTF8(), text.length() + 1); + return 0xbeef; + } + } + + return 0; + } + //============================================================================== pointer_sized_int handleGetNumMidiInputChannels() {