Browse Source

Prepare code to restore per-plugin options from project file

tags/1.9.7
falkTX 9 years ago
parent
commit
1913b83f09
8 changed files with 43 additions and 17 deletions
  1. +2
    -0
      source/backend/plugin/CarlaPluginBridge.cpp
  2. +6
    -2
      source/backend/plugin/CarlaPluginFluidSynth.cpp
  3. +5
    -2
      source/backend/plugin/CarlaPluginJuce.cpp
  4. +12
    -5
      source/backend/plugin/CarlaPluginLV2.cpp
  5. +6
    -2
      source/backend/plugin/CarlaPluginLinuxSampler.cpp
  6. +6
    -2
      source/backend/plugin/CarlaPluginNative.cpp
  7. +5
    -3
      source/backend/plugin/CarlaPluginVST2.cpp
  8. +1
    -1
      source/carla_host.py

+ 2
- 0
source/backend/plugin/CarlaPluginBridge.cpp View File

@@ -2604,6 +2604,8 @@ public:
return false;
}

// TODO: set default options

return true;
}



+ 6
- 2
source/backend/plugin/CarlaPluginFluidSynth.cpp View File

@@ -1545,7 +1545,7 @@ public:

// -------------------------------------------------------------------

bool init(const char* const filename, const char* const name, const char* const label)
bool init(const char* const filename, const char* const name, const char* const label, const uint options)
{
CARLA_SAFE_ASSERT_RETURN(pData->engine != nullptr, false);

@@ -1625,7 +1625,11 @@ public:
pData->options |= PLUGIN_OPTION_SEND_PITCHBEND;
pData->options |= PLUGIN_OPTION_SEND_ALL_SOUND_OFF;

// TODO: read some options

return true;

(void)options;
}

