From 1b0b7849eea034f8809dea31419159724386c2db Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 2 Feb 2011 02:06:30 +0000 Subject: [PATCH] Remove per-track mono option, as it seems somewhat useless now that we have a mix mono button in the monitor section. git-svn-id: svn://localhost/ardour2/branches/3.0@8675 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/mixer_strip.cc | 8 -------- gtk2_ardour/mixer_strip.h | 2 -- gtk2_ardour/panner_ui.cc | 9 +-------- gtk2_ardour/panner_ui.h | 1 - libs/ardour/ardour/panner.h | 9 ++------- libs/ardour/panner.cc | 35 ++--------------------------------- 6 files changed, 5 insertions(+), 59 deletions(-) diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index b5597da664..4bd50e9d37 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -1358,8 +1358,6 @@ MixerStrip::build_route_ops_menu () MenuList& items = route_ops_menu->items(); - items.push_back (CheckMenuElem (_("Mono"), sigc::mem_fun (*this, &MixerStrip::toggle_mono))); - _mono_menu_item = dynamic_cast (&items.back ()); items.push_back (CheckMenuElem (_("Comments..."), sigc::mem_fun (*this, &MixerStrip::toggle_comment))); _comment_menu_item = dynamic_cast (&items.back ()); items.push_back (MenuElem (_("Save As Template..."), sigc::mem_fun(*this, &RouteUI::save_as_template))); @@ -1893,12 +1891,6 @@ MixerStrip::on_leave_notify_event (GdkEventCrossing* ev) return false; } -void -MixerStrip::toggle_mono () -{ - panners.set_mono (_mono_menu_item->get_active ()); -} - PluginSelector* MixerStrip::plugin_selector() { diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index 45e0fce52d..f6d5f0cec0 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -191,7 +191,6 @@ class MixerStrip : public RouteUI, public Gtk::EventBox void comment_editor_done_editing (); void setup_comment_editor (); void toggle_comment (); - void toggle_mono (); Gtk::Button group_button; Gtk::Label group_label; @@ -217,7 +216,6 @@ class MixerStrip : public RouteUI, public Gtk::EventBox void diskstream_changed (); Gtk::Menu *send_action_menu; - Gtk::CheckMenuItem* _mono_menu_item; Gtk::CheckMenuItem* _comment_menu_item; Gtk::MenuItem* rename_menu_item; void build_send_action_menu (); diff --git a/gtk2_ardour/panner_ui.cc b/gtk2_ardour/panner_ui.cc index 79a7259b32..af207c20c1 100644 --- a/gtk2_ardour/panner_ui.cc +++ b/gtk2_ardour/panner_ui.cc @@ -424,7 +424,7 @@ PannerUI::effective_pan_display () void PannerUI::update_pan_sensitive () { - bool const sensitive = !(_panner->is_mono()) && !(_panner->pannable()->automation_state() & Play); + bool const sensitive = !(_panner->pannable()->automation_state() & Play); #ifdef PANNER_HACKS pan_vbox.set_sensitive (sensitive); @@ -584,13 +584,6 @@ PannerUI::_astyle_string (AutoStyle style, bool shrt) } } -void -PannerUI::set_mono (bool yn) -{ - _panner->set_mono (yn); - update_pan_sensitive (); -} - void PannerUI::show_width () { diff --git a/gtk2_ardour/panner_ui.h b/gtk2_ardour/panner_ui.h index e64419b457..3d714d9253 100644 --- a/gtk2_ardour/panner_ui.h +++ b/gtk2_ardour/panner_ui.h @@ -79,7 +79,6 @@ class PannerUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr void set_meter_strip_name (std::string name); boost::shared_ptr get_controllable(); - void set_mono (bool); void on_size_allocate (Gtk::Allocation &); static void setup_slider_pix (); diff --git a/libs/ardour/ardour/panner.h b/libs/ardour/ardour/panner.h index b989dca41d..5e0ed991d6 100644 --- a/libs/ardour/ardour/panner.h +++ b/libs/ardour/ardour/panner.h @@ -83,9 +83,6 @@ class Panner : public PBD::Stateful, public PBD::ScopedConnectionList virtual bool bypassed() const { return _bypassed; } virtual void set_bypassed (bool yn); - virtual bool is_mono () const { return _mono; } - virtual void set_mono (bool); - void set_automation_state (AutoState); AutoState automation_state() const; void set_automation_style (AutoStyle); @@ -128,8 +125,7 @@ class Panner : public PBD::Stateful, public PBD::ScopedConnectionList * @param nframes Number of frames in the input. * * Derived panners can choose to implement these if they need to gain more control over the panning algorithm. - * the default is to (1) check if _mono is true, and if so, just deliver .. (2) otherwise, call - * distribute_one() or distribute_one_automated() on each input buffer to deliver it to each output + * the default is to call distribute_one() or distribute_one_automated() on each input buffer to deliver it to each output * buffer. * * If a panner does not need to override this default behaviour, it can just implement @@ -141,7 +137,7 @@ class Panner : public PBD::Stateful, public PBD::ScopedConnectionList pan_t** buffers); PBD::Signal0 Changed; /* for positional info */ - PBD::Signal0 StateChanged; /* for mute, mono */ + PBD::Signal0 StateChanged; /* for mute */ int set_state (const XMLNode&, int version); virtual XMLNode& state (bool full_state) = 0; @@ -162,7 +158,6 @@ class Panner : public PBD::Stateful, public PBD::ScopedConnectionList protected: boost::shared_ptr _pannable; - bool _mono; bool _bypassed; XMLNode& get_state (); diff --git a/libs/ardour/panner.cc b/libs/ardour/panner.cc index 1cb5e310aa..c94f668c85 100644 --- a/libs/ardour/panner.cc +++ b/libs/ardour/panner.cc @@ -29,7 +29,6 @@ using namespace ARDOUR; Panner::Panner (boost::shared_ptr p) : _pannable (p) - , _mono (0) { } @@ -46,25 +45,12 @@ Panner::set_bypassed (bool yn) } } -void -Panner::set_mono (bool yn) -{ - if (yn != _mono) { - _mono = yn; - StateChanged (); - } -} - int Panner::set_state (const XMLNode& node, int version) { const XMLProperty* prop; XMLNodeConstIterator iter; - if ((prop = node.property (X_("mono")))) { - set_mono (string_is_affirmative (prop->value())); - } - if ((prop = node.property (X_("bypassed"))) != 0) { set_bypassed (string_is_affirmative (prop->value())); } @@ -77,7 +63,6 @@ Panner::get_state () { XMLNode* node = new XMLNode (X_("Panner")); - node->add_property (X_("mono"), (_mono ? "yes" : "no")); node->add_property (X_("bypassed"), (bypassed() ? "yes" : "no")); return *node; @@ -89,15 +74,7 @@ Panner::distribute (BufferSet& ibufs, BufferSet& obufs, gain_t gain_coeff, pfram uint32_t which = 0; for (BufferSet::audio_iterator src = ibufs.audio_begin(); src != ibufs.audio_end(); ++src, ++which) { - if (_mono) { - /* we're in mono mode, so just pan the input to all outputs equally (XXX should we scale?) */ - for (BufferSet::audio_iterator o = obufs.audio_begin(); o != obufs.audio_end(); ++o) { - mix_buffers_with_gain ((*o).data(), (*src).data(), nframes, gain_coeff); - } - } else { - /* normal mode, call the `real' distribute method */ - distribute_one (*src, obufs, gain_coeff, nframes, which); - } + distribute_one (*src, obufs, gain_coeff, nframes, which); } } @@ -108,15 +85,7 @@ Panner::distribute_automated (BufferSet& ibufs, BufferSet& obufs, uint32_t which = 0; for (BufferSet::audio_iterator src = ibufs.audio_begin(); src != ibufs.audio_end(); ++src, ++which) { - if (_mono) { - /* we're in mono mode, so just pan the input to all outputs equally (XXX should we scale?) */ - for (BufferSet::audio_iterator o = obufs.audio_begin(); o != obufs.audio_end(); ++o) { - mix_buffers_with_gain ((*o).data(), (*src).data(), nframes, 1.0); - } - } else { - /* normal mode, call the `real' distribute method */ - distribute_one_automated (*src, obufs, start, end, nframes, buffers, which); - } + distribute_one_automated (*src, obufs, start, end, nframes, buffers, which); } }