summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorDoug McLain <doug@nostar.net>2008-06-10 03:36:29 +0000
committerDoug McLain <doug@nostar.net>2008-06-10 03:36:29 +0000
commit8d5e5ecd169f0c418f58d6399fe23f8006eb5763 (patch)
treee2fa926d832cac5e9190cb1f76a273d7398a8112 /libs/ardour/route.cc
parenta6f6a3909cbdefd8ad108b22e726d46fddcb0fcf (diff)
Apply the fix for post fader redirects
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3452 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 1b57962bde..7b645b5d49 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -1133,7 +1133,8 @@ Route::_reset_plugin_counts (uint32_t* err_streams)
uint32_t send_cnt = 0;
map<Placement,list<InsertCount> > insert_map;
RedirectList::iterator prev;
- int32_t initial_streams, previous_initial_streams = -1;
+ int32_t initial_streams = n_inputs ();;
+ int32_t previous_initial_streams = n_inputs ();
int ret = -1;
redirect_max_outs = 0;
@@ -1209,6 +1210,15 @@ Route::_reset_plugin_counts (uint32_t* err_streams)
goto streamcount;
}
+ if (!insert_map[PostFader].empty()) {
+ for (list<InsertCount>::iterator i = insert_map[PostFader].begin(); i != insert_map[PostFader].end(); i++) {
+ if (i->insert->can_do (previous_initial_streams, initial_streams) < 0) {
+ goto streamcount;
+ }
+ previous_initial_streams = initial_streams;
+ }
+ }
+
/* OK, everything can be set up correctly, so lets do it */
apply_some_plugin_counts (insert_map[PreFader]);