diff --git a/source/backend/engine/CarlaEngine.cpp b/source/backend/engine/CarlaEngine.cpp index fc806b09f..9edb175e3 100644 --- a/source/backend/engine/CarlaEngine.cpp +++ b/source/backend/engine/CarlaEngine.cpp @@ -1205,11 +1205,9 @@ void CarlaEngine::setOption(const EngineOption option, const int value, const ch if (isRunning() && (option == ENGINE_OPTION_PROCESS_MODE || option == ENGINE_OPTION_AUDIO_NUM_PERIODS || option == ENGINE_OPTION_AUDIO_DEVICE)) return carla_stderr("CarlaEngine::setOption(%i:%s, %i, \"%s\") - Cannot set this option while engine is running!", option, EngineOption2Str(option), value, valueStr); - if (option == ENGINE_OPTION_FORCE_STEREO && pData->options.processMode == ENGINE_PROCESS_MODE_CONTINUOUS_RACK) - { - // do not un-force stereo for rack mode - CARLA_SAFE_ASSERT_RETURN(value == 1,); - } + // do not un-force stereo for rack mode + if (pData->options.processMode == ENGINE_PROCESS_MODE_CONTINUOUS_RACK && option == ENGINE_OPTION_FORCE_STEREO && value != 0) + return; switch (option) { diff --git a/source/carla_settings.py b/source/carla_settings.py index 6e21afdc2..3477f511a 100755 --- a/source/carla_settings.py +++ b/source/carla_settings.py @@ -245,6 +245,9 @@ class CarlaSettingsW(QDialog): self.ui.cb_engine_process_mode_jack.setEnabled(False) self.ui.cb_engine_process_mode_other.setEnabled(False) + if self.host.processMode == ENGINE_PROCESS_MODE_CONTINUOUS_RACK: + self.ui.ch_engine_force_stereo.setEnabled(False) + # FIXME, not implemented yet self.ui.ch_engine_uis_always_on_top.hide() @@ -352,7 +355,7 @@ class CarlaSettingsW(QDialog): self.ui.ch_engine_uis_always_on_top.setChecked(self.host.uisAlwaysOnTop) self.ui.ch_engine_prefer_ui_bridges.setChecked(self.host.preferUIBridges) self.ui.sb_engine_ui_bridges_timeout.setValue(self.host.uiBridgesTimeout) - self.ui.ch_engine_force_stereo.setChecked(self.host.forceStereo) + self.ui.ch_engine_force_stereo.setChecked(self.host.forceStereo or not self.ui.ch_engine_force_stereo.isEnabled()) self.ui.ch_engine_prefer_plugin_bridges.setChecked(self.host.preferPluginBridges) # ---------------------------------------------------------------------------------------------------- @@ -459,14 +462,18 @@ class CarlaSettingsW(QDialog): self.host.maxParameters = self.ui.sb_engine_max_params.value() self.host.uiBridgesTimeout = self.ui.sb_engine_ui_bridges_timeout.value() - self.host.set_engine_option(ENGINE_OPTION_FORCE_STEREO, self.host.forceStereo, "") + if self.ui.ch_engine_force_stereo.isEnabled(): + self.host.set_engine_option(ENGINE_OPTION_FORCE_STEREO, self.host.forceStereo, "") + self.host.set_engine_option(ENGINE_OPTION_PREFER_PLUGIN_BRIDGES, self.host.preferPluginBridges, "") self.host.set_engine_option(ENGINE_OPTION_PREFER_UI_BRIDGES, self.host.preferUIBridges, "") self.host.set_engine_option(ENGINE_OPTION_UIS_ALWAYS_ON_TOP, self.host.uisAlwaysOnTop, "") self.host.set_engine_option(ENGINE_OPTION_MAX_PARAMETERS, self.host.maxParameters, "") self.host.set_engine_option(ENGINE_OPTION_UI_BRIDGES_TIMEOUT, self.host.uiBridgesTimeout, "") - settings.setValue(CARLA_KEY_ENGINE_FORCE_STEREO, self.host.forceStereo) + if self.ui.ch_engine_force_stereo.isEnabled(): + settings.setValue(CARLA_KEY_ENGINE_FORCE_STEREO, self.host.forceStereo) + settings.setValue(CARLA_KEY_ENGINE_PREFER_PLUGIN_BRIDGES, self.host.preferPluginBridges) settings.setValue(CARLA_KEY_ENGINE_PREFER_UI_BRIDGES, self.host.preferUIBridges) settings.setValue(CARLA_KEY_ENGINE_UIS_ALWAYS_ON_TOP, self.host.uisAlwaysOnTop)