From af757a1b6abaea867445ba8783676d71c30d47a1 Mon Sep 17 00:00:00 2001 From: Sampo Savolainen Date: Mon, 9 Oct 2006 18:08:08 +0000 Subject: Give a different error message when AudioEngine::connect() tries to make an connection which already exists. Tempo bars will now stretch from top to bottom via a hackish but approved scheme. Disconnect route inputs and outputs when removing them from the session. git-svn-id: svn://localhost/ardour2/trunk@961 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor_tempodisplay.cc | 2 ++ libs/ardour/audioengine.cc | 4 ++++ libs/ardour/session.cc | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/gtk2_ardour/editor_tempodisplay.cc b/gtk2_ardour/editor_tempodisplay.cc index 270ea38b2e..177f82bd44 100644 --- a/gtk2_ardour/editor_tempodisplay.cc +++ b/gtk2_ardour/editor_tempodisplay.cc @@ -44,6 +44,7 @@ #include "rgb_macros.h" #include "gui_thread.h" #include "color.h" +#include "time_axis_view.h" #include "i18n.h" @@ -200,6 +201,7 @@ Editor::draw_measures () } track_canvas.get_scroll_region (x1, y1, x2, y2); + y2 = TimeAxisView::hLargest*5000; // five thousand largest tracks should be enough.. :) /* get the first bar spacing */ diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc index 1b4ca05d38..2268411aca 100644 --- a/libs/ardour/audioengine.cc +++ b/libs/ardour/audioengine.cc @@ -551,6 +551,10 @@ AudioEngine::connect (const string& source, const string& destination) if (ret == 0) { pair c (s, d); port_connections.push_back (c); + } else if (ret == EEXIST) { + error << string_compose(_("AudioEngine: connection already exists: %1 (%2) to %3 (%4)"), + source, s, destination, d) + << endmsg; } else { error << string_compose(_("AudioEngine: cannot connect %1 (%2) to %3 (%4)"), source, s, destination, d) diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 8474eab523..f7f5ef7e8d 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -1926,6 +1926,10 @@ Session::remove_route (shared_ptr route) update_latency_compensation (false, false); set_dirty(); + + // We need to disconnect the routes inputs and outputs + route->disconnect_inputs(NULL); + route->disconnect_outputs(NULL); /* get rid of it from the dead wood collection in the route list manager */ -- cgit v1.2.3