Browse Source

Implement save/restore for Ildaeil

Signed-off-by: falkTX <falktx@falktx.com>
tags/22.02
falkTX 4 years ago
parent
commit
6cda0c7a67
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
2 changed files with 45 additions and 12 deletions
  1. +33
    -0
      plugins/Cardinal/src/Ildaeil.cpp
  2. +12
    -12
      src/Makefile.cardinal.mk

+ 33
- 0
plugins/Cardinal/src/Ildaeil.cpp View File

@@ -26,6 +26,11 @@
#include "water/streams/MemoryOutputStream.h" #include "water/streams/MemoryOutputStream.h"
#include "water/xml/XmlDocument.h" #include "water/xml/XmlDocument.h"


extern "C" {
// private method that takes ownership, we can use it to avoid superfulous allocations
json_t *jsonp_stringn_nocheck_own(const char* value, size_t len);
}

#define BUFFER_SIZE 128 #define BUFFER_SIZE 128


// generates a warning if this is defined as anything else // generates a warning if this is defined as anything else
@@ -221,6 +226,34 @@ struct IldaeilModule : Module {
return 0; return 0;
} }


json_t* dataToJson() override
{
if (fCarlaHostHandle == nullptr)
return nullptr;

CarlaEngine* const engine = carla_get_engine_from_handle(fCarlaHostHandle);

water::MemoryOutputStream projectState;
engine->saveProjectInternal(projectState);

const size_t dataSize = projectState.getDataSize();
return jsonp_stringn_nocheck_own(static_cast<const char*>(projectState.getDataAndRelease()), dataSize);
}

void dataFromJson(json_t* const rootJ) override
{
if (fCarlaHostHandle == nullptr)
return;

const char* const projectState = json_string_value(rootJ);
DISTRHO_SAFE_ASSERT_RETURN(projectState != nullptr,);

CarlaEngine* const engine = carla_get_engine_from_handle(fCarlaHostHandle);

water::XmlDocument xml(projectState);
engine->loadProjectInternal(xml, true);
}

void process(const ProcessArgs&) override void process(const ProcessArgs&) override
{ {
if (fCarlaPluginHandle == nullptr) if (fCarlaPluginHandle == nullptr)


+ 12
- 12
src/Makefile.cardinal.mk View File

@@ -42,18 +42,18 @@ CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/water.a
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/zita-resampler.a CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/zita-resampler.a
# CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/eel2.a # CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/eel2.a
# CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/jsusfx.a # CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/jsusfx.a
ifeq ($(USING_JUCE),true)
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_audio_basics.a
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_audio_processors.a
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_core.a
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_data_structures.a
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_events.a
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_graphics.a
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_gui_basics.a
ifeq ($(USING_JUCE_GUI_EXTRA),true)
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_gui_extra.a
endif
endif
# # ifeq ($(USING_JUCE),true)
# # CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_audio_basics.a
# # CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_audio_processors.a
# # CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_core.a
# # CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_data_structures.a
# # CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_events.a
# # CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_graphics.a
# # CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_gui_basics.a
# # ifeq ($(USING_JUCE_GUI_EXTRA),true)
# # CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_gui_extra.a
# # endif
# # endif
# ifneq ($(MACOS),true) # ifneq ($(MACOS),true)
# CARLA_EXTRA_LIBS += -Wl,--no-whole-archive -Wl,--end-group # CARLA_EXTRA_LIBS += -Wl,--no-whole-archive -Wl,--end-group
# endif # endif


Loading…
Cancel
Save