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
This commit is contained in:
@@ -1512,6 +1512,14 @@ RCOptionEditor::RCOptionEditor ()
|
||||
|
||||
add_option (_("Audio"), oac);
|
||||
|
||||
add_option (_("Audio"),
|
||||
new BoolOption (
|
||||
"ignore-feedback-loops",
|
||||
_("Ignore Feedback Loops"),
|
||||
sigc::mem_fun (*_rc_config, &RCConfiguration::get_ignore_feedback_loops),
|
||||
sigc::mem_fun (*_rc_config, &RCConfiguration::set_ignore_feedback_loops)
|
||||
));
|
||||
|
||||
add_option (_("Audio"), new OptionEditorHeading (_("Denormals")));
|
||||
|
||||
add_option (_("Audio"),
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user