diff options
author | David Robillard <d@drobilla.net> | 2012-08-20 23:11:39 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-08-20 23:11:39 +0000 |
commit | 08b62fe47b81117c17cbd7b08210b0a91d104126 (patch) | |
tree | 2d21c4f250a6c160686a9ea4fa47ac1132391905 /src/server/mix.cpp | |
parent | e7e8876464377e3c222e15783c39af7e411a44a3 (diff) | |
download | ingen-08b62fe47b81117c17cbd7b08210b0a91d104126.tar.gz ingen-08b62fe47b81117c17cbd7b08210b0a91d104126.tar.bz2 ingen-08b62fe47b81117c17cbd7b08210b0a91d104126.zip |
Replace several assertions with graceful error handling.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4731 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/mix.cpp')
-rw-r--r-- | src/server/mix.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/server/mix.cpp b/src/server/mix.cpp index c4fbbed5..7ca36557 100644 --- a/src/server/mix.cpp +++ b/src/server/mix.cpp @@ -59,22 +59,23 @@ mix(const Context& context, for (SampleCount i = 0; i < end; ++i) { out[i] += in[0]; } - } else { // audio => audio - assert(srcs[i]->is_audio()); + } else if (srcs[i]->is_audio()) { // audio => audio for (SampleCount i = 0; i < end; ++i) { out[i] += in[i]; } } } - } else { - assert(dst->is_sequence()); + } else if (dst->is_sequence()) { LV2_Atom_Event* iters[num_srcs]; for (uint32_t i = 0; i < num_srcs; ++i) { - assert(srcs[i]->is_sequence()); - iters[i] = lv2_atom_sequence_begin( - (const LV2_Atom_Sequence_Body*)LV2_ATOM_BODY_CONST(srcs[i]->atom())); - if (is_end(srcs[i], iters[i])) { - iters[i] = NULL; + 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())); + if (is_end(srcs[i], iters[i])) { + iters[i] = NULL; + } } } |