Browse Source

Make ysfx optional, enabled by default

Signed-off-by: falkTX <falktx@falktx.com>
pull/1775/head
falkTX 1 year ago
parent
commit
296bfc1a4f
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
12 changed files with 89 additions and 24 deletions
  1. +4
    -2
      Makefile
  2. +4
    -1
      source/Makefile.deps.mk
  3. +4
    -0
      source/Makefile.mk
  4. +8
    -4
      source/backend/Makefile
  5. +15
    -1
      source/backend/plugin/CarlaPluginJSFX.cpp
  6. +8
    -0
      source/backend/utils/CachedPlugins.cpp
  7. +8
    -2
      source/backend/utils/Information.cpp
  8. +7
    -1
      source/backend/utils/Makefile
  9. +5
    -3
      source/bridges-plugin/Makefile
  10. +7
    -3
      source/discovery/Makefile
  11. +11
    -3
      source/discovery/carla-discovery.cpp
  12. +8
    -4
      source/plugin/Makefile

+ 4
- 2
Makefile View File

@@ -70,6 +70,10 @@ ifeq ($(HAVE_QT5),true)
3RD_LIBS += $(MODULEDIR)/theme.qt5.a
endif

ifeq ($(HAVE_YSFX),true)
3RD_LIBS += $(MODULEDIR)/ysfx.a
endif

ifeq ($(USING_JUCE),true)
3RD_LIBS += $(MODULEDIR)/carla_juce.a
3RD_LIBS += $(MODULEDIR)/juce_audio_basics.a
@@ -90,8 +94,6 @@ ifeq ($(USING_RTAUDIO),true)
3RD_LIBS += $(MODULEDIR)/rtmidi.a
endif

3RD_LIBS += $(MODULEDIR)/ysfx.a

ALL_LIBS += $(3RD_LIBS)

3rd: $(3RD_LIBS)


+ 4
- 1
source/Makefile.deps.mk View File

@@ -192,6 +192,9 @@ ifeq ($(WASM),true)
HAVE_DGL = false
endif

# NOTE opt-out rather than opt-in
HAVE_YSFX = true

# NOTE not yet implemented, disabled for now
HAVE_YSFXGUI = false

@@ -636,7 +639,7 @@ WATER_LIBS = -ldl -pthread -lrt
else ifeq ($(MACOS),true)

HYLIA_FLAGS = -DLINK_PLATFORM_MACOSX=1
HYLIA_LIBS =
HYLIA_LIBS =
JACKBRIDGE_LIBS = -ldl -pthread
LILV_LIBS = -ldl -lm
RTMEMPOOL_LIBS = -pthread


+ 4
- 0
source/Makefile.mk View File

@@ -233,6 +233,10 @@ ifeq ($(HAVE_X11),true)
BASE_FLAGS += -DHAVE_X11
endif

ifeq ($(HAVE_YSFX),true)
BASE_FLAGS += -DHAVE_YSFX
endif

ifeq ($(USING_JUCE),true)
BASE_FLAGS += -DUSING_JUCE
BASE_FLAGS += -DJUCE_APP_CONFIG_HEADER='"AppConfig.h"'


+ 8
- 4
source/backend/Makefile View File

@@ -50,6 +50,10 @@ ifeq ($(HAVE_HYLIA),true)
STANDALONE_LIBS += $(MODULEDIR)/hylia.a
endif

ifeq ($(HAVE_YSFX),true)
STANDALONE_LIBS += $(MODULEDIR)/ysfx.a
endif

ifeq ($(USING_JUCE),true)
STANDALONE_LIBS += $(MODULEDIR)/carla_juce.a
STANDALONE_LIBS += $(MODULEDIR)/juce_audio_basics.a
@@ -70,8 +74,6 @@ STANDALONE_LIBS += $(MODULEDIR)/rtaudio.a
STANDALONE_LIBS += $(MODULEDIR)/rtmidi.a
endif

STANDALONE_LIBS += $(MODULEDIR)/ysfx.a

# ---------------------------------------------------------------------------------------------------------------------

