Implement save/restore for Ildaeil
Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
parent
1ccbea05de
commit
6cda0c7a67
2 changed files with 45 additions and 12 deletions
|
@ -26,6 +26,11 @@
|
|||
#include "water/streams/MemoryOutputStream.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
|
||||
|
||||
// generates a warning if this is defined as anything else
|
||||
|
@ -221,6 +226,34 @@ struct IldaeilModule : Module {
|
|||
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
|
||||
{
|
||||
if (fCarlaPluginHandle == nullptr)
|
||||
|
|
|
@ -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)/eel2.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)
|
||||
# CARLA_EXTRA_LIBS += -Wl,--no-whole-archive -Wl,--end-group
|
||||
# endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue