summaryrefslogtreecommitdiffstats
path: root/src/server/mix.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2015-10-24 19:27:39 +0000
committerDavid Robillard <d@drobilla.net>2015-10-24 19:27:39 +0000
commit732bfb33105b4a534bc17caae9a50a1ccfcd7570 (patch)
treebad9715a99f11d17342adaef372361c3697beee9 /src/server/mix.cpp
parentade7143eb2af64fd6743a64ebf1786dd5bbe1092 (diff)
downloadingen-732bfb33105b4a534bc17caae9a50a1ccfcd7570.tar.gz
ingen-732bfb33105b4a534bc17caae9a50a1ccfcd7570.tar.bz2
ingen-732bfb33105b4a534bc17caae9a50a1ccfcd7570.zip
Zero-copy to/from driver ports where possible
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@5778 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/mix.cpp')
-rw-r--r--src/server/mix.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/server/mix.cpp b/src/server/mix.cpp
index d7bf2229..6fa8626c 100644
--- a/src/server/mix.cpp
+++ b/src/server/mix.cpp
@@ -26,9 +26,10 @@ namespace Server {
static inline bool
is_end(const Buffer* buf, const LV2_Atom_Event* ev)
{
+ const LV2_Atom* atom = buf->get<const LV2_Atom>();
return lv2_atom_sequence_is_end(
- (const LV2_Atom_Sequence_Body*)LV2_ATOM_BODY_CONST(buf->atom()),
- buf->atom()->size,
+ (const LV2_Atom_Sequence_Body*)LV2_ATOM_BODY_CONST(atom),
+ atom->size,
ev);
}
@@ -72,9 +73,8 @@ mix(const Context& context,
for (uint32_t i = 0; i < num_srcs; ++i) {
iters[i] = NULL;
if (srcs[i]->is_sequence()) {
- iters[i] = lv2_atom_sequence_begin(
- (const LV2_Atom_Sequence_Body*)LV2_ATOM_BODY_CONST(
- srcs[i]->atom()));
+ const LV2_Atom_Sequence* seq = srcs[i]->get<const LV2_Atom_Sequence>();
+ iters[i] = lv2_atom_sequence_begin(&seq->body);
if (is_end(srcs[i], iters[i])) {
iters[i] = NULL;
}