private:
@@ -1690,7 +1694,7 @@ CarlaPlugin* CarlaPlugin::newFluidSynth(const Initializer& init, const bool use1

CarlaPluginFluidSynth* const plugin(new CarlaPluginFluidSynth(init.engine, init.id, use16Outs));

if (! plugin->init(init.filename, init.name, init.label))
if (! plugin->init(init.filename, init.name, init.label, init.options))
{
delete plugin;
return nullptr;


+ 5
- 2
source/backend/plugin/CarlaPluginJuce.cpp View File

@@ -1119,7 +1119,7 @@ protected:
// -------------------------------------------------------------------

public:
bool init(const char* const filename, const char* const name, const char* const label, const int64_t uniqueId, const char* const format)
bool init(const char* const filename, const char* const name, const char* const label, const int64_t uniqueId, const uint options, const char* const format)
{
CARLA_SAFE_ASSERT_RETURN(pData->engine != nullptr, false);

@@ -1234,6 +1234,9 @@ public:
pData->options |= PLUGIN_OPTION_SEND_ALL_SOUND_OFF;
}

// TODO: read some options
ignoreUnused(options);

return true;
}

@@ -1269,7 +1272,7 @@ CarlaPlugin* CarlaPlugin::newJuce(const Initializer& init, const char* const for
#if (defined(CARLA_OS_MAC) || defined(CARLA_OS_WIN))
CarlaPluginJuce* const plugin(new CarlaPluginJuce(init.engine, init.id));

if (! plugin->init(init.filename, init.name, init.label, init.uniqueId, format))
if (! plugin->init(init.filename, init.name, init.label, init.uniqueId, init.options, format))
{
delete plugin;
return nullptr;


+ 12
- 5
source/backend/plugin/CarlaPluginLV2.cpp View File

@@ -4701,7 +4701,7 @@ public:
// -------------------------------------------------------------------

public:
bool init(const char* const name, const char* const uri)
bool init(const char* const name, const char* const uri, const uint options)
{
CARLA_SAFE_ASSERT_RETURN(pData->engine != nullptr, false);

@@ -5047,16 +5047,23 @@ public:
// ---------------------------------------------------------------
// set default options

pData->options = 0x0;
pData->options = 0x0;

if (fExt.programs != nullptr && getCategory() == PLUGIN_CATEGORY_SYNTH)
pData->options |= PLUGIN_OPTION_MAP_PROGRAM_CHANGES;

if (fLatencyIndex >= 0 || getMidiInCount() > 0 || needsFixedBuffer())
pData->options |= PLUGIN_OPTION_FIXED_BUFFERS;
else if (options & PLUGIN_OPTION_FIXED_BUFFERS)
pData->options |= PLUGIN_OPTION_FIXED_BUFFERS;

if (fCanInit2 && pData->engine->getOptions().forceStereo)
pData->options |= PLUGIN_OPTION_FORCE_STEREO;
if (fCanInit2)
{
if (pData->engine->getOptions().forceStereo)
pData->options |= PLUGIN_OPTION_FORCE_STEREO;
else if (options & PLUGIN_OPTION_FORCE_STEREO)
pData->options |= PLUGIN_OPTION_FORCE_STEREO;
}

if (getMidiInCount() > 0)
{
@@ -6213,7 +6220,7 @@ CarlaPlugin* CarlaPlugin::newLV2(const Initializer& init)

CarlaPluginLV2* const plugin(new CarlaPluginLV2(init.engine, init.id));

if (! plugin->init(init.name, init.label))
if (! plugin->init(init.name, init.label, init.options))
{
delete plugin;
return nullptr;


+ 6
- 2
source/backend/plugin/CarlaPluginLinuxSampler.cpp View File

@@ -1173,7 +1173,7 @@ public:
return kUses16Outs ? xtrue : xfalse;
}

bool init(const char* const filename, const char* const name, const char* const label)
bool init(const char* const filename, const char* const name, const char* const label, const uint options)
{
CARLA_SAFE_ASSERT_RETURN(pData->engine != nullptr, false);

@@ -1341,7 +1341,11 @@ public:
if (kIsGIG)
pData->options |= PLUGIN_OPTION_MAP_PROGRAM_CHANGES;

// TODO: read some options

return true;

(void)options;
}

// -------------------------------------------------------------------
@@ -1418,7 +1422,7 @@ CarlaPlugin* CarlaPlugin::newLinuxSampler(const Initializer& init, const char* c

CarlaPluginLinuxSampler* const plugin(new CarlaPluginLinuxSampler(init.engine, init.id, (sformat == "gig"), use16Outs));

if (! plugin->init(init.filename, init.name, init.label))
if (! plugin->init(init.filename, init.name, init.label, init.options))
{
delete plugin;
return nullptr;


+ 6
- 2
source/backend/plugin/CarlaPluginNative.cpp View File

@@ -2277,7 +2277,7 @@ public:

// -------------------------------------------------------------------

bool init(const char* const name, const char* const label)
bool init(const char* const name, const char* const label, const uint options)
{
CARLA_SAFE_ASSERT_RETURN(pData->engine != nullptr, false);

@@ -2380,9 +2380,13 @@ public:

if (getMidiInCount() > 0 || (fDescriptor->hints & NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS) != 0)
pData->options |= PLUGIN_OPTION_FIXED_BUFFERS;
else if (options & PLUGIN_OPTION_FIXED_BUFFERS)
pData->options |= PLUGIN_OPTION_FIXED_BUFFERS;

if (pData->engine->getOptions().forceStereo)
pData->options |= PLUGIN_OPTION_FORCE_STEREO;
else if (options & PLUGIN_OPTION_FORCE_STEREO)
pData->options |= PLUGIN_OPTION_FORCE_STEREO;

if (fDescriptor->supports & NATIVE_PLUGIN_SUPPORTS_CHANNEL_PRESSURE)
pData->options |= PLUGIN_OPTION_SEND_CHANNEL_PRESSURE;
@@ -2505,7 +2509,7 @@ CarlaPlugin* CarlaPlugin::newNative(const Initializer& init)

CarlaPluginNative* const plugin(new CarlaPluginNative(init.engine, init.id));

if (! plugin->init(init.name, init.label))
if (! plugin->init(init.name, init.label, init.options))
{
delete plugin;
return nullptr;


+ 5
- 3
source/backend/plugin/CarlaPluginVST2.cpp View File

@@ -2053,7 +2053,7 @@ protected:
// -------------------------------------------------------------------

public:
bool init(const char* const filename, const char* const name, const int64_t uniqueId)
bool init(const char* const filename, const char* const name, const int64_t uniqueId, const uint options)
{
CARLA_SAFE_ASSERT_RETURN(pData->engine != nullptr, false);

@@ -2183,7 +2183,7 @@ public:
// ---------------------------------------------------------------
// set default options

pData->options = 0x0;
pData->options = 0x0;

if (fEffect->flags & effFlagsIsSynth)
pData->options |= PLUGIN_OPTION_MAP_PROGRAM_CHANGES;
@@ -2199,6 +2199,8 @@ public:
pData->options |= PLUGIN_OPTION_SEND_PITCHBEND;
pData->options |= PLUGIN_OPTION_SEND_ALL_SOUND_OFF;
}
else if (options & PLUGIN_OPTION_FIXED_BUFFERS)
pData->options |= PLUGIN_OPTION_FIXED_BUFFERS;

return true;

@@ -2417,7 +2419,7 @@ CarlaPlugin* CarlaPlugin::newVST2(const Initializer& init)
#else
CarlaPluginVST2* const plugin(new CarlaPluginVST2(init.engine, init.id));

if (! plugin->init(init.filename, init.name, init.uniqueId))
if (! plugin->init(init.filename, init.name, init.uniqueId, init.options))
{
delete plugin;
return nullptr;


+ 1
- 1
source/carla_host.py View File

@@ -1965,7 +1965,7 @@ class HostWindow(QMainWindow):
if self.host.is_engine_running() and not (self.host.isControl or self.host.isPlugin):
if not self.slot_engineStop(True):
self.fCustomStopAction = 1
event.accept()
event.ignore()
return

QMainWindow.closeEvent(self, event)


Loading…
Cancel
Save