From a6f6a3909cbdefd8ad108b22e726d46fddcb0fcf Mon Sep 17 00:00:00 2001 From: Doug McLain Date: Tue, 10 Jun 2008 03:04:51 +0000 Subject: The real fix for 3450 git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3451 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/route.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'libs') diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index b4e963ebdc..1b57962bde 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -1133,7 +1133,7 @@ Route::_reset_plugin_counts (uint32_t* err_streams) uint32_t send_cnt = 0; map > insert_map; RedirectList::iterator prev; - int32_t initial_streams; + int32_t initial_streams, previous_initial_streams = -1; int ret = -1; redirect_max_outs = 0; @@ -1193,10 +1193,13 @@ Route::_reset_plugin_counts (uint32_t* err_streams) /* figure out the streams that will feed into PreFader */ if (!insert_map[PreFader].empty()) { - InsertCount& ic (insert_map[PreFader].back()); - initial_streams = ic.insert->output_streams (); - } else { - initial_streams = n_inputs (); + previous_initial_streams = n_inputs (); + for (list::iterator i = insert_map[PreFader].begin(); i != insert_map[PreFader].end(); i++) { + if (i->insert->can_do (previous_initial_streams, initial_streams) < 0) { + goto streamcount; + } + previous_initial_streams = initial_streams; + } } /* B: PostFader */ -- cgit v1.2.3