diff options
author | David Robillard <d@drobilla.net> | 2012-03-11 05:22:08 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-03-11 05:22:08 +0000 |
commit | 4c299323440923891b9c583a354116000eb143cc (patch) | |
tree | f2873fdd9849561608b7eebbfad89c04d56ba58e /src/server/ObjectBuffer.cpp | |
parent | c2ea4e3c59ce8c06066780d67237fdb07255c89e (diff) | |
download | ingen-4c299323440923891b9c583a354116000eb143cc.tar.gz ingen-4c299323440923891b9c583a354116000eb143cc.tar.bz2 ingen-4c299323440923891b9c583a354116000eb143cc.zip |
Implement cv:CVPort (fix #790). Not well-tested, but at least works somewhat.
Use new style LV2 URI defines (and fix invalid atom URIs).
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4050 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/ObjectBuffer.cpp')
-rw-r--r-- | src/server/ObjectBuffer.cpp | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/src/server/ObjectBuffer.cpp b/src/server/ObjectBuffer.cpp index b5a96dbd..407333d3 100644 --- a/src/server/ObjectBuffer.cpp +++ b/src/server/ObjectBuffer.cpp @@ -99,15 +99,17 @@ ObjectBuffer::port_data(PortType port_type, SampleCount offset) { switch (port_type.symbol()) { case PortType::CONTROL: + case PortType::CV: case PortType::AUDIO: switch (_type.symbol()) { - case PortType::CONTROL: - return (float*)LV2_ATOM_BODY(atom()); - case PortType::AUDIO: - return (float*)LV2_ATOM_CONTENTS(LV2_Atom_Vector, atom()) + offset; - default: - warn << "Audio data requested from non-audio buffer" << endl; - return NULL; + case PortType::CONTROL: + return (float*)LV2_ATOM_BODY(atom()); + case PortType::CV: + case PortType::AUDIO: + return (float*)LV2_ATOM_CONTENTS(LV2_Atom_Vector, atom()) + offset; + default: + warn << "Audio data requested from non-audio buffer" << endl; + return NULL; } break; default: @@ -120,15 +122,17 @@ ObjectBuffer::port_data(PortType port_type, SampleCount offset) const { switch (port_type.symbol()) { case PortType::CONTROL: + case PortType::CV: case PortType::AUDIO: switch (_type.symbol()) { - case PortType::CONTROL: - return (float*)LV2_ATOM_BODY(atom()); - case PortType::AUDIO: - return (float*)LV2_ATOM_CONTENTS(LV2_Atom_Vector, atom()) + offset; - default: - warn << "Audio data requested from non-audio buffer" << endl; - return NULL; + case PortType::CONTROL: + return (float*)LV2_ATOM_BODY(atom()); + case PortType::CV: + case PortType::AUDIO: + return (float*)LV2_ATOM_CONTENTS(LV2_Atom_Vector, atom()) + offset; + default: + warn << "Audio data requested from non-audio buffer" << endl; + return NULL; } break; default: |