summaryrefslogtreecommitdiffstats
path: root/src/server/events
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/events')
-rw-r--r--src/server/events/CreateBlock.cpp4
-rw-r--r--src/server/events/Delta.cpp12
-rw-r--r--src/server/events/Delta.hpp3
3 files changed, 11 insertions, 8 deletions
diff --git a/src/server/events/CreateBlock.cpp b/src/server/events/CreateBlock.cpp
index 712a9966..4dc64bdc 100644
--- a/src/server/events/CreateBlock.cpp
+++ b/src/server/events/CreateBlock.cpp
@@ -134,7 +134,7 @@ CreateBlock::pre_process(PreProcessContext& ctx)
}
// Load state from directory if given in properties
- LilvState* state = nullptr;
+ StatePtr state{};
auto s = _properties.find(uris.state_state);
if (s != _properties.end() && s->second.type() == uris.forge.Path) {
state = LV2Block::load_state(
@@ -147,7 +147,7 @@ CreateBlock::pre_process(PreProcessContext& ctx)
polyphonic,
_graph,
_engine,
- state))) {
+ state.get()))) {
return Event::pre_process_done(Status::CREATION_FAILED, _path);
}
}
diff --git a/src/server/events/Delta.cpp b/src/server/events/Delta.cpp
index 33611b7a..911ace66 100644
--- a/src/server/events/Delta.cpp
+++ b/src/server/events/Delta.cpp
@@ -72,7 +72,7 @@ Delta::Delta(Engine& engine,
, _object(nullptr)
, _graph(nullptr)
, _binding(nullptr)
- , _state(nullptr)
+ , _state()
, _context(msg.ctx)
, _type(Type::PUT)
, _block(false)
@@ -390,8 +390,9 @@ Delta::pre_process(PreProcessContext& ctx)
if (!uri.empty()) {
op = SpecialType::PRESET;
if ((_state = block->load_preset(uri))) {
- lilv_state_emit_port_values(
- _state, s_add_set_event, this);
+ lilv_state_emit_port_values(_state.get(),
+ s_add_set_event,
+ this);
} else {
_engine.log().warn("Failed to load preset <%1%>\n", uri);
}
@@ -597,10 +598,11 @@ Delta::post_process()
if (_state) {
auto* block = dynamic_cast<BlockImpl*>(_object);
if (block) {
- block->apply_state(_engine.sync_worker(), _state);
+ block->apply_state(_engine.sync_worker(), _state.get());
block->set_enabled(true);
}
- lilv_state_free(_state);
+
+ _state.reset();
}
Broadcaster::Transfer t(*_engine.broadcaster());
diff --git a/src/server/events/Delta.hpp b/src/server/events/Delta.hpp
index 4d749f02..fc4716f2 100644
--- a/src/server/events/Delta.hpp
+++ b/src/server/events/Delta.hpp
@@ -17,6 +17,7 @@
#ifndef INGEN_EVENTS_DELTA_HPP
#define INGEN_EVENTS_DELTA_HPP
+#include "BlockImpl.hpp"
#include "ClientUpdate.hpp"
#include "CompiledGraph.hpp"
#include "ControlBindings.hpp"
@@ -119,7 +120,7 @@ private:
GraphImpl* _graph;
Raul::managed_ptr<CompiledGraph> _compiled_graph;
ControlBindings::Binding* _binding;
- LilvState* _state;
+ StatePtr _state;
Resource::Graph _context;
Type _type;