Browse Source

Fix changing transport mode when not using multi-client

tags/v2.1-rc1
falkTX 6 years ago
parent
commit
fc5e2f37d0
1 changed files with 9 additions and 4 deletions
  1. +9
    -4
      source/backend/CarlaStandalone.cpp

+ 9
- 4
source/backend/CarlaStandalone.cpp View File

@@ -629,9 +629,12 @@ void carla_set_engine_option(EngineOption option, int value, const char* valueSt
case CB::ENGINE_OPTION_TRANSPORT_MODE:
CARLA_SAFE_ASSERT_RETURN(value >= CB::ENGINE_TRANSPORT_MODE_DISABLED && value <= CB::ENGINE_TRANSPORT_MODE_BRIDGE,);

if (value != CB::ENGINE_TRANSPORT_MODE_JACK)
// jack transport cannot be disabled in multi-client
if (gStandalone.engineOptions.processMode == CB::ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS
&& value != CB::ENGINE_TRANSPORT_MODE_JACK)
{
// jack transport cannot be disabled in multi-client
gStandalone.engineOptions.transportMode = CB::ENGINE_TRANSPORT_MODE_JACK;

if (gStandalone.engineCallback != nullptr)
gStandalone.engineCallback(gStandalone.engineCallbackPtr,
CB::ENGINE_CALLBACK_TRANSPORT_MODE_CHANGED,
@@ -639,9 +642,11 @@ void carla_set_engine_option(EngineOption option, int value, const char* valueSt
CB::ENGINE_TRANSPORT_MODE_JACK,
0, 0, 0.0f,
gStandalone.engineOptions.transportExtra);
CARLA_SAFE_ASSERT_RETURN(gStandalone.engineOptions.processMode != CB::ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS,);
}
gStandalone.engineOptions.transportMode = static_cast<CB::EngineTransportMode>(value);
else
{
gStandalone.engineOptions.transportMode = static_cast<CB::EngineTransportMode>(value);
}

delete[] gStandalone.engineOptions.transportExtra;
if (value != CB::ENGINE_TRANSPORT_MODE_DISABLED && valueStr != nullptr)


Loading…
Cancel
Save