STANDALONE_LINK_FLAGS = $(HYLIA_LIBS)
@@ -87,6 +89,10 @@ STANDALONE_LINK_FLAGS += $(FLUIDSYNTH_LIBS)
STANDALONE_LINK_FLAGS += $(SDL_LIBS)
STANDALONE_LINK_FLAGS += $(X11_LIBS)

ifeq ($(HAVE_YSFX),true)
STANDALONE_LINK_FLAGS += $(YSFX_GRAPHICS_LIBS)
endif

ifeq ($(USING_JUCE),true)
STANDALONE_LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS)
ifeq ($(USING_JUCE_AUDIO_DEVICES),true)
@@ -106,8 +112,6 @@ STANDALONE_LINK_FLAGS += $(RTAUDIO_LIBS)
STANDALONE_LINK_FLAGS += $(RTMIDI_LIBS)
endif

STANDALONE_LINK_FLAGS += $(YSFX_GRAPHICS_LIBS)

ifeq ($(JACKBRIDGE_DIRECT),true)
STANDALONE_LINK_FLAGS += $(JACK_LIBS)
endif


+ 15
- 1
source/backend/plugin/CarlaPluginJSFX.cpp View File

@@ -1,6 +1,6 @@
/*
* Carla JSFX Plugin
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2021-2023 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
@@ -19,6 +19,9 @@

#include "CarlaPluginInternal.hpp"
#include "CarlaEngine.hpp"

#ifdef HAVE_YSFX

#include "CarlaJsfxUtils.hpp"
#include "CarlaBackendUtils.hpp"
#include "CarlaUtils.hpp"
@@ -1067,6 +1070,12 @@ private:
CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaPluginJSFX)
};

CARLA_BACKEND_END_NAMESPACE

#endif // HAVE_YSFX

CARLA_BACKEND_START_NAMESPACE

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

CarlaPluginPtr CarlaPlugin::newJSFX(const Initializer& init)
@@ -1074,12 +1083,17 @@ CarlaPluginPtr CarlaPlugin::newJSFX(const Initializer& init)
carla_debug("CarlaPlugin::newJSFX({%p, \"%s\", \"%s\", \"%s\", " P_INT64 "})",
init.engine, init.filename, init.name, init.label, init.uniqueId);

#ifdef HAVE_YSFX
std::shared_ptr<CarlaPluginJSFX> plugin(new CarlaPluginJSFX(init.engine, init.id));

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

return plugin;
#else
init.engine->setLastError("JSFX support not available");
return nullptr;
#endif
}

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


+ 8
- 0
source/backend/utils/CachedPlugins.cpp View File

@@ -99,6 +99,7 @@ static void findSFZs(const char* const sfzPaths)
}
// -------------------------------------------------------------------------------------------------------------------

#ifdef HAVE_YSFX
static std::vector<CB::CarlaJsfxUnit> gJSFXs;

static void findJSFXs(const char* const jsfxPaths)
@@ -131,6 +132,7 @@ static void findJSFXs(const char* const jsfxPaths)
}
}
}
#endif

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

@@ -665,6 +667,7 @@ static const CarlaCachedPluginInfo* get_cached_plugin_sfz(const water::File& fil

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

#ifdef HAVE_YSFX
static const CarlaCachedPluginInfo* get_cached_plugin_jsfx(const CB::CarlaJsfxUnit& unit)
{
static CarlaCachedPluginInfo info;
@@ -737,6 +740,7 @@ static const CarlaCachedPluginInfo* get_cached_plugin_jsfx(const CB::CarlaJsfxUn

return &info;
}
#endif

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

@@ -771,10 +775,12 @@ uint carla_get_cached_plugin_count(CB::PluginType ptype, const char* pluginPath)
return static_cast<uint>(gSFZs.size());
}

#ifdef HAVE_YSFX
case CB::PLUGIN_JSFX: {
findJSFXs(pluginPath);
return static_cast<uint>(gJSFXs.size());
}
#endif

default:
return 0;
@@ -821,10 +827,12 @@ const CarlaCachedPluginInfo* carla_get_cached_plugin_info(CB::PluginType ptype,
return get_cached_plugin_sfz(gSFZs[index]);
}

#ifdef HAVE_YSFX
case CB::PLUGIN_JSFX: {
CARLA_SAFE_ASSERT_BREAK(index < static_cast<uint>(gJSFXs.size()));
return get_cached_plugin_jsfx(gJSFXs[index]);
}
#endif

default:
break;


+ 8
- 2
source/backend/utils/Information.cpp View File

@@ -1,6 +1,6 @@
/*
* Carla Plugin Host
* Copyright (C) 2011-2022 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2011-2023 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
@@ -77,8 +77,9 @@ const char* carla_get_complete_license_text()
#if defined(USING_JUCE) && JUCE_PLUGINHOST_AU
"<li>AU plugin support (using JUCE)</li>"
#endif
#ifdef HAVE_YSFX
"<li>JSFX plugin support (using ysfx)</li>"
#endif

// Sample kit libraries
#if defined(HAVE_FLUIDSYNTH) && !defined(BUILD_BRIDGE_ALTERNATIVE_ARCH)
@@ -190,8 +191,10 @@ const char* const* carla_get_supported_file_extensions()
// SFZ
"sfz",

#ifdef HAVE_YSFX
// JSFX
"jsfx",
#endif

// terminator
nullptr
@@ -223,6 +226,9 @@ const char* const* carla_get_supported_features()
#ifdef HAVE_PYQT
"gui",
#endif
#ifdef HAVE_YSFX
"jsfx",
#endif
#ifdef USING_JUCE
"juce",
# if defined(CARLA_OS_MAC)


+ 7
- 1
source/backend/utils/Makefile View File

@@ -28,7 +28,10 @@ TARGETS = $(BINDIR)/libcarla_utils$(LIB_EXT)

LIBS = $(MODULEDIR)/lilv.a
LIBS += $(MODULEDIR)/water.files.a

ifeq ($(HAVE_YSFX),true)
LIBS += $(MODULEDIR)/ysfx.a
endif

ifeq ($(USING_JUCE),true)
LIBS += $(MODULEDIR)/carla_juce.a
@@ -44,12 +47,15 @@ endif

LINK_FLAGS += $(LILV_LIBS)
LINK_FLAGS += $(WATER_LIBS)
LINK_FLAGS += $(YSFX_GRAPHICS_LIBS)

ifeq ($(HAVE_X11),true)
LINK_FLAGS += $(X11_LIBS)
endif

ifeq ($(HAVE_YSFX),true)
LINK_FLAGS += $(YSFX_GRAPHICS_LIBS)
endif

ifneq ($(HAIKU),true)
ifneq ($(WASM),true)
LINK_FLAGS += -pthread


+ 5
- 3
source/bridges-plugin/Makefile View File

@@ -93,6 +93,11 @@ LIBS_win32 += $(MODULEDIR)/water.win32.a
LIBS_win64 += $(MODULEDIR)/water.win64.a
LINK_FLAGS += $(WATER_LIBS)

ifeq ($(HAVE_YSFX),true)
LIBS_native += $(MODULEDIR)/ysfx.a
LINK_FLAGS += $(YSFX_GRAPHICS_LIBS)
endif

ifeq ($(USING_JUCE),true)
LIBS_native += $(MODULEDIR)/carla_juce.a
LIBS_posix32 += $(MODULEDIR)/carla_juce.posix32.a
@@ -157,9 +162,6 @@ LIBS_win64 += $(MODULEDIR)/juce_gui_extra.win64.a
LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS)
endif

LIBS_native += $(MODULEDIR)/ysfx.a
LINK_FLAGS += $(YSFX_GRAPHICS_LIBS)

ifeq ($(JACKBRIDGE_DIRECT),true)
LINK_FLAGS += $(JACK_LIBS)
endif


+ 7
- 3
source/discovery/Makefile View File

@@ -63,7 +63,9 @@ NATIVE_BUILD_FLAGS += $(FLUIDSYNTH_FLAGS)
NATIVE_LINK_FLAGS += $(FLUIDSYNTH_LIBS)
endif

ifeq ($(HAVE_YSFX),true)
NATIVE_BUILD_FLAGS += $(YSFX_FLAGS)
endif

# ---------------------------------------------------------------------------------------------------------------------

@@ -84,6 +86,11 @@ LIBS_win64 = $(MODULEDIR)/water.win64.a
LINK_FLAGS += $(WATER_LIBS)
LINK_FLAGS += $(LIBDL_LIBS)

ifeq ($(HAVE_YSFX),true)
LIBS_native += $(MODULEDIR)/ysfx.a
LINK_FLAGS += $(YSFX_GRAPHICS_LIBS)
endif

ifeq ($(USING_JUCE),true)
LIBS_native += $(MODULEDIR)/carla_juce.a
LIBS_posix32 += $(MODULEDIR)/carla_juce.posix32.a
@@ -148,9 +155,6 @@ LIBS_win64 += $(MODULEDIR)/juce_gui_extra.win64.a
LINK_FLAGS += $(JUCE_GUI_EXTRA_LIBS)
endif # USING_JUCE

LIBS_native += $(MODULEDIR)/ysfx.a
LINK_FLAGS += $(YSFX_GRAPHICS_LIBS)

# ---------------------------------------------------------------------------------------------------------------------

OBJS_native = $(OBJDIR)/$(MODULENAME).cpp.o


+ 11
- 3
source/discovery/carla-discovery.cpp View File

@@ -1,6 +1,6 @@
/*
* Carla Plugin discovery
* Copyright (C) 2011-2022 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2011-2023 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
@@ -44,6 +44,7 @@

#ifdef BUILD_BRIDGE
# undef HAVE_FLUIDSYNTH
# undef HAVE_YSFX
#endif

#ifdef HAVE_FLUIDSYNTH
@@ -2373,9 +2374,9 @@ static void do_fluidsynth_check(const char* const filename, const PluginType typ

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

#ifndef BUILD_BRIDGE
static void do_jsfx_check(const char* const filename, bool doInit)
{
#ifdef HAVE_YSFX
const water::File file(filename);

ysfx_config_u config(ysfx_config_new());
@@ -2429,8 +2430,15 @@ static void do_jsfx_check(const char* const filename, bool doInit)
DISCOVERY_OUT("midi.outs", midiOuts);
DISCOVERY_OUT("parameters.ins", parameters);
DISCOVERY_OUT("end", "------------");
}
#else // HAVE_YSFX
DISCOVERY_OUT("error", "JSFX support not available");
return;

// unused
(void)filename;
(void)doInit;
#endif
}

// ------------------------------ main entry point ------------------------------



+ 8
- 4
source/plugin/Makefile View File

@@ -50,12 +50,14 @@ ifeq ($(HAVE_FLUIDSYNTH),true)
BUILD_CXX_FLAGS += $(FLUIDSYNTH_FLAGS)
endif

BUILD_CXX_FLAGS += $(YSFX_FLAGS)

ifeq ($(HAVE_X11),true)
BUILD_CXX_FLAGS += $(X11_FLAGS)
endif

ifeq ($(HAVE_YSFX),true)
BUILD_CXX_FLAGS += $(YSFX_FLAGS)
endif

# ---------------------------------------------------------------------------------------------------------------------
# Libs

@@ -88,6 +90,10 @@ ifeq ($(HAVE_HYLIA),true)
LIBS += $(MODULEDIR)/hylia.a
endif

ifeq ($(HAVE_YSFX),true)
LIBS += $(MODULEDIR)/ysfx.a
endif

ifeq ($(USING_JUCE),true)
LIBS_juce = $(MODULEDIR)/carla_juce.a
LIBS_juce += $(MODULEDIR)/juce_audio_basics.a
@@ -100,8 +106,6 @@ LIBS_juce += $(MODULEDIR)/juce_gui_basics.a
LIBS_juce += $(MODULEDIR)/juce_gui_extra.a
endif

LIBS += $(MODULEDIR)/ysfx.a

# ---------------------------------------------------------------------------------------------------------------------
# Link flags



Loading…
Cancel
Save