Browse Source

Misc fixing

tags/1.9.4
falkTX 12 years ago
parent
commit
d54bdd7851
3 changed files with 22 additions and 15 deletions
  1. +15
    -11
      source/backend/plugin/CarlaPlugin.cpp
  2. +1
    -1
      source/backend/plugin/CarlaPluginInternal.hpp
  3. +6
    -3
      source/backend/plugin/NativePlugin.cpp

+ 15
- 11
source/backend/plugin/CarlaPlugin.cpp View File

@@ -231,7 +231,7 @@ const CustomData& CarlaPlugin::customData(const size_t index) const
{
CARLA_ASSERT(index < kData->custom.count());

return (index < kData->custom.count()) ? kData->custom.getAt(index) : kCustomDataNull;
return (index < kData->custom.count()) ? *kData->custom.getAt(index) : kCustomDataNull;
}

int32_t CarlaPlugin::chunkData(void** const dataPtr)
@@ -1117,24 +1117,28 @@ void CarlaPlugin::setCustomData(const char* const type, const char* const key, c

if (saveData)
{
#if 0
// Check if we already have this key
for (size_t i=0; i < kData->custom.count(); i++)
for (size_t i=0, count=kData->custom.count(); i < count; i++)
{
if (std::strcmp(custom[i].key, key) == 0)
CustomData* const cData(kData->custom.getAt(i));

assert(cData->type != nullptr);
assert(cData->key != nullptr);
assert(cData->value != nullptr);

if (std::strcmp(cData->key, key) == 0)
{
delete[] custom[i].value;
custom[i].value = carla_strdup(value);
delete[] cData->value;
cData->value = carla_strdup(value);
return;
}
}
#endif

// Otherwise store it
CustomData newData;
newData.type = carla_strdup(type);
newData.key = carla_strdup(key);
newData.value = carla_strdup(value);
CustomData* newData(new CustomData);
newData->type = carla_strdup(type);
newData->key = carla_strdup(key);
newData->value = carla_strdup(value);
kData->custom.append(newData);
}
}


+ 1
- 1
source/backend/plugin/CarlaPluginInternal.hpp View File

@@ -409,7 +409,7 @@ struct CarlaPluginProtectedData {
PluginParameterData param;
PluginProgramData prog;
PluginMidiProgramData midiprog;
NonRtListNew<CustomData> custom;
NonRtList<CustomData*> custom;

CarlaMutex mutex;



+ 6
- 3
source/backend/plugin/NativePlugin.cpp View File

@@ -131,7 +131,7 @@ public:

if (fDescriptor != nullptr)
{
if (fIsUiVisible)
if (fDescriptor->ui_show != nullptr && fIsUiVisible)
fDescriptor->ui_show(fHandle, false);

if (fDescriptor->deactivate != nullptr && kData->activeBefore)
@@ -487,7 +487,10 @@ public:
QString filenameTry = QFileDialog::getOpenFileName(nullptr, "Open Audio File");

if (! filenameTry.isEmpty())
fDescriptor->set_custom_data(fHandle, "file", filenameTry.toUtf8().constData());
{
const char* const filename = filenameTry.toUtf8().constData();
setCustomData(CUSTOM_DATA_STRING, "file", filename, false);
}

kData->engine->callback(CALLBACK_SHOW_GUI, fId, 0, 0, 0.0f, nullptr);
}
@@ -520,7 +523,7 @@ public:
CARLA_ASSERT(fDescriptor != nullptr);
CARLA_ASSERT(fHandle != nullptr);

if (fIsUiVisible)
if (fIsUiVisible && fDescriptor != nullptr && fHandle != nullptr && fDescriptor->ui_idle != nullptr)
fDescriptor->ui_idle(fHandle);
}



Loading…
Cancel
Save