From a186f083ca010739b73c13bc75b0973264871de2 Mon Sep 17 00:00:00 2001 From: falkTX Date: Wed, 2 Aug 2017 10:13:15 +0200 Subject: Add vst product string test, to know if we should capture keys --- distrho/src/DistrhoPluginVST.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/distrho/src/DistrhoPluginVST.cpp b/distrho/src/DistrhoPluginVST.cpp index efeedace..e6b9f0f1 100644 --- a/distrho/src/DistrhoPluginVST.cpp +++ b/distrho/src/DistrhoPluginVST.cpp @@ -124,8 +124,20 @@ public: fEffect(effect), fUiHelper(uiHelper), fPlugin(plugin), - fUI(this, winId, editParameterCallback, setParameterCallback, setStateCallback, sendNoteCallback, setSizeCallback, plugin->getInstancePointer()) + fUI(this, winId, editParameterCallback, setParameterCallback, setStateCallback, sendNoteCallback, setSizeCallback, plugin->getInstancePointer()), + fShouldCaptureVstKeys(false) { + // FIXME only needed for windows? +//#ifdef DISTRHO_OS_WINDOWS + char strBuf[0xff+1]; + std::memset(strBuf, 0, sizeof(char)*(0xff+1)); + hostCallback(audioMasterGetProductString, 0, 0, strBuf); + d_stdout("Plugin UI running in '%s'", strBuf); + + // TODO make a white-list of needed hosts + if (/*std::strcmp(strBuf, "") == 0*/ true) + fShouldCaptureVstKeys = true; +//#endif } // ------------------------------------------------------------------- @@ -172,6 +184,9 @@ public: int handlePluginKeyEvent(const bool down, int32_t index, const intptr_t value) { # if !DISTRHO_PLUGIN_HAS_EXTERNAL_UI + if (! fShouldCaptureVstKeys) + return 0; + d_stdout("handlePluginKeyEvent %i %i %li\n", down, index, (long int)value); int special = 0; @@ -284,6 +299,7 @@ private: // Plugin UI UIExporter fUI; + bool fShouldCaptureVstKeys; // ------------------------------------------------------------------- // Callbacks -- cgit v1.2.3