diff --git a/source/backend/CarlaEngine.hpp b/source/backend/CarlaEngine.hpp index 1c4067601..7553e64e1 100644 --- a/source/backend/CarlaEngine.hpp +++ b/source/backend/CarlaEngine.hpp @@ -18,7 +18,7 @@ #ifndef CARLA_ENGINE_HPP_INCLUDED #define CARLA_ENGINE_HPP_INCLUDED -#include "CarlaBackend.hpp" +#include "CarlaBackend.h" #include "CarlaMIDI.h" #include "CarlaString.hpp" diff --git a/source/backend/CarlaHost.h b/source/backend/CarlaHost.h index 9a4d78297..8df67afcd 100644 --- a/source/backend/CarlaHost.h +++ b/source/backend/CarlaHost.h @@ -36,6 +36,7 @@ using CarlaBackend::MidiProgramData; using CarlaBackend::CustomData; using CarlaBackend::EngineDriverDeviceInfo; using CarlaBackend::CarlaEngine; +using CarlaBackend::CarlaPlugin; #endif /*! @@ -472,16 +473,16 @@ typedef struct _CarlaTransportInfo { * Get the complete license text of used third-party code and features.\n * Returned string is in basic html format. */ -CARLA_EXPORT const char* carla_get_extended_license_text(); +CARLA_EXPORT const char* carla_get_complete_license_text(); /*! - * Get the supported file types in carla_load_filename().\n + * Get all the supported file types in carla_load_filename().\n * Returned string uses this syntax: - * \code + * @code * "*.ext1;*.ext2;*.ext3" - * \endcode + * @endcode */ -CARLA_EXPORT const char* carla_get_supported_file_types(); +CARLA_EXPORT const char* carla_get_supported_file_extensions(); /*! * Get how many engine drivers are available to use. @@ -947,4 +948,4 @@ CARLA_EXPORT const char* carla_get_host_osc_url_udp(); /** @} */ -#endif // CARLA_HOST_H_INCLUDED +#endif /* CARLA_HOST_H_INCLUDED */ diff --git a/source/backend/CarlaPlugin.hpp b/source/backend/CarlaPlugin.hpp index f1d22a709..2681882d4 100644 --- a/source/backend/CarlaPlugin.hpp +++ b/source/backend/CarlaPlugin.hpp @@ -18,7 +18,7 @@ #ifndef CARLA_PLUGIN_HPP_INCLUDED #define CARLA_PLUGIN_HPP_INCLUDED -#include "CarlaBackend.hpp" +#include "CarlaBackend.h" #include "CarlaString.hpp" // Avoid including extra libs here diff --git a/source/backend/Makefile.mk b/source/backend/Makefile.mk index edf406e4f..f54bcaf84 100644 --- a/source/backend/Makefile.mk +++ b/source/backend/Makefile.mk @@ -47,6 +47,9 @@ endif ifeq ($(HAVE_ZYN_DEPS),true) BUILD_CXX_FLAGS += -DWANT_ZYNADDSUBFX +ifeq ($(HAVE_ZYN_UI_DEPS),true) +BUILD_CXX_FLAGS += -DWANT_ZYNADDSUBFX_UI +endif endif # -------------------------------------------------------------- diff --git a/source/backend/standalone/CarlaStandalone.cpp b/source/backend/standalone/CarlaStandalone.cpp index cc4188e8b..caeaf29d6 100644 --- a/source/backend/standalone/CarlaStandalone.cpp +++ b/source/backend/standalone/CarlaStandalone.cpp @@ -22,31 +22,17 @@ #include "CarlaEngine.hpp" #include "CarlaPlugin.hpp" -#include "CarlaBackendUtils.hpp" -#include "CarlaOscUtils.hpp" -#include "CarlaNative.h" +//#include "CarlaBackendUtils.hpp" +//#include "CarlaOscUtils.hpp" +//#include "CarlaNative.h" #ifdef USE_JUCE # include "juce_gui_basics.h" #endif -//#include "CarlaLogThread.hpp" -//#if ! (defined(DEBUG) || defined(WANT_LOGS) || defined(BUILD_ANSI_TEST)) -//# define WANT_LOGS -//#endif - namespace CB = CarlaBackend; -using CB::CarlaEngine; -using CB::CarlaPlugin; -using CB::EngineCallbackFunc; -using CB::EngineOptions; -using CB::EngineTimeInfo; -using CB::FileCallbackFunc; - #ifdef USE_JUCE -using namespace juce; - // ----------------------------------------------------------------------- // Juce Message Thread @@ -95,17 +81,22 @@ juce_ImplementSingleton(JuceMessageThread) // Single, standalone engine struct CarlaBackendStandalone { - EngineCallbackFunc callback; - void* callbackPtr; + CarlaEngine* engine; + EngineCallbackFunc engineCallback; + void* engineCallbackPtr; + //EngineOptions engineOptions; + + FileCallbackFunc fileCallback; + void* fileCallbackPtr; - CarlaEngine* engine; - CarlaString lastError; - EngineOptions options; + CarlaString lastError; CarlaBackendStandalone() - : callback(nullptr), - callbackPtr(nullptr), - engine(nullptr) {} + : engine(nullptr), + engineCallback(nullptr), + engineCallbackPtr(nullptr), + fileCallback(nullptr), + fileCallbackPtr(nullptr) {} ~CarlaBackendStandalone() { @@ -115,52 +106,35 @@ struct CarlaBackendStandalone { #endif } +#ifdef USE_JUCE void init() { -#ifdef USE_JUCE JUCE_AUTORELEASEPOOL initialiseJuce_GUI(); JuceMessageThread::getInstance(); -#endif } - void idle() {} - void close() { -#ifdef USE_JUCE JUCE_AUTORELEASEPOOL JuceMessageThread::deleteInstance(); shutdownJuce_GUI(); -#endif } +#endif CARLA_DECLARE_NON_COPY_STRUCT(CarlaBackendStandalone) }; -struct CarlaBackendFileHandler { - FileCallbackFunc callback; - void* callbackPtr; - - CarlaBackendFileHandler() - : callback(nullptr), - callbackPtr(nullptr) {} -}; - -//#ifdef WANT_LOGS -//static CarlaLogThread gLogThread; -//#endif -static CarlaBackendStandalone gStandalone; -static CarlaBackendFileHandler gFileHandler; +static CarlaBackendStandalone gStandalone; // ------------------------------------------------------------------------------------------------------------------- // API -const char* carla_get_extended_license_text() +const char* carla_get_complete_license_text() { - carla_debug("carla_get_extended_license_text()"); + carla_debug("carla_get_complete_license_text()"); static CarlaString retText; @@ -205,23 +179,24 @@ const char* carla_get_extended_license_text() text2 += "
  • LinuxSampler library for GIG and SFZ support*, http://www.linuxsampler.org/
  • "; #endif +#ifdef WANT_NATIVE // Internal plugins -#ifdef WANT_OPENGL +# ifdef WANT_OPENGL text3 += "
  • DISTRHO Mini-Series plugin code, based on LOSER-dev suite by Michael Gruhn
  • "; -#endif +# endif text3 += "
  • NekoFilter plugin code, based on lv2fil by Nedko Arnaudov and Fons Adriaensen
  • "; //text1 += "
  • SunVox library file support, http://www.warmplace.ru/soft/sunvox/
  • "; // unfinished - -#ifdef WANT_AUDIOFILE +# ifdef WANT_AUDIOFILE text3 += "
  • AudioDecoder library for Audio file support, by Robin Gareus
  • "; -#endif -#ifdef WANT_MIDIFILE +# endif +# ifdef WANT_MIDIFILE text3 += "
  • LibSMF library for MIDI file support, http://libsmf.sourceforge.net/
  • "; -#endif -#ifdef WANT_ZYNADDSUBFX +# endif +# ifdef WANT_ZYNADDSUBFX text3 += "
  • ZynAddSubFX plugin code, http://zynaddsubfx.sf.net/
  • "; -# ifdef WANT_ZYNADDSUBFX_UI +# ifdef WANT_ZYNADDSUBFX_UI text3 += "
  • ZynAddSubFX UI using NTK, http://non.tuxfamily.org/wiki/NTK
  • "; +# endif # endif #endif @@ -243,8 +218,8 @@ const char* carla_get_extended_license_text() text5 += "
  • Real-time memory pool, by Nedko Arnaudov
  • "; text5 += ""; - // LinuxSampler GPL exception #ifdef WANT_LINUXSAMPLER + // LinuxSampler GPL exception text5 += "

    (*) Using LinuxSampler code in commercial hardware or software products is not allowed without prior written authorization by the authors.

    "; #endif @@ -254,9 +229,9 @@ const char* carla_get_extended_license_text() return retText; } -const char* carla_get_supported_file_types() +const char* carla_get_supported_file_extensions() { - carla_debug("carla_get_supported_file_types()"); + carla_debug("carla_get_supported_file_extensions()"); static CarlaString retText; @@ -321,13 +296,14 @@ const char* const* carla_get_engine_driver_device_names(unsigned int index) return CarlaEngine::getDriverDeviceNames(index); } -const CarlaEngineDriverDeviceInfo* carla_get_engine_driver_device_info(unsigned int index, const char* deviceName) +const EngineDriverDeviceInfo* carla_get_engine_driver_device_info(unsigned int index, const char* deviceName) { carla_debug("carla_get_engine_driver_device_info(%i, \"%s\")", index, deviceName); return CarlaEngine::getDriverDeviceInfo(index, deviceName); } +#if 0 // ------------------------------------------------------------------------------------------------------------------- unsigned int carla_get_internal_plugin_count() @@ -2245,6 +2221,18 @@ void carla_nsm_reply_save() gCarlaNSM.replySave(); } +#endif + +// ------------------------------------------------------------------------------------------------------------------- + +//#include "CarlaLogThread.hpp" +//#if ! (defined(DEBUG) || defined(WANT_LOGS) || defined(BUILD_ANSI_TEST)) +//# define WANT_LOGS +//#endif + +//#ifdef WANT_LOGS +//static CarlaLogThread gLogThread; +//#endif // ------------------------------------------------------------------------------------------------------------------- diff --git a/source/backend/standalone/Makefile b/source/backend/standalone/Makefile index 2bf56dc84..16d66d0df 100644 --- a/source/backend/standalone/Makefile +++ b/source/backend/standalone/Makefile @@ -8,91 +8,91 @@ include ../Makefile.mk # -------------------------------------------------------------- -BUILD_CXX_FLAGS += $(shell pkg-config --cflags liblo) +# BUILD_CXX_FLAGS += $(shell pkg-config --cflags liblo) # -------------------------------------------------------------- # Common -LINK_FLAGS += $(shell pkg-config --libs liblo) +# LINK_FLAGS += $(shell pkg-config --libs liblo) -LINK_FLAGS += $(JACKBRIDGE_LIBS) +# LINK_FLAGS += $(JACKBRIDGE_LIBS) # LINK_FLAGS += $(JUCE_AUDIO_BASICS_LIBS) # LINK_FLAGS += $(JUCE_CORE_LIBS) # LINK_FLAGS += $(JUCE_DATA_STRUCTURES_LIBS) # LINK_FLAGS += $(JUCE_EVENTS_LIBS) # LINK_FLAGS += $(JUCE_GRAPHICS_LIBS) # LINK_FLAGS += $(JUCE_GUI_BASICS_LIBS) -LINK_FLAGS += $(RTAUDIO_LIBS) -LINK_FLAGS += $(RTMIDI_LIBS) -LINK_FLAGS += $(RTMEMPOOL_LIBS) - -ifeq ($(HAVE_OPENGL),true) -LINK_FLAGS += $(DGL_LIBS) -endif - -ifeq ($(CARLA_PLUGIN_SUPPORT),true) -LINK_FLAGS += $(LILV_LIBS) -endif +# LINK_FLAGS += $(RTAUDIO_LIBS) +# LINK_FLAGS += $(RTMIDI_LIBS) +# LINK_FLAGS += $(RTMEMPOOL_LIBS) +# +# ifeq ($(HAVE_OPENGL),true) +# LINK_FLAGS += $(DGL_LIBS) +# endif +# +# ifeq ($(CARLA_PLUGIN_SUPPORT),true) +# LINK_FLAGS += $(LILV_LIBS) +# endif # -------------------------------------------------------------- # Plugin -ifeq ($(HAVE_FLUIDSYNTH),true) -LINK_FLAGS += $(shell pkg-config --libs fluidsynth) -endif - -ifeq ($(HAVE_LINUXSAMPLER),true) -LINK_FLAGS += $(shell pkg-config --libs linuxsampler) -ifeq ($(WIN32),true) -LINK_FLAGS += lrpcrt4 -endif -endif +# ifeq ($(HAVE_FLUIDSYNTH),true) +# LINK_FLAGS += $(shell pkg-config --libs fluidsynth) +# endif +# +# ifeq ($(HAVE_LINUXSAMPLER),true) +# LINK_FLAGS += $(shell pkg-config --libs linuxsampler) +# ifeq ($(WIN32),true) +# LINK_FLAGS += lrpcrt4 +# endif +# endif # -------------------------------------------------------------- # Native -ifeq ($(HAVE_AF_DEPS),true) -LINK_FLAGS += $(shell pkg-config --libs sndfile) -ifeq ($(HAVE_FFMPEG),true) -LINK_FLAGS += $(shell pkg-config --libs libavcodec libavformat libavutil) -endif -endif - -ifeq ($(HAVE_MF_DEPS),true) -LINK_FLAGS += $(shell pkg-config --libs smf) -endif - -ifeq ($(HAVE_ZYN_DEPS),true) -LINK_FLAGS += $(shell pkg-config --libs fftw3 mxml zlib) -ifeq ($(HAVE_ZYN_UI_DEPS),true) -LINK_FLAGS += $(shell pkg-config --libs ntk_images ntk) -endif -endif +# ifeq ($(HAVE_AF_DEPS),true) +# LINK_FLAGS += $(shell pkg-config --libs sndfile) +# ifeq ($(HAVE_FFMPEG),true) +# LINK_FLAGS += $(shell pkg-config --libs libavcodec libavformat libavutil) +# endif +# endif +# +# ifeq ($(HAVE_MF_DEPS),true) +# LINK_FLAGS += $(shell pkg-config --libs smf) +# endif +# +# ifeq ($(HAVE_ZYN_DEPS),true) +# LINK_FLAGS += $(shell pkg-config --libs fftw3 mxml zlib) +# ifeq ($(HAVE_ZYN_UI_DEPS),true) +# LINK_FLAGS += $(shell pkg-config --libs ntk_images ntk) +# endif +# endif # -------------------------------------------------------------- -LIBS = ../libcarla_engine.a -LIBS += ../libcarla_plugin.a +# LIBS = ../libcarla_engine.a +# LIBS += ../libcarla_plugin.a -LIBS += ../../modules/carla_native.a -LIBS += ../../modules/jackbridge.a +# LIBS += ../../modules/carla_native.a +# LIBS += ../../modules/jackbridge.a # LIBS += ../../modules/juce_audio_basics.a # LIBS += ../../modules/juce_core.a # LIBS += ../../modules/juce_data_structures.a # LIBS += ../../modules/juce_events.a # LIBS += ../../modules/juce_graphics.a # LIBS += ../../modules/juce_gui_basics.a -LIBS += ../../modules/rtaudio.a -LIBS += ../../modules/rtmidi.a -LIBS += ../../modules/rtmempool.a +# LIBS += ../../modules/rtaudio.a +# LIBS += ../../modules/rtmidi.a +# LIBS += ../../modules/rtmempool.a -ifeq ($(HAVE_OPENGL),true) -LIBS += ../../modules/dgl.a -endif +# ifeq ($(HAVE_OPENGL),true) +# LIBS += ../../modules/dgl.a +# endif -ifeq ($(CARLA_PLUGIN_SUPPORT),true) -LIBS += ../../modules/lilv.a -endif +# ifeq ($(CARLA_PLUGIN_SUPPORT),true) +# LIBS += ../../modules/lilv.a +# endif # -------------------------------------------------------------- @@ -100,7 +100,7 @@ OBJS = \ CarlaStandalone.cpp.o HEADERS = \ - ../CarlaBackend.hpp ../CarlaEngine.hpp ../CarlaPlugin.hpp ../CarlaHost.hpp ../../modules/CarlaNative.h + ../CarlaBackend.h ../CarlaHost.h ../CarlaEngine.hpp ../CarlaPlugin.hpp ../../modules/CarlaNative.h ifeq ($(WIN32),true) TARGET = ../libcarla_standalone2.dll diff --git a/source/carla_backend.py b/source/carla_backend.py index 9f8763efb..4d0af2521 100644 --- a/source/carla_backend.py +++ b/source/carla_backend.py @@ -889,16 +889,16 @@ class CarlaPluginInfo(Structure): # @see PluginOptions ("optionsAvailable", c_uint), - # Plugin options currently enabled.\n + # Plugin options currently enabled. # Some options are enabled but not available, which means they will always be on. # @see PluginOptions ("optionsEnabled", c_uint), - # Plugin filename.\n + # Plugin filename. # This can be the plugin binary or resource file. ("filename", c_char_p), - # Plugin name.\n + # Plugin name. # This name is unique within a Carla instance. # @see carla_get_real_plugin_name() ("name", c_char_p), @@ -912,15 +912,15 @@ class CarlaPluginInfo(Structure): # Plugin copyright/license. ("copyright", c_char_p), - # Icon name for this plugin, in lowercase.\n + # Icon name for this plugin, in lowercase. # Default is "plugin". ("iconName", c_char_p), - # Patchbay client Id for this plugin.\n + # Patchbay client Id for this plugin. # When 0, Id is considered invalid or unused. ("patchbayClientId", c_int), - # Plugin unique Id.\n + # Plugin unique Id. # This Id is dependant on the plugin type and may sometimes be 0. ("uniqueId", c_long) ] @@ -1104,12 +1104,18 @@ class Host(object): object.__init__(self) self._init(libName) - # ... - def get_extended_license_text(self): - return self.lib.carla_get_extended_license_text() + # Get the complete license text of used third-party code and features. + # Returned string is in basic html format. + def get_complete_license_text(self): + return self.lib.carla_get_complete_license_text() - def get_supported_file_types(self): - return self.lib.carla_get_supported_file_types() + # Get all the supported file types in carla_load_filename(). + # Returned string uses this syntax: + # @code + # "*.ext1;*.ext2;*.ext3" + # @endcode + def get_supported_file_extensions(self): + return self.lib.carla_get_supported_file_extensions() def get_engine_driver_count(self): return self.lib.carla_get_engine_driver_count() @@ -1373,11 +1379,13 @@ class Host(object): def _init(self, libName): self.lib = cdll.LoadLibrary(libName) - self.lib.carla_get_extended_license_text.argtypes = None - self.lib.carla_get_extended_license_text.restype = c_char_p + self.lib.carla_get_complete_license_text.argtypes = None + self.lib.carla_get_complete_license_text.restype = c_char_p + + self.lib.carla_get_supported_file_extensions.argtypes = None + self.lib.carla_get_supported_file_extensions.restype = c_char_p - self.lib.carla_get_supported_file_types.argtypes = None - self.lib.carla_get_supported_file_types.restype = c_char_p + return self.lib.carla_get_engine_driver_count.argtypes = None self.lib.carla_get_engine_driver_count.restype = c_uint diff --git a/source/tests/Makefile b/source/tests/Makefile index 9d9b7bc97..ba1abe3c1 100644 --- a/source/tests/Makefile +++ b/source/tests/Makefile @@ -26,9 +26,10 @@ BUILD_CXX_FLAGS += -isystem /opt/kxstudio/include ANSI_FLAGS = -DBUILD_ANSI_TEST -DREAL_BUILD -I/usr/include/carla -I/usr/include/carla/includes ANSI_FLAGS += -Wall -Wextra -Werror -BASE_FLAGS += -DDEBUG -O0 -g -BASE_FLAGS += -ansi -pedantic -pedantic-errors -BASE_FLAGS += -Wunused-parameter -Wuninitialized -Wcast-qual -Wconversion -Wsign-conversion -Wlogical-op -Waggregate-return +ANSI_FLAGS += -DDEBUG -O0 -g +ANSI_FLAGS += -ansi -pedantic -pedantic-errors +ANSI_FLAGS += -Wunused-parameter -Wuninitialized -Wcast-qual -Wconversion -Wsign-conversion -Wlogical-op -Waggregate-return +ANSI_FLAGS += -L../backend -lcarla_standalone2 # -------------------------------------------------------------- diff --git a/source/tests/ansi-pedantic-test.c b/source/tests/ansi-pedantic-test.c index 646f254c3..5ae64086e 100644 --- a/source/tests/ansi-pedantic-test.c +++ b/source/tests/ansi-pedantic-test.c @@ -18,11 +18,37 @@ #include "CarlaBackend.h" #include "CarlaHost.h" +#include + int main(int argc, char* argv[]) { + ParameterData a; + ParameterRanges b; + MidiProgramData c; + CustomData d; + EngineDriverDeviceInfo e; + + CarlaPluginInfo f; + CarlaNativePluginInfo g; + CarlaPortCountInfo h; + CarlaParameterInfo i; + CarlaScalePointInfo j; + CarlaTransportInfo k; + + const char* licenseText; + const char* fileExtensions; + + licenseText = carla_get_complete_license_text(); + printf("LICENSE:\n%s\n", licenseText); + + fileExtensions = carla_get_supported_file_extensions(); + printf("FILE EXTENSIONS:\n%s\n", fileExtensions); + return 0; /* unused */ (void)argc; (void)argv; + (void)a; (void)b; (void)c; (void)d; (void)e; + (void)f; (void)g; (void)h; (void)i; (void)j; (void)k; } diff --git a/source/utils/CarlaUtils.hpp b/source/utils/CarlaUtils.hpp index 8c1a67c6a..775bfafe1 100644 --- a/source/utils/CarlaUtils.hpp +++ b/source/utils/CarlaUtils.hpp @@ -18,7 +18,7 @@ #ifndef CARLA_UTILS_HPP_INCLUDED #define CARLA_UTILS_HPP_INCLUDED -#include "CarlaDefines.hpp" +#include "CarlaDefines.h" #include #include