summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-04-15 15:50:08 +0200
committerRobin Gareus <robin@gareus.org>2013-04-15 15:50:08 +0200
commite17f75b351356279778e4ea4adbb6c0d544ba755 (patch)
tree5834beaa16a462cd07724545afbd9a78b2d21f61 /libs
parent66ee2c8e597ca9a07d614cf56b4002e5303e3645 (diff)
option to ignore feedback detection - /i know what i'm doing/ mode.
This currently only has effect if the loop connection is made/unmade while the option was set/unset. Toggling the option itself won't trigger a graph re-order
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/rc_configuration_vars.h1
-rw-r--r--libs/ardour/session.cc5
2 files changed, 4 insertions, 2 deletions
diff --git a/libs/ardour/ardour/rc_configuration_vars.h b/libs/ardour/ardour/rc_configuration_vars.h
index f19f8fe808..5b094afefc 100644
--- a/libs/ardour/ardour/rc_configuration_vars.h
+++ b/libs/ardour/ardour/rc_configuration_vars.h
@@ -192,6 +192,7 @@ CONFIG_VARIABLE (bool, sound_midi_notes, "sound-midi-notes", false)
CONFIG_VARIABLE (bool, use_plugin_own_gui, "use-plugin-own-gui", true)
CONFIG_VARIABLE (uint32_t, max_recent_sessions, "max-recent-sessions", 10)
CONFIG_VARIABLE (double, automation_thinning_factor, "automation-thinning-factor", 20.0)
+CONFIG_VARIABLE (bool, ignore_feedback_loops, "ignore-feedback-loops", false)
/* denormal management */
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 6fe51961d2..394fa73079 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -1522,7 +1522,7 @@ Session::resort_routes_using (boost::shared_ptr<RouteList> r)
/* Attempt a topological sort of the route graph */
boost::shared_ptr<RouteList> sorted_routes = topological_sort (r, edges);
- if (sorted_routes) {
+ if (Config->get_ignore_feedback_loops() || sorted_routes) {
/* We got a satisfactory topological sort, so there is no feedback;
use this new graph.
@@ -1553,8 +1553,9 @@ Session::resort_routes_using (boost::shared_ptr<RouteList> r)
#endif
SuccessfulGraphSort (); /* EMIT SIGNAL */
+ }
- } else {
+ if (!sorted_routes) {
/* The topological sort failed, so we have a problem. Tell everyone
and stick to the old graph; this will continue to be processed, so
until the feedback is fixed, what is played back will not quite