summaryrefslogtreecommitdiffstats
path: root/src/server/mix.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-08-20 23:11:39 +0000
committerDavid Robillard <d@drobilla.net>2012-08-20 23:11:39 +0000
commit08b62fe47b81117c17cbd7b08210b0a91d104126 (patch)
tree2d21c4f250a6c160686a9ea4fa47ac1132391905 /src/server/mix.cpp
parente7e8876464377e3c222e15783c39af7e411a44a3 (diff)
downloadingen-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.cpp19
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;
+ }
}
}