From 3e36dc77467139f530f15fcbf42a1d5c6960502f Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 3 Nov 2011 03:04:51 +0000 Subject: [PATCH] Don't offer inputs to things as possible output connections, and vice versa (part of #4432). git-svn-id: svn://localhost/ardour2/branches/3.0@10410 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/mixer_strip.cc | 4 ++-- libs/ardour/ardour/bundle.h | 2 ++ libs/ardour/bundle.cc | 6 ++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 46f084efab..70c8a7ae8e 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -884,7 +884,7 @@ MixerStrip::maybe_add_bundle_to_input_menu (boost::shared_ptr b, ARDOUR: { using namespace Menu_Helpers; - if (b->ports_are_outputs() == false || b->nchannels() != _route->n_inputs()) { + if (b->ports_are_outputs() == false || b->nchannels() != _route->n_inputs() || *b == *_route->output()->bundle()) { return; } @@ -918,7 +918,7 @@ MixerStrip::maybe_add_bundle_to_output_menu (boost::shared_ptr b, ARDOUR { using namespace Menu_Helpers; - if (b->ports_are_inputs() == false || b->nchannels() != _route->n_outputs()) { + if (b->ports_are_inputs() == false || b->nchannels() != _route->n_outputs() || *b == *_route->input()->bundle()) { return; } diff --git a/libs/ardour/ardour/bundle.h b/libs/ardour/ardour/bundle.h index e3d56f22f5..6b8586a46a 100644 --- a/libs/ardour/ardour/bundle.h +++ b/libs/ardour/ardour/bundle.h @@ -114,6 +114,8 @@ class Bundle : public PBD::ScopedConnectionList void suspend_signals (); void resume_signals (); + bool operator== (Bundle const & other); + /** Things that might change about this bundle */ enum Change { NameChanged = 0x1, ///< the bundle name or a channel name has changed diff --git a/libs/ardour/bundle.cc b/libs/ardour/bundle.cc index 1948024d91..d8666c5bbb 100644 --- a/libs/ardour/bundle.cc +++ b/libs/ardour/bundle.cc @@ -511,3 +511,9 @@ operator<< (ostream& os, Bundle const & b) return os; } + +bool +Bundle::operator== (Bundle const & other) +{ + return _channel == other._channel; +} -- 2.30.2