summaryrefslogtreecommitdiffstats
path: root/src/server/events/SetPortValue.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/events/SetPortValue.cpp')
-rw-r--r--src/server/events/SetPortValue.cpp71
1 files changed, 34 insertions, 37 deletions
diff --git a/src/server/events/SetPortValue.cpp b/src/server/events/SetPortValue.cpp
index 2eecf9ce..ba6859dd 100644
--- a/src/server/events/SetPortValue.cpp
+++ b/src/server/events/SetPortValue.cpp
@@ -16,47 +16,46 @@
#include "SetPortValue.hpp"
-#include "BlockImpl.hpp"
#include "Broadcaster.hpp"
#include "Buffer.hpp"
+#include "BufferFactory.hpp"
#include "ControlBindings.hpp"
#include "Engine.hpp"
#include "PortImpl.hpp"
#include "RunContext.hpp"
-#include "ingen/Forge.hpp"
-#include "ingen/LV2Features.hpp"
-#include "ingen/Store.hpp"
-#include "ingen/URIs.hpp"
-#include "ingen/World.hpp"
+#include <ingen/Atom.hpp>
+#include <ingen/Forge.hpp>
+#include <ingen/Status.hpp>
+#include <ingen/URIs.hpp>
+#include <ingen/World.hpp>
+#include <lv2/atom/atom.h>
#include <cassert>
+#include <memory>
-namespace ingen {
-namespace server {
-namespace events {
+namespace ingen::server::events {
/** Internal */
-SetPortValue::SetPortValue(Engine& engine,
- const SPtr<Interface>& client,
- int32_t id,
- SampleCount timestamp,
- PortImpl* port,
- const Atom& value,
- bool activity,
- bool synthetic)
+SetPortValue::SetPortValue(Engine& engine,
+ const std::shared_ptr<Interface>& client,
+ int32_t id,
+ SampleCount timestamp,
+ PortImpl* port,
+ const Atom& value,
+ bool activity,
+ bool synthetic)
: Event(engine, client, id, timestamp)
, _port(port)
, _value(value)
, _activity(activity)
, _synthetic(synthetic)
-{
-}
+{}
bool
SetPortValue::pre_process(PreProcessContext&)
{
- ingen::URIs& uris = _engine.world().uris();
+ const ingen::URIs& uris = _engine.world().uris();
if (_port->is_output()) {
return Event::pre_process_done(Status::DIRECTION_MISMATCH, _port->path());
}
@@ -80,43 +79,43 @@ SetPortValue::pre_process(PreProcessContext&)
}
void
-SetPortValue::execute(RunContext& context)
+SetPortValue::execute(RunContext& ctx)
{
- assert(_time >= context.start() && _time <= context.end());
- apply(context);
- _engine.control_bindings()->port_value_changed(context, _port, _binding, _value);
+ assert(_time >= ctx.start() && _time <= ctx.end());
+ apply(ctx);
+ _engine.control_bindings()->port_value_changed(ctx, _port, _binding, _value);
}
void
-SetPortValue::apply(RunContext& context)
+SetPortValue::apply(RunContext& ctx)
{
if (_status != Status::SUCCESS) {
return;
}
- ingen::URIs& uris = _engine.world().uris();
- Buffer* buf = _port->buffer(0).get();
+ const ingen::URIs& uris = _engine.world().uris();
+ Buffer* buf = _port->buffer(0).get();
if (_buffer) {
- if (_port->user_buffer(context)) {
- buf = _port->user_buffer(context).get();
+ if (_port->user_buffer(ctx)) {
+ buf = _port->user_buffer(ctx).get();
} else {
- _port->set_user_buffer(context, _buffer);
+ _port->set_user_buffer(ctx, _buffer);
buf = _buffer.get();
}
}
if (buf->type() == uris.atom_Sound || buf->type() == uris.atom_Float) {
if (_value.type() == uris.forge.Float) {
- _port->set_control_value(context, _time, _value.get<float>());
+ _port->set_control_value(ctx, _time, _value.get<float>());
} else {
_status = Status::TYPE_MISMATCH;
}
} else if (buf->type() == uris.atom_Sequence) {
- if (!buf->append_event(_time - context.start(),
+ if (!buf->append_event(_time - ctx.start(),
_value.size(),
_value.type(),
- (const uint8_t*)_value.get_body())) {
+ reinterpret_cast<const uint8_t*>(_value.get_body()))) {
_status = Status::NO_SPACE;
}
} else if (buf->type() == uris.atom_URID) {
@@ -129,7 +128,7 @@ SetPortValue::apply(RunContext& context)
void
SetPortValue::post_process()
{
- Broadcaster::Transfer t(*_engine.broadcaster());
+ const Broadcaster::Transfer t{*_engine.broadcaster()};
if (respond() == Status::SUCCESS && !_activity) {
_engine.broadcaster()->set_property(
_port->uri(),
@@ -138,6 +137,4 @@ SetPortValue::post_process()
}
}
-} // namespace events
-} // namespace server
-} // namespace ingen
+} // namespace ingen::server::events