summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/gain_meter.cc8
-rw-r--r--gtk2_ardour/mixer_strip.cc25
-rw-r--r--gtk2_ardour/mixer_strip.h1
-rw-r--r--gtk2_ardour/route_time_axis.cc35
-rw-r--r--gtk2_ardour/route_time_axis.h1
-rw-r--r--gtk2_ardour/route_ui.cc34
-rw-r--r--gtk2_ardour/route_ui.h15
-rw-r--r--libs/ardour/amp.cc19
-rw-r--r--libs/ardour/port.cc13
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/bindable_button.h1
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() {}