diff options
author | David Robillard <d@drobilla.net> | 2007-10-13 07:42:15 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-10-13 07:42:15 +0000 |
commit | 7ca2e0c1a67c12954e04d2175cbb488efc426a85 (patch) | |
tree | 9626f6cda1d9001063dfe19fccd301fafe61b821 /src/libs/engine | |
parent | 84e2c5cbda9e6e01aba73b36cf8d4136b56eeef0 (diff) | |
download | ingen-7ca2e0c1a67c12954e04d2175cbb488efc426a85.tar.gz ingen-7ca2e0c1a67c12954e04d2175cbb488efc426a85.tar.bz2 ingen-7ca2e0c1a67c12954e04d2175cbb488efc426a85.zip |
Fix audio->control connections.
git-svn-id: http://svn.drobilla.net/lad/ingen@879 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine')
-rw-r--r-- | src/libs/engine/ConnectionImpl.cpp | 4 | ||||
-rw-r--r-- | src/libs/engine/events/ConnectionEvent.cpp | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/libs/engine/ConnectionImpl.cpp b/src/libs/engine/ConnectionImpl.cpp index 019a051e..57d5e1ad 100644 --- a/src/libs/engine/ConnectionImpl.cpp +++ b/src/libs/engine/ConnectionImpl.cpp @@ -49,7 +49,9 @@ ConnectionImpl::ConnectionImpl(PortImpl* src_port, PortImpl* dst_port) assert(dst_port); assert(src_port != dst_port); assert(src_port->path() != dst_port->path()); - assert(src_port->type() == dst_port->type()); + assert(src_port->type() == dst_port->type() + || ( (src_port->type() == DataType::CONTROL || src_port->type() == DataType::AUDIO) + && (dst_port->type() == DataType::CONTROL || dst_port->type() == DataType::AUDIO) )); /*assert((src_port->parent_node()->poly() == dst_port->parent_node()->poly()) || (src_port->parent_node()->poly() == 1 || dst_port->parent_node()->poly() == 1));*/ diff --git a/src/libs/engine/events/ConnectionEvent.cpp b/src/libs/engine/events/ConnectionEvent.cpp index ee2c1694..fa8b0f17 100644 --- a/src/libs/engine/events/ConnectionEvent.cpp +++ b/src/libs/engine/events/ConnectionEvent.cpp @@ -69,7 +69,9 @@ ConnectionEvent::pre_process() return; } - if (_src_port->type() != _dst_port->type()) { + if (_src_port->type() != _dst_port->type() + && !( (_src_port->type() != DataType::AUDIO || _src_port->type() != DataType::CONTROL) + && (_dst_port->type() != DataType::AUDIO || _dst_port->type() != DataType::CONTROL) )) { _error = TYPE_MISMATCH; QueuedEvent::pre_process(); return; |