| @@ -1124,7 +1124,7 @@ public: | |||
| void oscSend_bridge_parameter_ranges2(const uint32_t index, const float step, const float stepSmall, const float stepLarge) const noexcept; | |||
| void oscSend_bridge_parameter_midi_cc(const uint32_t index, const int16_t cc) const noexcept; | |||
| void oscSend_bridge_parameter_midi_channel(const uint32_t index, const uint8_t channel) const noexcept; | |||
| void oscSend_bridge_parameter_value(const int32_t index, const float value) const noexcept; // may be used for internal params (< 0) | |||
| void oscSend_bridge_parameter_value(const uint32_t index, const float value) const noexcept; | |||
| void oscSend_bridge_default_value(const uint32_t index, const float value) const noexcept; | |||
| void oscSend_bridge_current_program(const int32_t index) const noexcept; | |||
| void oscSend_bridge_current_midi_program(const int32_t index) const noexcept; | |||
| @@ -16,7 +16,6 @@ | |||
| */ | |||
| /* TODO: | |||
| * - add more checks to oscSend_* stuff | |||
| * - complete processRack(): carefully add to input, sorted events | |||
| * - implement processPatchbay() | |||
| * - implement oscSend_control_switch_plugins() | |||
| @@ -35,6 +34,7 @@ | |||
| #include "CarlaMIDI.h" | |||
| #include <QtCore/QDir> | |||
| #include <QtCore/QFile> | |||
| #include <QtCore/QFileInfo> | |||
| #include <QtCore/QTextStream> | |||
| @@ -746,38 +746,56 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, cons | |||
| CarlaPlugin* plugin = nullptr; | |||
| #if 0 //ndef BUILD_BRIDGE | |||
| const char* bridgeBinary; | |||
| #ifndef BUILD_BRIDGE | |||
| CarlaString bridgeBinary(pData->options.binaryDir); | |||
| switch (btype) | |||
| if (bridgeBinary.isNotEmpty()) | |||
| { | |||
| case BINARY_POSIX32: | |||
| bridgeBinary = pData->options.bridge_posix32.isNotEmpty() ? (const char*)pData->options.bridge_posix32 : nullptr; | |||
| break; | |||
| case BINARY_POSIX64: | |||
| bridgeBinary = pData->options.bridge_posix64.isNotEmpty() ? (const char*)pData->options.bridge_posix64 : nullptr; | |||
| break; | |||
| case BINARY_WIN32: | |||
| bridgeBinary = pData->options.bridge_win32.isNotEmpty() ? (const char*)pData->options.bridge_win32 : nullptr; | |||
| break; | |||
| case BINARY_WIN64: | |||
| bridgeBinary = pData->options.bridge_win64.isNotEmpty() ? (const char*)pData->options.bridge_win64 : nullptr; | |||
| break; | |||
| default: | |||
| bridgeBinary = nullptr; | |||
| break; | |||
| } | |||
| # ifdef CARLA_OS_LINUX | |||
| // test for local build | |||
| if (bridgeBinary.endsWith("/source/backend/")) | |||
| bridgeBinary += "../bridges/"; | |||
| # endif | |||
| # ifndef CARLA_OS_WIN | |||
| if (btype == BINARY_NATIVE && pData->options.bridge_native.isNotEmpty()) | |||
| bridgeBinary = (const char*)pData->options.bridge_native; | |||
| if (btype == BINARY_NATIVE) | |||
| { | |||
| bridgeBinary += "carla-bridge-native"; | |||
| } | |||
| else | |||
| # endif | |||
| { | |||
| switch (btype) | |||
| { | |||
| case BINARY_POSIX32: | |||
| bridgeBinary += "carla-bridge-posix32"; | |||
| break; | |||
| case BINARY_POSIX64: | |||
| bridgeBinary += "carla-bridge-posix64"; | |||
| break; | |||
| case BINARY_WIN32: | |||
| bridgeBinary += "carla-bridge-win32.exe"; | |||
| break; | |||
| case BINARY_WIN64: | |||
| bridgeBinary += "carla-bridge-win64.exe"; | |||
| break; | |||
| default: | |||
| bridgeBinary.clear(); | |||
| break; | |||
| } | |||
| } | |||
| if (btype != BINARY_NATIVE || (pData->options.preferPluginBridges && bridgeBinary != nullptr)) | |||
| QFile file(bridgeBinary.getBuffer()); | |||
| if (! file.exists()) | |||
| bridgeBinary.clear(); | |||
| } | |||
| if (btype != BINARY_NATIVE || (pData->options.preferPluginBridges && bridgeBinary.isNotEmpty())) | |||
| { | |||
| if (bridgeBinary != nullptr) | |||
| { | |||
| plugin = CarlaPlugin::newBridge(init, btype, ptype, bridgeBinary); | |||
| plugin = CarlaPlugin::newBridge(initializer, btype, ptype, bridgeBinary.getBuffer()); | |||
| } | |||
| # ifdef CARLA_OS_LINUX | |||
| else if (btype == BINARY_WIN32) | |||
| @@ -812,7 +830,7 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, cons | |||
| } | |||
| } | |||
| else | |||
| #endif // BUILD_BRIDGE | |||
| #endif // ! BUILD_BRIDGE | |||
| { | |||
| bool use16Outs; | |||
| setLastError("Invalid or unsupported plugin type"); | |||
| @@ -829,22 +847,22 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, cons | |||
| } | |||
| else if (std::strcmp(label, "FluidSynth") == 0) | |||
| { | |||
| use16Outs = (extra != nullptr && std::strcmp((const char*)extra, "true")); | |||
| use16Outs = (extra != nullptr && std::strcmp((const char*)extra, "true") == 0); | |||
| plugin = CarlaPlugin::newFluidSynth(initializer, use16Outs); | |||
| } | |||
| else if (std::strcmp(label, "LinuxSampler (GIG)") == 0) | |||
| { | |||
| use16Outs = (extra != nullptr && std::strcmp((const char*)extra, "true")); | |||
| use16Outs = (extra != nullptr && std::strcmp((const char*)extra, "true") == 0); | |||
| plugin = CarlaPlugin::newLinuxSampler(initializer, "GIG", use16Outs); | |||
| } | |||
| else if (std::strcmp(label, "LinuxSampler (SF2)") == 0) | |||
| { | |||
| use16Outs = (extra != nullptr && std::strcmp((const char*)extra, "true")); | |||
| use16Outs = (extra != nullptr && std::strcmp((const char*)extra, "true") == 0); | |||
| plugin = CarlaPlugin::newLinuxSampler(initializer, "SF2", use16Outs); | |||
| } | |||
| else if (std::strcmp(label, "LinuxSampler (SFZ)") == 0) | |||
| { | |||
| use16Outs = (extra != nullptr && std::strcmp((const char*)extra, "true")); | |||
| use16Outs = (extra != nullptr && std::strcmp((const char*)extra, "true") == 0); | |||
| plugin = CarlaPlugin::newLinuxSampler(initializer, "SFZ", use16Outs); | |||
| } | |||
| else | |||
| @@ -878,12 +896,12 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, cons | |||
| break; | |||
| case PLUGIN_FILE_GIG: | |||
| use16Outs = (extra != nullptr && std::strcmp((const char*)extra, "true")); | |||
| use16Outs = (extra != nullptr && std::strcmp((const char*)extra, "true") == 0); | |||
| plugin = CarlaPlugin::newFileGIG(initializer, use16Outs); | |||
| break; | |||
| case PLUGIN_FILE_SF2: | |||
| use16Outs = (extra != nullptr && std::strcmp((const char*)extra, "true")); | |||
| use16Outs = (extra != nullptr && std::strcmp((const char*)extra, "true") == 0); | |||
| plugin = CarlaPlugin::newFileSF2(initializer, use16Outs); | |||
| break; | |||
| @@ -2170,7 +2188,7 @@ void CarlaEngine::oscSend_bridge_audio_count(const uint32_t ins, const uint32_t | |||
| char targetPath[std::strlen(pData->oscData->path)+20]; | |||
| std::strcpy(targetPath, pData->oscData->path); | |||
| std::strcat(targetPath, "/bridge_audio_count"); | |||
| try_lo_send(pData->oscData->target, targetPath, "iii", static_cast<int32_t>(ins), static_cast<int32_t>(outs)); | |||
| try_lo_send(pData->oscData->target, targetPath, "ii", static_cast<int32_t>(ins), static_cast<int32_t>(outs)); | |||
| } | |||
| void CarlaEngine::oscSend_bridge_midi_count(const uint32_t ins, const uint32_t outs) const noexcept | |||
| @@ -2206,7 +2224,7 @@ void CarlaEngine::oscSend_bridge_program_count(const uint32_t count) const noexc | |||
| CARLA_SAFE_ASSERT_RETURN(pData->oscData->target != nullptr,); | |||
| carla_debug("CarlaEngine::oscSend_bridge_program_count(%i)", count); | |||
| char targetPath[std::strlen(pData->oscData->path)+22]; | |||
| char targetPath[std::strlen(pData->oscData->path)+23]; | |||
| std::strcpy(targetPath, pData->oscData->path); | |||
| std::strcat(targetPath, "/bridge_program_count"); | |||
| try_lo_send(pData->oscData->target, targetPath, "i", static_cast<int32_t>(count)); | |||
| @@ -2292,7 +2310,7 @@ void CarlaEngine::oscSend_bridge_parameter_midi_channel(const uint32_t index, co | |||
| try_lo_send(pData->oscData->target, targetPath, "ii", static_cast<int32_t>(index), static_cast<int32_t>(channel)); | |||
| } | |||
| void CarlaEngine::oscSend_bridge_parameter_value(const int32_t index, const float value) const noexcept | |||
| void CarlaEngine::oscSend_bridge_parameter_value(const uint32_t index, const float value) const noexcept | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(pData->oscData != nullptr,); | |||
| CARLA_SAFE_ASSERT_RETURN(pData->oscData->path != nullptr && pData->oscData->path[0] != '\0',); | |||
| @@ -2303,7 +2321,7 @@ void CarlaEngine::oscSend_bridge_parameter_value(const int32_t index, const floa | |||
| char targetPath[std::strlen(pData->oscData->path)+24]; | |||
| std::strcpy(targetPath, pData->oscData->path); | |||
| std::strcat(targetPath, "/bridge_parameter_value"); | |||
| try_lo_send(pData->oscData->target, targetPath, "if", index, value); | |||
| try_lo_send(pData->oscData->target, targetPath, "if", static_cast<int32_t>(index), value); | |||
| } | |||
| void CarlaEngine::oscSend_bridge_default_value(const uint32_t index, const float value) const noexcept | |||
| @@ -2326,7 +2344,7 @@ void CarlaEngine::oscSend_bridge_current_program(const int32_t index) const noex | |||
| CARLA_SAFE_ASSERT_RETURN(pData->oscData->target != nullptr,); | |||
| carla_debug("CarlaEngine::oscSend_bridge_current_program(%i)", index); | |||
| char targetPath[std::strlen(pData->oscData->path)+20]; | |||
| char targetPath[std::strlen(pData->oscData->path)+24]; | |||
| std::strcpy(targetPath, pData->oscData->path); | |||
| std::strcat(targetPath, "/bridge_current_program"); | |||
| try_lo_send(pData->oscData->target, targetPath, "i", index); | |||
| @@ -2339,7 +2357,7 @@ void CarlaEngine::oscSend_bridge_current_midi_program(const int32_t index) const | |||
| CARLA_SAFE_ASSERT_RETURN(pData->oscData->target != nullptr,); | |||
| carla_debug("CarlaEngine::oscSend_bridge_current_midi_program(%i)", index); | |||
| char targetPath[std::strlen(pData->oscData->path)+25]; | |||
| char targetPath[std::strlen(pData->oscData->path)+30]; | |||
| std::strcpy(targetPath, pData->oscData->path); | |||
| std::strcat(targetPath, "/bridge_current_midi_program"); | |||
| try_lo_send(pData->oscData->target, targetPath, "i", index); | |||
| @@ -2392,6 +2410,9 @@ void CarlaEngine::oscSend_bridge_set_custom_data(const char* const type, const c | |||
| CARLA_SAFE_ASSERT_RETURN(pData->oscData != nullptr,); | |||
| CARLA_SAFE_ASSERT_RETURN(pData->oscData->path != nullptr && pData->oscData->path[0] != '\0',); | |||
| CARLA_SAFE_ASSERT_RETURN(pData->oscData->target != nullptr,); | |||
| CARLA_SAFE_ASSERT_RETURN(type != nullptr && type[0] != '\0',); | |||
| CARLA_SAFE_ASSERT_RETURN(key != nullptr && key[0] != '\0',); | |||
| CARLA_SAFE_ASSERT_RETURN(value != nullptr,); | |||
| carla_debug("CarlaEngine::oscSend_bridge_set_custom_data(\"%s\", \"%s\", \"%s\")", type, key, value); | |||
| char targetPath[std::strlen(pData->oscData->path)+24]; | |||
| @@ -2414,9 +2435,6 @@ void CarlaEngine::oscSend_bridge_set_chunk_data(const char* const chunkFile) con | |||
| try_lo_send(pData->oscData->target, targetPath, "s", chunkFile); | |||
| } | |||
| // TODO? | |||
| //void oscSend_bridge_set_peaks() const; | |||
| #else | |||
| void CarlaEngine::oscSend_control_add_plugin_start(const uint pluginId, const char* const pluginName) const noexcept | |||
| { | |||
| @@ -316,45 +316,53 @@ int CarlaEngineOsc::handleMessage(const bool isTCP, const char* const path, cons | |||
| // Plugin Bridges | |||
| if ((plugin->getHints() & PLUGIN_IS_BRIDGE) != 0 && std::strlen(method) > 11 && std::strncmp(method, "bridge_", 7) == 0) | |||
| { | |||
| if (std::strcmp(method+7, "audio_count") == 0) | |||
| const char* const bmethod(method+7); | |||
| if (std::strcmp(bmethod, "plugin_info1") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgePluginInfo1, argc, argv, types); | |||
| if (std::strcmp(bmethod, "plugin_info2") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgePluginInfo2, argc, argv, types); | |||
| if (std::strcmp(bmethod, "audio_count") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeAudioCount, argc, argv, types); | |||
| if (std::strcmp(method+7, "midi_count") == 0) | |||
| if (std::strcmp(bmethod, "midi_count") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeMidiCount, argc, argv, types); | |||
| if (std::strcmp(method+7, "parameter_count") == 0) | |||
| if (std::strcmp(bmethod, "parameter_count") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeParameterCount, argc, argv, types); | |||
| if (std::strcmp(method+7, "program_count") == 0) | |||
| if (std::strcmp(bmethod, "program_count") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeProgramCount, argc, argv, types); | |||
| if (std::strcmp(method+7, "midi_program_count") == 0) | |||
| if (std::strcmp(bmethod, "midi_program_count") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeMidiProgramCount, argc, argv, types); | |||
| if (std::strcmp(method+7, "plugin_info") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgePluginInfo, argc, argv, types); | |||
| if (std::strcmp(method+7, "parameter_info") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeParameterInfo, argc, argv, types); | |||
| if (std::strcmp(method+7, "parameter_data") == 0) | |||
| if (std::strcmp(bmethod, "parameter_data") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeParameterData, argc, argv, types); | |||
| if (std::strcmp(method+7, "parameter_ranges") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeParameterRanges, argc, argv, types); | |||
| if (std::strcmp(method+7, "program_info") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeProgramInfo, argc, argv, types); | |||
| if (std::strcmp(method+7, "midi_program_info") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeMidiProgramInfo, argc, argv, types); | |||
| if (std::strcmp(method+7, "configure") == 0) | |||
| if (std::strcmp(bmethod, "parameter_ranges1") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeParameterRanges1, argc, argv, types); | |||
| if (std::strcmp(bmethod, "parameter_ranges2") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeParameterRanges2, argc, argv, types); | |||
| if (std::strcmp(bmethod, "parameter_midi_cc") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeParameterMidiCC, argc, argv, types); | |||
| if (std::strcmp(bmethod, "parameter_midi_channel") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeParameterMidiChannel, argc, argv, types); | |||
| if (std::strcmp(bmethod, "parameter_value") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeParameterValue, argc, argv, types); | |||
| if (std::strcmp(bmethod, "default_value") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeDefaultValue, argc, argv, types); | |||
| if (std::strcmp(bmethod, "current_program") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeCurrentProgram, argc, argv, types); | |||
| if (std::strcmp(bmethod, "current_midi_program") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeCurrentMidiProgram, argc, argv, types); | |||
| if (std::strcmp(bmethod, "program_name") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeProgramName, argc, argv, types); | |||
| if (std::strcmp(bmethod, "midi_program_data") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeMidiProgramData, argc, argv, types); | |||
| if (std::strcmp(bmethod, "configure") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeConfigure, argc, argv, types); | |||
| if (std::strcmp(method+7, "set_parameter_value") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeSetParameterValue, argc, argv, types); | |||
| if (std::strcmp(method+7, "set_default_value") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeSetDefaultValue, argc, argv, types); | |||
| if (std::strcmp(method+7, "set_program") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeSetProgram, argc, argv, types); | |||
| if (std::strcmp(method+7, "set_midi_program") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeSetMidiProgram, argc, argv, types); | |||
| if (std::strcmp(method+7, "set_custom_data") == 0) | |||
| if (std::strcmp(bmethod, "set_custom_data") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeSetCustomData, argc, argv, types); | |||
| if (std::strcmp(method+7, "set_chunk_data") == 0) | |||
| if (std::strcmp(bmethod, "set_chunk_data") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeSetChunkData, argc, argv, types); | |||
| if (std::strcmp(method+7, "update") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeUpdateNow, argc, argv, types); | |||
| if (std::strcmp(method+7, "error") == 0) | |||
| if (std::strcmp(bmethod, "update") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeUpdate, argc, argv, types); | |||
| if (std::strcmp(bmethod, "error") == 0) | |||
| return CarlaPluginSetOscBridgeInfo(plugin, kPluginBridgeError, argc, argv, types); | |||
| } | |||
| #endif | |||
| @@ -3681,9 +3681,11 @@ public: | |||
| if (bridgeBinary.isEmpty()) | |||
| return nullptr; | |||
| #ifdef CARLA_OS_LINUX | |||
| // test for local build | |||
| if (bridgeBinary.endsWith("/source/backend/")) | |||
| bridgeBinary += "../bridges/"; | |||
| #endif | |||
| switch (type) | |||
| { | |||
| @@ -23,26 +23,30 @@ | |||
| // ----------------------------------------------------------------------- | |||
| enum PluginBridgeInfoType { | |||
| kPluginBridgeAudioCount = 0, | |||
| kPluginBridgeMidiCount, | |||
| kPluginBridgeParameterCount, | |||
| kPluginBridgeProgramCount, | |||
| kPluginBridgeMidiProgramCount, | |||
| kPluginBridgePluginInfo, | |||
| kPluginBridgeParameterInfo, | |||
| kPluginBridgeParameterData, | |||
| kPluginBridgeParameterRanges, | |||
| kPluginBridgeProgramInfo, | |||
| kPluginBridgeMidiProgramInfo, | |||
| kPluginBridgeConfigure, | |||
| kPluginBridgeSetParameterValue, | |||
| kPluginBridgeSetDefaultValue, | |||
| kPluginBridgeSetProgram, | |||
| kPluginBridgeSetMidiProgram, | |||
| kPluginBridgeSetCustomData, | |||
| kPluginBridgeSetChunkData, | |||
| kPluginBridgeUpdateNow, | |||
| kPluginBridgeError | |||
| kPluginBridgeNull = 0, | |||
| kPluginBridgePluginInfo1, // uuh => category, hints, uniqueId | |||
| kPluginBridgePluginInfo2, // ssss => realName, label, maker, copyright | |||
| kPluginBridgeAudioCount, // uu => ins, outs | |||
| kPluginBridgeMidiCount, // uu => ins, outs | |||
| kPluginBridgeParameterCount, // uu => ins, outs | |||
| kPluginBridgeProgramCount, // u => count | |||
| kPluginBridgeMidiProgramCount, // u => count | |||
| kPluginBridgeParameterData, // uiuuss => index, rindex, type, hints, name, unit | |||
| kPluginBridgeParameterRanges1, // ufff => index, def, min, max | |||
| kPluginBridgeParameterRanges2, // ufff => index, step, stepSmall, stepLarge | |||
| kPluginBridgeParameterMidiCC, // ui => index, cc | |||
| kPluginBridgeParameterMidiChannel, // uu => index, channel | |||
| kPluginBridgeParameterValue, // uf => index, value | |||
| kPluginBridgeDefaultValue, // uf => index, value | |||
| kPluginBridgeCurrentProgram, // i => index | |||
| kPluginBridgeCurrentMidiProgram, // i => index | |||
| kPluginBridgeProgramName, // us => index, name | |||
| kPluginBridgeMidiProgramData, // uuus => index, bank, program, name | |||
| kPluginBridgeConfigure, // ss => key, value | |||
| kPluginBridgeSetCustomData, // sss => type, key, value | |||
| kPluginBridgeSetChunkData, // s => chunkFile | |||
| kPluginBridgeUpdate, // | |||
| kPluginBridgeError // | |||
| }; | |||
| enum PluginBridgeOpcode { | |||
| @@ -89,6 +93,12 @@ const char* PluginBridgeInfoType2str(const PluginBridgeInfoType type) noexcept | |||
| { | |||
| switch (type) | |||
| { | |||
| case kPluginBridgeNull: | |||
| return "kPluginBridgeNull"; | |||
| case kPluginBridgePluginInfo1: | |||
| return "kPluginBridgePluginInfo1"; | |||
| case kPluginBridgePluginInfo2: | |||
| return "kPluginBridgePluginInfo2"; | |||
| case kPluginBridgeAudioCount: | |||
| return "kPluginBridgeAudioCount"; | |||
| case kPluginBridgeMidiCount: | |||
| @@ -99,34 +109,36 @@ const char* PluginBridgeInfoType2str(const PluginBridgeInfoType type) noexcept | |||
| return "kPluginBridgeProgramCount"; | |||
| case kPluginBridgeMidiProgramCount: | |||
| return "kPluginBridgeMidiProgramCount"; | |||
| case kPluginBridgePluginInfo: | |||
| return "kPluginBridgePluginInfo"; | |||
| case kPluginBridgeParameterInfo: | |||
| return "kPluginBridgeParameterInfo"; | |||
| case kPluginBridgeParameterData: | |||
| return "kPluginBridgeParameterData"; | |||
| case kPluginBridgeParameterRanges: | |||
| return "kPluginBridgeParameterRanges"; | |||
| case kPluginBridgeProgramInfo: | |||
| return "kPluginBridgeProgramInfo"; | |||
| case kPluginBridgeMidiProgramInfo: | |||
| return "kPluginBridgeMidiProgramInfo"; | |||
| case kPluginBridgeParameterRanges1: | |||
| return "kPluginBridgeParameterRanges1"; | |||
| case kPluginBridgeParameterRanges2: | |||
| return "kPluginBridgeParameterRanges2"; | |||
| case kPluginBridgeParameterMidiCC: | |||
| return "kPluginBridgeParameterMidiCC"; | |||
| case kPluginBridgeParameterMidiChannel: | |||
| return "kPluginBridgeParameterMidiChannel"; | |||
| case kPluginBridgeParameterValue: | |||
| return "kPluginBridgeParameterValue"; | |||
| case kPluginBridgeDefaultValue: | |||
| return "kPluginBridgeDefaultValue"; | |||
| case kPluginBridgeCurrentProgram: | |||
| return "kPluginBridgeCurrentProgram"; | |||
| case kPluginBridgeCurrentMidiProgram: | |||
| return "kPluginBridgeCurrentMidiProgram"; | |||
| case kPluginBridgeProgramName: | |||
| return "kPluginBridgeProgramName"; | |||
| case kPluginBridgeMidiProgramData: | |||
| return "kPluginBridgeMidiProgramData"; | |||
| case kPluginBridgeConfigure: | |||
| return "kPluginBridgeConfigure"; | |||
| case kPluginBridgeSetParameterValue: | |||
| return "kPluginBridgeSetParameterValue"; | |||
| case kPluginBridgeSetDefaultValue: | |||
| return "kPluginBridgeSetDefaultValue"; | |||
| case kPluginBridgeSetProgram: | |||
| return "kPluginBridgeSetProgram"; | |||
| case kPluginBridgeSetMidiProgram: | |||
| return "kPluginBridgeSetMidiProgram"; | |||
| case kPluginBridgeSetCustomData: | |||
| return "kPluginBridgeSetCustomData"; | |||
| case kPluginBridgeSetChunkData: | |||
| return "kPluginBridgeSetChunkData"; | |||
| case kPluginBridgeUpdateNow: | |||
| return "kPluginBridgeUpdateNow"; | |||
| case kPluginBridgeUpdate: | |||
| return "kPluginBridgeUpdate"; | |||
| case kPluginBridgeError: | |||
| return "kPluginBridgeError"; | |||
| } | |||