diff options
author | David Robillard <d@drobilla.net> | 2009-11-16 00:30:35 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-11-16 00:30:35 +0000 |
commit | 3d89115a67a9c947a28539ffdd2399808a53279b (patch) | |
tree | 826b900de3979eed9c31aae0d3ac560d39b53460 /src/engine/events/SetPortValue.cpp | |
parent | 597fa9212f27d2448c0cdd20fbf616928c662cc1 (diff) | |
download | ingen-3d89115a67a9c947a28539ffdd2399808a53279b.tar.gz ingen-3d89115a67a9c947a28539ffdd2399808a53279b.tar.bz2 ingen-3d89115a67a9c947a28539ffdd2399808a53279b.zip |
Rework objects extension to have "value ports" and "message ports".
Make audio and control buffers in ingen actually object buffers (towards interop).
Overhaul the hell out of ingen buffer and mixing stuff.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2266 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/events/SetPortValue.cpp')
-rw-r--r-- | src/engine/events/SetPortValue.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/engine/events/SetPortValue.cpp b/src/engine/events/SetPortValue.cpp index 6b9d8d9e..2a33b798 100644 --- a/src/engine/events/SetPortValue.cpp +++ b/src/engine/events/SetPortValue.cpp @@ -151,7 +151,7 @@ SetPortValue::apply(Context& context) /*} else if (_port->buffer(0)->capacity() < _data_size) { _error = NO_SPACE;*/ } else { - Buffer* const buf = _port->buffer(0); + Buffer* const buf = _port->buffer(0).get(); AudioBuffer* const abuf = dynamic_cast<AudioBuffer*>(buf); if (abuf) { if (_value.type() != Atom::FLOAT) { @@ -160,12 +160,12 @@ SetPortValue::apply(Context& context) } if (_omni) { - for (uint32_t i=0; i < _port->poly(); ++i) - ((AudioBuffer*)_port->buffer(i))->set_value( + for (uint32_t v = 0; v < _port->poly(); ++v) + ((AudioBuffer*)_port->buffer(v).get())->set_value( _value.get_float(), start, _time); } else { if (_voice_num < _port->poly()) - ((AudioBuffer*)_port->buffer(_voice_num))->set_value( + ((AudioBuffer*)_port->buffer(_voice_num).get())->set_value( _value.get_float(), start, _time); else _error = ILLEGAL_VOICE; @@ -198,10 +198,10 @@ SetPortValue::apply(Context& context) ObjectBuffer* const obuf = dynamic_cast<ObjectBuffer*>(buf); if (obuf) { - obuf->data()->size = obuf->size() - sizeof(LV2_Object); - if (LV2Object::from_atom(_engine.world(), _value, obuf->data())) { - cout << "Converted atom " << _value << " :: " << obuf->data()->type - << " * " << obuf->data()->size << " @ " << obuf->data() << endl; + obuf->object()->size = obuf->size() - sizeof(LV2_Object); + if (LV2Object::from_atom(_engine.world(), _value, obuf->object())) { + cout << "Converted atom " << _value << " :: " << obuf->object()->type + << " * " << obuf->object()->size << " @ " << obuf->object() << endl; return; } else { cerr << "WARNING: Failed to convert atom to LV2 object" << endl; |