| @@ -246,119 +246,126 @@ enum OptionsType { | |||
| */ | |||
| OPTION_USE_DSSI_VST_CHUNKS = 7, | |||
| /*! | |||
| * Use plugin bridges whenever possible.\n | |||
| * Default is no, and not recommended at this point!. | |||
| * EXPERIMENTAL! | |||
| */ | |||
| OPTION_PREFER_PLUGIN_BRIDGES = 8, | |||
| /*! | |||
| * Use OSC-UI bridges whenever possible, otherwise UIs will be handled in the main thread.\n | |||
| * Default is yes. | |||
| */ | |||
| OPTION_PREFER_UI_BRIDGES = 8, | |||
| OPTION_PREFER_UI_BRIDGES = 9, | |||
| /*! | |||
| * Timeout value in ms for how much to wait for OSC-UIs to respond.\n | |||
| * Default is 4000 ms (4 secs). | |||
| */ | |||
| OPTION_OSC_UI_TIMEOUT = 9, | |||
| OPTION_OSC_UI_TIMEOUT = 10, | |||
| /*! | |||
| * Set LADSPA_PATH environment variable.\n | |||
| * Default undefined. | |||
| */ | |||
| OPTION_PATH_LADSPA = 10, | |||
| OPTION_PATH_LADSPA = 11, | |||
| /*! | |||
| * Set DSSI_PATH environment variable.\n | |||
| * Default undefined. | |||
| */ | |||
| OPTION_PATH_DSSI = 11, | |||
| OPTION_PATH_DSSI = 12, | |||
| /*! | |||
| * Set LV2_PATH environment variable.\n | |||
| * Default undefined. | |||
| */ | |||
| OPTION_PATH_LV2 = 12, | |||
| OPTION_PATH_LV2 = 13, | |||
| /*! | |||
| * Set VST_PATH environment variable.\n | |||
| * Default undefined. | |||
| */ | |||
| OPTION_PATH_VST = 13, | |||
| OPTION_PATH_VST = 14, | |||
| /*! | |||
| * Set GIG_PATH environment variable.\n | |||
| * Default undefined. | |||
| */ | |||
| OPTION_PATH_GIG = 14, | |||
| OPTION_PATH_GIG = 15, | |||
| /*! | |||
| * Set SF2_PATH environment variable.\n | |||
| * Default undefined. | |||
| */ | |||
| OPTION_PATH_SF2 = 15, | |||
| OPTION_PATH_SF2 = 16, | |||
| /*! | |||
| * Set SFZ_PATH environment variable.\n | |||
| * Default undefined. | |||
| */ | |||
| OPTION_PATH_SFZ = 16, | |||
| OPTION_PATH_SFZ = 17, | |||
| /*! | |||
| * Set path to the POSIX 32bit plugin bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_POSIX32 = 17, | |||
| OPTION_PATH_BRIDGE_POSIX32 = 18, | |||
| /*! | |||
| * Set path to the POSIX 64bit plugin bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_POSIX64 = 18, | |||
| OPTION_PATH_BRIDGE_POSIX64 = 19, | |||
| /*! | |||
| * Set path to the Windows 32bit plugin bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_WIN32 = 19, | |||
| OPTION_PATH_BRIDGE_WIN32 = 20, | |||
| /*! | |||
| * Set path to the Windows 64bit plugin bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_WIN64 = 20, | |||
| OPTION_PATH_BRIDGE_WIN64 = 21, | |||
| /*! | |||
| * Set path to the LV2 Gtk2 UI bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_LV2_GTK2 = 21, | |||
| OPTION_PATH_BRIDGE_LV2_GTK2 = 22, | |||
| /*! | |||
| * Set path to the LV2 Gtk3 UI bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_LV2_GTK3 = 22, | |||
| OPTION_PATH_BRIDGE_LV2_GTK3 = 23, | |||
| /*! | |||
| * Set path to the LV2 Qt4 UI bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_LV2_QT4 = 23, | |||
| OPTION_PATH_BRIDGE_LV2_QT4 = 24, | |||
| /*! | |||
| * Set path to the LV2 X11 UI bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_LV2_X11 = 24, | |||
| OPTION_PATH_BRIDGE_LV2_X11 = 25, | |||
| /*! | |||
| * Set path to the VST HWND UI bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_VST_HWND = 25, | |||
| OPTION_PATH_BRIDGE_VST_HWND = 26, | |||
| /*! | |||
| * Set path to the VST X11 UI bridge executable.\n | |||
| * Default unset. | |||
| */ | |||
| OPTION_PATH_BRIDGE_VST_X11 = 26 | |||
| OPTION_PATH_BRIDGE_VST_X11 = 27 | |||
| }; | |||
| /*! | |||
| @@ -245,11 +245,13 @@ short CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, con | |||
| CARLA_ASSERT(label); | |||
| if (m_maxPluginNumber == 0) | |||
| { | |||
| #ifdef BUILD_BRIDGE | |||
| m_maxPluginNumber = MAX_PLUGINS; | |||
| #else | |||
| m_maxPluginNumber = (carlaOptions.processMode == PROCESS_MODE_CONTINUOUS_RACK) ? 16 : MAX_PLUGINS; | |||
| #endif | |||
| } | |||
| CarlaPlugin::initializer init = { | |||
| this, | |||
| @@ -261,7 +263,7 @@ short CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, con | |||
| CarlaPlugin* plugin = nullptr; | |||
| #ifndef BUILD_BRIDGE | |||
| if (btype != BINARY_NATIVE /*|| true*/) | |||
| if (btype != BINARY_NATIVE || carlaOptions.preferPluginBridges) | |||
| { | |||
| # ifdef CARLA_ENGINE_JACK | |||
| if (carlaOptions.processMode != CarlaBackend::PROCESS_MODE_MULTIPLE_CLIENTS) | |||
| @@ -224,6 +224,8 @@ const char* OptionsType2str(const OptionsType type) | |||
| return "OPTION_FORCE_STEREO"; | |||
| case OPTION_USE_DSSI_VST_CHUNKS: | |||
| return "OPTION_USE_DSSI_VST_CHUNKS"; | |||
| case OPTION_PREFER_PLUGIN_BRIDGES: | |||
| return "OPTION_PREFER_PLUGIN_BRIDGES"; | |||
| case OPTION_PREFER_UI_BRIDGES: | |||
| return "OPTION_PREFER_UI_BRIDGES"; | |||
| case OPTION_OSC_UI_TIMEOUT: | |||
| @@ -574,6 +576,9 @@ void setOption(const OptionsType option, const int value, const char* const valu | |||
| case OPTION_USE_DSSI_VST_CHUNKS: | |||
| carlaOptions.useDssiVstChunks = value; | |||
| break; | |||
| case OPTION_PREFER_PLUGIN_BRIDGES: | |||
| carlaOptions.preferPluginBridges = value; | |||
| break; | |||
| case OPTION_PREFER_UI_BRIDGES: | |||
| carlaOptions.preferUiBridges = value; | |||
| break; | |||
| @@ -675,6 +680,7 @@ void resetOptions() | |||
| carlaOptions.preferredSampleRate = 44100; | |||
| carlaOptions.forceStereo = false; | |||
| carlaOptions.useDssiVstChunks = false; | |||
| carlaOptions.preferPluginBridges = false; | |||
| carlaOptions.preferUiBridges = true; | |||
| carlaOptions.oscUiTimeout = 4000/100; | |||
| @@ -68,6 +68,7 @@ struct carla_options_t { | |||
| bool forceStereo; | |||
| bool useDssiVstChunks; | |||
| bool preferPluginBridges; | |||
| bool preferUiBridges; | |||
| uint oscUiTimeout; | |||
| @@ -90,6 +91,7 @@ struct carla_options_t { | |||
| preferredSampleRate(44100), | |||
| forceStereo(false), | |||
| useDssiVstChunks(false), | |||
| preferPluginBridges(false), | |||
| preferUiBridges(true), | |||
| oscUiTimeout(4000/100), | |||
| bridge_posix32(nullptr), | |||
| @@ -152,25 +152,26 @@ OPTION_PREFERRED_BUFFER_SIZE = 4 | |||
| OPTION_PREFERRED_SAMPLE_RATE = 5 | |||
| OPTION_FORCE_STEREO = 6 | |||
| OPTION_USE_DSSI_VST_CHUNKS = 7 | |||
| OPTION_PREFER_UI_BRIDGES = 8 | |||
| OPTION_OSC_UI_TIMEOUT = 9 | |||
| OPTION_PATH_LADSPA = 10 | |||
| OPTION_PATH_DSSI = 11 | |||
| OPTION_PATH_LV2 = 12 | |||
| OPTION_PATH_VST = 13 | |||
| OPTION_PATH_GIG = 14 | |||
| OPTION_PATH_SF2 = 15 | |||
| OPTION_PATH_SFZ = 16 | |||
| OPTION_PATH_BRIDGE_POSIX32 = 17 | |||
| OPTION_PATH_BRIDGE_POSIX64 = 18 | |||
| OPTION_PATH_BRIDGE_WIN32 = 19 | |||
| OPTION_PATH_BRIDGE_WIN64 = 20 | |||
| OPTION_PATH_BRIDGE_LV2_GTK2 = 21 | |||
| OPTION_PATH_BRIDGE_LV2_GTK3 = 22 | |||
| OPTION_PATH_BRIDGE_LV2_QT4 = 23 | |||
| OPTION_PATH_BRIDGE_LV2_X11 = 24 | |||
| OPTION_PATH_BRIDGE_VST_HWND = 25 | |||
| OPTION_PATH_BRIDGE_VST_X11 = 26 | |||
| OPTION_PREFER_PLUGIN_BRIDGES = 8 | |||
| OPTION_PREFER_UI_BRIDGES = 9 | |||
| OPTION_OSC_UI_TIMEOUT = 10 | |||
| OPTION_PATH_LADSPA = 11 | |||
| OPTION_PATH_DSSI = 12 | |||
| OPTION_PATH_LV2 = 13 | |||
| OPTION_PATH_VST = 14 | |||
| OPTION_PATH_GIG = 15 | |||
| OPTION_PATH_SF2 = 16 | |||
| OPTION_PATH_SFZ = 17 | |||
| OPTION_PATH_BRIDGE_POSIX32 = 18 | |||
| OPTION_PATH_BRIDGE_POSIX64 = 19 | |||
| OPTION_PATH_BRIDGE_WIN32 = 20 | |||
| OPTION_PATH_BRIDGE_WIN64 = 21 | |||
| OPTION_PATH_BRIDGE_LV2_GTK2 = 22 | |||
| OPTION_PATH_BRIDGE_LV2_GTK3 = 23 | |||
| OPTION_PATH_BRIDGE_LV2_QT4 = 24 | |||
| OPTION_PATH_BRIDGE_LV2_X11 = 25 | |||
| OPTION_PATH_BRIDGE_VST_HWND = 26 | |||
| OPTION_PATH_BRIDGE_VST_X11 = 27 | |||
| # enum CallbackType | |||
| CALLBACK_DEBUG = 0 | |||