summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSampo Savolainen <v2@iki.fi>2006-10-09 18:08:08 +0000
committerSampo Savolainen <v2@iki.fi>2006-10-09 18:08:08 +0000
commitaf757a1b6abaea867445ba8783676d71c30d47a1 (patch)
treeb74463b824d00d11bea0beb79c2ed6a5492f0444
parent048526fde8a69e90dfe50b3116adfcd02678bace (diff)
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
-rw-r--r--gtk2_ardour/editor_tempodisplay.cc2
-rw-r--r--libs/ardour/audioengine.cc4
-rw-r--r--libs/ardour/session.cc4
3 files changed, 10 insertions, 0 deletions
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<string,string> 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> 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 */