diff options
-rw-r--r-- | gtk2_ardour/gain_meter.cc | 8 | ||||
-rw-r--r-- | gtk2_ardour/mixer_strip.cc | 25 | ||||
-rw-r--r-- | gtk2_ardour/mixer_strip.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/route_time_axis.cc | 35 | ||||
-rw-r--r-- | gtk2_ardour/route_time_axis.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.cc | 34 | ||||
-rw-r--r-- | gtk2_ardour/route_ui.h | 15 | ||||
-rw-r--r-- | libs/ardour/amp.cc | 19 | ||||
-rw-r--r-- | libs/ardour/port.cc | 13 | ||||
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/bindable_button.h | 1 |
10 files changed, 86 insertions, 66 deletions
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index b375a9c0a1..82e829c6f3 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -371,12 +371,12 @@ GainMeterBase::show_gain () void GainMeterBase::gain_adjusted () { - //cerr << this << " for " << _io->name() << " GAIN ADJUSTED\n"; if (!ignore_toggle) { - //cerr << "Set GC\n"; - _gain_control->set_value (slider_position_to_gain (gain_adjustment.get_value())); - //cerr << "Set GC OUT\n"; + if (_route) { + _route->set_gain (slider_position_to_gain (gain_adjustment.get_value()), this); + } } + show_gain (); } diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 6ba9c655d8..1b1e28cda9 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -75,7 +75,7 @@ int MixerStrip::scrollbar_height = 0; MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, bool in_mixer) : AxisView(sess) - , RouteUI (sess, _("Mute"), _("Solo"), _("Record")) + , RouteUI (sess) ,_mixer(mx) , _mixer_owned (in_mixer) , pre_processor_box (PreFader, sess, mx.plugin_selector(), mx.selection(), this, in_mixer) @@ -102,7 +102,7 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, bool in_mixer) MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, boost::shared_ptr<Route> rt, bool in_mixer) : AxisView(sess) - , RouteUI (sess, _("Mute"), _("Solo"), _("Record")) + , RouteUI (sess) ,_mixer(mx) , _mixer_owned (in_mixer) , pre_processor_box (PreFader, sess, mx.plugin_selector(), mx.selection(), this, in_mixer) @@ -117,6 +117,7 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, boost::shared_ptr<Route> rt { init (); + set_button_names (); set_route (rt); } @@ -1489,6 +1490,25 @@ MixerStrip::revert_to_default_display () } void +MixerStrip::set_button_names () +{ + rec_enable_button_label.set_text (_("Rec")); + mute_button_label.set_text (_("Mute")); + + switch (Config->get_solo_model()) { + case SoloInPlace: + solo_button_label.set_text (_("Solo")); + break; + case SoloAFL: + solo_button_label.set_text (_("AFL")); + break; + case SoloPFL: + solo_button_label.set_text (_("PFL")); + break; + } +} + +void MixerStrip::set_route_group_to_new () { RouteGroup* g = new RouteGroup (_session, "", RouteGroup::Active); @@ -1504,3 +1524,4 @@ MixerStrip::set_route_group_to_new () delete g; } } + diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index ca9f1f844f..6b7ffb44ce 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -96,6 +96,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox ARDOUR::RouteGroup* route_group() const; void set_route (boost::shared_ptr<ARDOUR::Route>); + void set_button_names (); #ifdef GTKOSX sigc::signal<void> WidthChanged; diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index f5e278c594..fd1246bdf5 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -100,18 +100,20 @@ RouteTimeAxisView::setup_slider_pix () } RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session& sess, boost::shared_ptr<Route> rt, Canvas& canvas) - : AxisView(sess), - RouteUI(rt, sess, _("m"), _("s"), _("r")), // mute, solo, and record - TimeAxisView(sess,ed,(TimeAxisView*) 0, canvas), - parent_canvas (canvas), - button_table (3, 3), - route_group_button (_("g")), // group - playlist_button (_("p")), - size_button (_("h")), // height - automation_button (_("a")), - visual_button (_("v")), - gm (sess, slider, true) -{ + : AxisView(sess) + , RouteUI(rt, sess) + , TimeAxisView(sess,ed,(TimeAxisView*) 0, canvas) + , parent_canvas (canvas) + , button_table (3, 3) + , route_group_button (_("g")) + , playlist_button (_("p")) + , size_button (_("h")) + , automation_button (_("a")) + , visual_button (_("v")) + , gm (sess, slider, true) +{ + set_button_names (); + gm.set_controls (_route, _route->shared_peak_meter(), _route->gain_control(), _route->amp()); gm.get_level_meter().set_no_show_all(); gm.get_level_meter().setup_meters(50); @@ -2408,6 +2410,14 @@ RouteTimeAxisView::remove_underlay(StreamView* v) } void +RouteTimeAxisView::set_button_names () +{ + rec_enable_button_label.set_text (_("r")); + solo_button_label.set_text (_("s")); + mute_button_label.set_text (_("m")); +} + +void RouteTimeAxisView::set_route_group_to_new () { RouteGroup* g = new RouteGroup (_session, "", RouteGroup::Active); @@ -2422,3 +2432,4 @@ RouteTimeAxisView::set_route_group_to_new () delete g; } } + diff --git a/gtk2_ardour/route_time_axis.h b/gtk2_ardour/route_time_axis.h index 18733f1e74..34896e4639 100644 --- a/gtk2_ardour/route_time_axis.h +++ b/gtk2_ardour/route_time_axis.h @@ -75,6 +75,7 @@ public: virtual ~RouteTimeAxisView (); void show_selection (TimeSelection&); + void set_button_names (); void set_samples_per_unit (double); void set_height (uint32_t h); diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index 34514d9040..ee7f1102b5 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -62,19 +62,16 @@ using namespace Gtkmm2ext; using namespace ARDOUR; using namespace PBD; -RouteUI::RouteUI (ARDOUR::Session& sess, const char* mute_name, const char* solo_name, const char* rec_name) +RouteUI::RouteUI (ARDOUR::Session& sess) : AxisView(sess) { init (); - set_button_names (mute_name, solo_name, rec_name); } -RouteUI::RouteUI (boost::shared_ptr<ARDOUR::Route> rt, - ARDOUR::Session& sess, const char* mute_name, const char* solo_name, const char* rec_name) +RouteUI::RouteUI (boost::shared_ptr<ARDOUR::Route> rt, ARDOUR::Session& sess) : AxisView(sess) { init (); - set_button_names (mute_name, solo_name, rec_name); set_route (rt); } @@ -107,20 +104,26 @@ RouteUI::init () multiple_mute_change = false; multiple_solo_change = false; - mute_button = manage (new BindableToggleButton ("")); + mute_button = manage (new BindableToggleButton ()); mute_button->set_self_managed (true); mute_button->set_name ("MuteButton"); + mute_button->add (mute_button_label); + mute_button_label.show (); UI::instance()->set_tip (mute_button, _("Mute this track"), ""); - solo_button = manage (new BindableToggleButton ("")); + solo_button = manage (new BindableToggleButton ()); solo_button->set_self_managed (true); solo_button->set_name ("SoloButton"); + solo_button->add (solo_button_label); + solo_button_label.show (); UI::instance()->set_tip (solo_button, _("Mute other (non-soloed) tracks"), ""); solo_button->set_no_show_all (true); - rec_enable_button = manage (new BindableToggleButton ("")); + rec_enable_button = manage (new BindableToggleButton ()); rec_enable_button->set_name ("RecordEnableButton"); rec_enable_button->set_self_managed (true); + rec_enable_button->add (rec_enable_button_label); + rec_enable_button_label.show (); UI::instance()->set_tip (rec_enable_button, _("Enable recording on this track"), ""); show_sends_button = manage (new BindableToggleButton ("")); @@ -161,14 +164,6 @@ RouteUI::reset () } void -RouteUI::set_button_names (const char* mute, const char* solo, const char* rec) -{ - m_name = mute; - s_name = solo; - r_name = rec; -} - -void RouteUI::set_route (boost::shared_ptr<Route> rp) { reset (); @@ -188,10 +183,7 @@ RouteUI::set_route (boost::shared_ptr<Route> rp) } mute_button->set_controllable (_route->mute_control()); - mute_button->set_label (m_name); - solo_button->set_controllable (_route->solo_control()); - solo_button->set_label (s_name); connections.push_back (_route->active_changed.connect (mem_fun (*this, &RouteUI::route_active_changed))); connections.push_back (_route->mute_changed.connect (mem_fun(*this, &RouteUI::mute_changed))); @@ -207,7 +199,6 @@ RouteUI::set_route (boost::shared_ptr<Route> rp) rec_enable_button->show(); rec_enable_button->set_controllable (t->rec_enable_control()); - rec_enable_button->set_label (r_name); update_rec_display (); } @@ -1384,5 +1375,8 @@ RouteUI::parameter_changed (string const & p) if (p == "disable-disarm-during-roll") { check_rec_enable_sensitivity (); + } else if (p == "solo-model") { + set_button_names (); } } + diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h index 5107b6ccda..05eabab1f7 100644 --- a/gtk2_ardour/route_ui.h +++ b/gtk2_ardour/route_ui.h @@ -46,13 +46,13 @@ class BindableToggleButton; class RouteUI : public virtual AxisView { public: - RouteUI(ARDOUR::Session&, const char*, const char*, const char*); - RouteUI(boost::shared_ptr<ARDOUR::Route>, ARDOUR::Session&, const char*, const char*, const char*); + RouteUI(ARDOUR::Session&); + RouteUI(boost::shared_ptr<ARDOUR::Route>, ARDOUR::Session&); virtual ~RouteUI(); virtual void set_route (boost::shared_ptr<ARDOUR::Route>); - void set_button_names (const char*, const char*, const char*); + virtual void set_button_names () = 0; bool is_track() const; bool is_audio_track() const; @@ -85,6 +85,10 @@ class RouteUI : public virtual AxisView BindableToggleButton* rec_enable_button; /* audio tracks */ BindableToggleButton* show_sends_button; /* busses */ + Gtk::Label solo_button_label; + Gtk::Label mute_button_label; + Gtk::Label rec_enable_button_label; + void send_blink (bool); sigc::connection send_blink_connection; @@ -184,10 +188,6 @@ class RouteUI : public virtual AxisView protected: std::vector<sigc::connection> connections; - std::string s_name; - std::string m_name; - std::string r_name; - bool self_destruct; void init (); @@ -196,6 +196,7 @@ class RouteUI : public virtual AxisView private: void check_rec_enable_sensitivity (); void parameter_changed (std::string const &); + void relabel_solo_button (); }; #endif /* __ardour_route_ui__ */ diff --git a/libs/ardour/amp.cc b/libs/ardour/amp.cc index 154d909560..28edaf43a0 100644 --- a/libs/ardour/amp.cc +++ b/libs/ardour/amp.cc @@ -240,28 +240,13 @@ Amp::set_gain (gain_t val, void *src) //cerr << "set desired gain to " << val << " when curgain = " << _gain_control->get_value () << endl; if (src != _gain_control.get()) { - _gain_control->set_value(val); + _gain_control->set_value (val); // bit twisty, this will come back and call us again // (this keeps control in sync with reality) return; } - { - // Glib::Mutex::Lock dm (declick_lock); - _gain_control->set_float(val, false); - } - - if (_session.transport_stopped()) { - // _gain = val; - } - - /* - if (_session.transport_stopped() && src != 0 && src != this && _gain_control->automation_write()) { - _gain_control->list()->add (_session.transport_frame(), val); - - } - */ - + _gain_control->set_float(val, false); _session.set_dirty(); } diff --git a/libs/ardour/port.cc b/libs/ardour/port.cc index ebe31a1fde..247357d16b 100644 --- a/libs/ardour/port.cc +++ b/libs/ardour/port.cc @@ -238,15 +238,20 @@ Port::reconnect () return 0; } -/** @param n Short name */ +/** @param n Short or long name */ int Port::set_name (std::string const & n) { - assert (_name.find_first_of (':') == std::string::npos); + if (n == _name) { + return 0; + } + + string const s = _engine->make_port_name_non_relative (n); + + int const r = jack_port_set_name (_jack_port, s.c_str()); - int const r = jack_port_set_name (_jack_port, n.c_str()); if (r == 0) { - _name = n; + _name = n; // short form, probably } return r; diff --git a/libs/gtkmm2ext/gtkmm2ext/bindable_button.h b/libs/gtkmm2ext/gtkmm2ext/bindable_button.h index 3fad7d1faa..18e3ceb339 100644 --- a/libs/gtkmm2ext/gtkmm2ext/bindable_button.h +++ b/libs/gtkmm2ext/gtkmm2ext/bindable_button.h @@ -34,6 +34,7 @@ class BindableToggleButton : public Gtkmm2ext::StatefulToggleButton public: BindableToggleButton (const std::string &label) : Gtkmm2ext::StatefulToggleButton (label) {} + BindableToggleButton () {} virtual ~BindableToggleButton() {} |