Browse Source

Cleanup in carla as plugin code, preparing for some wine :)

tags/v2.1-alpha1-winvst
falkTX 6 years ago
parent
commit
61a7394ecd
3 changed files with 38 additions and 42 deletions
  1. +12
    -0
      source/backend/engine/CarlaEngineNative.cpp
  2. +10
    -0
      source/includes/CarlaNativePlugin.h
  3. +16
    -42
      source/plugin/carla-base.cpp

+ 12
- 0
source/backend/engine/CarlaEngineNative.cpp View File

@@ -2286,6 +2286,18 @@ const NativePluginDescriptor* carla_get_native_patchbay_plugin()
return &carlaPatchbayDesc;
}

const NativePluginDescriptor* carla_get_native_patchbay16_plugin()
{
CARLA_BACKEND_USE_NAMESPACE;
return &carlaPatchbay16Desc;
}

const NativePluginDescriptor* carla_get_native_patchbay32_plugin()
{
CARLA_BACKEND_USE_NAMESPACE;
return &carlaPatchbay32Desc;
}

// -----------------------------------------------------------------------
// Extra stuff for linking purposes



+ 10
- 0
source/includes/CarlaNativePlugin.h View File

@@ -41,6 +41,16 @@ CARLA_EXPORT const NativePluginDescriptor* carla_get_native_rack_plugin();
*/
CARLA_EXPORT const NativePluginDescriptor* carla_get_native_patchbay_plugin();

/*!
* Get the native plugin descriptor for the carla-patchbay16 plugin.
*/
CARLA_EXPORT const NativePluginDescriptor* carla_get_native_patchbay16_plugin();

/*!
* Get the native plugin descriptor for the carla-patchbay32 plugin.
*/
CARLA_EXPORT const NativePluginDescriptor* carla_get_native_patchbay32_plugin();

#ifdef __cplusplus
/*!
* Get the internal CarlaEngine instance.


+ 16
- 42
source/plugin/carla-base.cpp View File

@@ -1,6 +1,6 @@
/*
* Carla Native Plugins
* Copyright (C) 2013-2014 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2013-2018 Filipe Coelho <falktx@falktx.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -16,47 +16,33 @@
*/

#include "CarlaEngine.hpp"
#include "CarlaPlugin.hpp"
#include "CarlaHost.h"
#include "CarlaNative.h"

#include "CarlaBackendUtils.hpp"
#include "CarlaNativePlugin.h"
#include "CarlaJuceUtils.hpp"
#include "LinkedList.hpp"

#ifdef CARLA_NATIVE_PLUGIN_DSSI
# include "dssi/dssi.h"
#endif
// -----------------------------------------------------------------------

#ifdef CARLA_NATIVE_PLUGIN_LV2
# include "lv2/lv2.h"
#endif

using CarlaBackend::CarlaPlugin;

// -----------------------------------------------------------------------
#include "lv2/lv2.h"

CARLA_EXTERN_C
std::size_t carla_getNativePluginCount() noexcept;

CARLA_EXTERN_C
const NativePluginDescriptor* carla_getNativePluginDescriptor(const std::size_t index) noexcept;
#endif

// -----------------------------------------------------------------------
// Plugin List

struct PluginListManager {
PluginListManager()
#ifdef CARLA_NATIVE_PLUGIN_DSSI
: dssiDescs(),
#endif
: descs()
#ifdef CARLA_NATIVE_PLUGIN_LV2
: lv2Descs(),
, lv2Descs()
#endif
#ifdef CARLA_NATIVE_PLUGIN_VST
: _dummy(0),
#endif
descs()
{
#ifdef CARLA_NATIVE_PLUGIN_LV2
for (std::size_t i=0, count = carla_getNativePluginCount(); i < count; ++i)
{
const NativePluginDescriptor* const desc(carla_getNativePluginDescriptor(i));
@@ -81,22 +67,16 @@ struct PluginListManager {
descs.append(desc);
}
}
#else
descs.append(carla_get_native_rack_plugin());
descs.append(carla_get_native_patchbay_plugin());
descs.append(carla_get_native_patchbay16_plugin());
descs.append(carla_get_native_patchbay32_plugin());
#endif
}

~PluginListManager()
{
#ifdef CARLA_NATIVE_PLUGIN_DSSI
for (LinkedList<const DSSI_Descriptor*>::Itenerator it = dssiDescs.begin2(); it.valid(); it.next())
{
const DSSI_Descriptor* const dssiDesc(it.getValue());
CARLA_SAFE_ASSERT_CONTINUE(dssiDesc != nullptr);

//delete[] lv2Desc->URI;
delete dssiDesc;
}
dssiDescs.clear();
#endif

#ifdef CARLA_NATIVE_PLUGIN_LV2
for (LinkedList<const LV2_Descriptor*>::Itenerator it = lv2Descs.begin2(); it.valid(); it.next())
{
@@ -118,16 +98,10 @@ struct PluginListManager {
return plm;
}

#ifdef CARLA_NATIVE_PLUGIN_DSSI
LinkedList<const DSSI_Descriptor*> dssiDescs;
#endif
LinkedList<const NativePluginDescriptor*> descs;
#ifdef CARLA_NATIVE_PLUGIN_LV2
LinkedList<const LV2_Descriptor*> lv2Descs;
#endif
#ifdef CARLA_NATIVE_PLUGIN_VST
char _dummy;
#endif
LinkedList<const NativePluginDescriptor*> descs;
};

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

Loading…
Cancel
Save