summaryrefslogtreecommitdiffstats
path: root/src/engine/events/SetPortValue.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-10-19 04:07:02 +0000
committerDavid Robillard <d@drobilla.net>2009-10-19 04:07:02 +0000
commita0108c19c4704316a02c85676af349acdda29d72 (patch)
treec971fe3fa385bd3abfb3d450f7f2b4e1a718ed60 /src/engine/events/SetPortValue.cpp
parent78ebb57ba3268da3560aa596dfe14c515f617890 (diff)
downloadingen-a0108c19c4704316a02c85676af349acdda29d72.tar.gz
ingen-a0108c19c4704316a02c85676af349acdda29d72.tar.bz2
ingen-a0108c19c4704316a02c85676af349acdda29d72.zip
Fix set/PUT with multiple properties of the same predicate.
Actually set port value when PUT of ingen:value occurs (fix ticket #410). git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2198 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/events/SetPortValue.cpp')
-rw-r--r--src/engine/events/SetPortValue.cpp34
1 files changed, 25 insertions, 9 deletions
diff --git a/src/engine/events/SetPortValue.cpp b/src/engine/events/SetPortValue.cpp
index ba906705..eacf172b 100644
--- a/src/engine/events/SetPortValue.cpp
+++ b/src/engine/events/SetPortValue.cpp
@@ -20,17 +20,17 @@
#include "shared/LV2URIMap.hpp"
#include "shared/LV2Features.hpp"
#include "module/World.hpp"
-#include "Responder.hpp"
-#include "SetPortValue.hpp"
-#include "Engine.hpp"
-#include "PortImpl.hpp"
+#include "AudioBuffer.hpp"
#include "ClientBroadcaster.hpp"
-#include "NodeImpl.hpp"
+#include "Engine.hpp"
#include "EngineStore.hpp"
-#include "AudioBuffer.hpp"
#include "EventBuffer.hpp"
-#include "ProcessContext.hpp"
#include "MessageContext.hpp"
+#include "NodeImpl.hpp"
+#include "PortImpl.hpp"
+#include "ProcessContext.hpp"
+#include "Responder.hpp"
+#include "SetPortValue.hpp"
using namespace std;
using namespace Raul;
@@ -53,7 +53,7 @@ SetPortValue::SetPortValue(Engine& engine,
, _omni(true)
, _voice_num(0)
, _port_path(port_path)
- , _value(value)
+ , _value(value)
, _port(NULL)
, _error(NO_ERROR)
{
@@ -73,12 +73,28 @@ SetPortValue::SetPortValue(Engine& engine,
, _omni(false)
, _voice_num(voice_num)
, _port_path(port_path)
- , _value(value)
+ , _value(value)
, _port(NULL)
, _error(NO_ERROR)
{
}
+/** Internal */
+SetPortValue::SetPortValue(Engine& engine,
+ SharedPtr<Responder> responder,
+ SampleCount timestamp,
+ PortImpl* port,
+ const Raul::Atom& value)
+ : QueuedEvent(engine, responder, timestamp)
+ , _queued(false)
+ , _omni(true)
+ , _voice_num(0)
+ , _port_path(port->path())
+ , _value(value)
+ , _port(port)
+ , _error(NO_ERROR)
+{
+}
SetPortValue::~SetPortValue()
{