mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 14:54:56 +01:00
make RouteGroup gain control work again ; fix what solo button label shows under different conditions; other miscellania
git-svn-id: svn://localhost/ardour2/branches/3.0@5262 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
d45dfa5cb6
commit
d13fdaa9d1
10 changed files with 85 additions and 65 deletions
|
|
@ -371,12 +371,12 @@ GainMeterBase::show_gain ()
|
||||||
void
|
void
|
||||||
GainMeterBase::gain_adjusted ()
|
GainMeterBase::gain_adjusted ()
|
||||||
{
|
{
|
||||||
//cerr << this << " for " << _io->name() << " GAIN ADJUSTED\n";
|
|
||||||
if (!ignore_toggle) {
|
if (!ignore_toggle) {
|
||||||
//cerr << "Set GC\n";
|
if (_route) {
|
||||||
_gain_control->set_value (slider_position_to_gain (gain_adjustment.get_value()));
|
_route->set_gain (slider_position_to_gain (gain_adjustment.get_value()), this);
|
||||||
//cerr << "Set GC OUT\n";
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
show_gain ();
|
show_gain ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ int MixerStrip::scrollbar_height = 0;
|
||||||
|
|
||||||
MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, bool in_mixer)
|
MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, bool in_mixer)
|
||||||
: AxisView(sess)
|
: AxisView(sess)
|
||||||
, RouteUI (sess, _("Mute"), _("Solo"), _("Record"))
|
, RouteUI (sess)
|
||||||
,_mixer(mx)
|
,_mixer(mx)
|
||||||
, _mixer_owned (in_mixer)
|
, _mixer_owned (in_mixer)
|
||||||
, pre_processor_box (PreFader, sess, mx.plugin_selector(), mx.selection(), this, 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)
|
MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, boost::shared_ptr<Route> rt, bool in_mixer)
|
||||||
: AxisView(sess)
|
: AxisView(sess)
|
||||||
, RouteUI (sess, _("Mute"), _("Solo"), _("Record"))
|
, RouteUI (sess)
|
||||||
,_mixer(mx)
|
,_mixer(mx)
|
||||||
, _mixer_owned (in_mixer)
|
, _mixer_owned (in_mixer)
|
||||||
, pre_processor_box (PreFader, sess, mx.plugin_selector(), mx.selection(), this, 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 ();
|
init ();
|
||||||
|
set_button_names ();
|
||||||
set_route (rt);
|
set_route (rt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1488,6 +1489,25 @@ MixerStrip::revert_to_default_display ()
|
||||||
panner_ui().setup_pan ();
|
panner_ui().setup_pan ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
void
|
||||||
MixerStrip::set_route_group_to_new ()
|
MixerStrip::set_route_group_to_new ()
|
||||||
{
|
{
|
||||||
|
|
@ -1504,3 +1524,4 @@ MixerStrip::set_route_group_to_new ()
|
||||||
delete g;
|
delete g;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
|
||||||
|
|
||||||
ARDOUR::RouteGroup* route_group() const;
|
ARDOUR::RouteGroup* route_group() const;
|
||||||
void set_route (boost::shared_ptr<ARDOUR::Route>);
|
void set_route (boost::shared_ptr<ARDOUR::Route>);
|
||||||
|
void set_button_names ();
|
||||||
|
|
||||||
#ifdef GTKOSX
|
#ifdef GTKOSX
|
||||||
sigc::signal<void> WidthChanged;
|
sigc::signal<void> WidthChanged;
|
||||||
|
|
|
||||||
|
|
@ -100,18 +100,20 @@ RouteTimeAxisView::setup_slider_pix ()
|
||||||
}
|
}
|
||||||
|
|
||||||
RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session& sess, boost::shared_ptr<Route> rt, Canvas& canvas)
|
RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session& sess, boost::shared_ptr<Route> rt, Canvas& canvas)
|
||||||
: AxisView(sess),
|
: AxisView(sess)
|
||||||
RouteUI(rt, sess, _("m"), _("s"), _("r")), // mute, solo, and record
|
, RouteUI(rt, sess)
|
||||||
TimeAxisView(sess,ed,(TimeAxisView*) 0, canvas),
|
, TimeAxisView(sess,ed,(TimeAxisView*) 0, canvas)
|
||||||
parent_canvas (canvas),
|
, parent_canvas (canvas)
|
||||||
button_table (3, 3),
|
, button_table (3, 3)
|
||||||
route_group_button (_("g")), // group
|
, route_group_button (_("g"))
|
||||||
playlist_button (_("p")),
|
, playlist_button (_("p"))
|
||||||
size_button (_("h")), // height
|
, size_button (_("h"))
|
||||||
automation_button (_("a")),
|
, automation_button (_("a"))
|
||||||
visual_button (_("v")),
|
, visual_button (_("v"))
|
||||||
gm (sess, slider, true)
|
, gm (sess, slider, true)
|
||||||
{
|
{
|
||||||
|
set_button_names ();
|
||||||
|
|
||||||
gm.set_controls (_route, _route->shared_peak_meter(), _route->gain_control(), _route->amp());
|
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().set_no_show_all();
|
||||||
gm.get_level_meter().setup_meters(50);
|
gm.get_level_meter().setup_meters(50);
|
||||||
|
|
@ -2407,6 +2409,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
|
void
|
||||||
RouteTimeAxisView::set_route_group_to_new ()
|
RouteTimeAxisView::set_route_group_to_new ()
|
||||||
{
|
{
|
||||||
|
|
@ -2422,3 +2432,4 @@ RouteTimeAxisView::set_route_group_to_new ()
|
||||||
delete g;
|
delete g;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,7 @@ public:
|
||||||
virtual ~RouteTimeAxisView ();
|
virtual ~RouteTimeAxisView ();
|
||||||
|
|
||||||
void show_selection (TimeSelection&);
|
void show_selection (TimeSelection&);
|
||||||
|
void set_button_names ();
|
||||||
|
|
||||||
void set_samples_per_unit (double);
|
void set_samples_per_unit (double);
|
||||||
void set_height (uint32_t h);
|
void set_height (uint32_t h);
|
||||||
|
|
|
||||||
|
|
@ -62,19 +62,16 @@ using namespace Gtkmm2ext;
|
||||||
using namespace ARDOUR;
|
using namespace ARDOUR;
|
||||||
using namespace PBD;
|
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)
|
: AxisView(sess)
|
||||||
{
|
{
|
||||||
init ();
|
init ();
|
||||||
set_button_names (mute_name, solo_name, rec_name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RouteUI::RouteUI (boost::shared_ptr<ARDOUR::Route> rt,
|
RouteUI::RouteUI (boost::shared_ptr<ARDOUR::Route> rt, ARDOUR::Session& sess)
|
||||||
ARDOUR::Session& sess, const char* mute_name, const char* solo_name, const char* rec_name)
|
|
||||||
: AxisView(sess)
|
: AxisView(sess)
|
||||||
{
|
{
|
||||||
init ();
|
init ();
|
||||||
set_button_names (mute_name, solo_name, rec_name);
|
|
||||||
set_route (rt);
|
set_route (rt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -107,20 +104,26 @@ RouteUI::init ()
|
||||||
multiple_mute_change = false;
|
multiple_mute_change = false;
|
||||||
multiple_solo_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_self_managed (true);
|
||||||
mute_button->set_name ("MuteButton");
|
mute_button->set_name ("MuteButton");
|
||||||
|
mute_button->add (mute_button_label);
|
||||||
|
mute_button_label.show ();
|
||||||
UI::instance()->set_tip (mute_button, _("Mute this track"), "");
|
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_self_managed (true);
|
||||||
solo_button->set_name ("SoloButton");
|
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"), "");
|
UI::instance()->set_tip (solo_button, _("Mute other (non-soloed) tracks"), "");
|
||||||
solo_button->set_no_show_all (true);
|
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_name ("RecordEnableButton");
|
||||||
rec_enable_button->set_self_managed (true);
|
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"), "");
|
UI::instance()->set_tip (rec_enable_button, _("Enable recording on this track"), "");
|
||||||
|
|
||||||
show_sends_button = manage (new BindableToggleButton (""));
|
show_sends_button = manage (new BindableToggleButton (""));
|
||||||
|
|
@ -160,14 +163,6 @@ RouteUI::reset ()
|
||||||
denormal_menu_item = 0;
|
denormal_menu_item = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
RouteUI::set_button_names (const char* mute, const char* solo, const char* rec)
|
|
||||||
{
|
|
||||||
m_name = mute;
|
|
||||||
s_name = solo;
|
|
||||||
r_name = rec;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
RouteUI::set_route (boost::shared_ptr<Route> rp)
|
RouteUI::set_route (boost::shared_ptr<Route> rp)
|
||||||
{
|
{
|
||||||
|
|
@ -188,10 +183,7 @@ RouteUI::set_route (boost::shared_ptr<Route> rp)
|
||||||
}
|
}
|
||||||
|
|
||||||
mute_button->set_controllable (_route->mute_control());
|
mute_button->set_controllable (_route->mute_control());
|
||||||
mute_button->set_label (m_name);
|
|
||||||
|
|
||||||
solo_button->set_controllable (_route->solo_control());
|
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->active_changed.connect (mem_fun (*this, &RouteUI::route_active_changed)));
|
||||||
connections.push_back (_route->mute_changed.connect (mem_fun(*this, &RouteUI::mute_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->show();
|
||||||
rec_enable_button->set_controllable (t->rec_enable_control());
|
rec_enable_button->set_controllable (t->rec_enable_control());
|
||||||
rec_enable_button->set_label (r_name);
|
|
||||||
|
|
||||||
update_rec_display ();
|
update_rec_display ();
|
||||||
}
|
}
|
||||||
|
|
@ -1384,5 +1375,8 @@ RouteUI::parameter_changed (string const & p)
|
||||||
|
|
||||||
if (p == "disable-disarm-during-roll") {
|
if (p == "disable-disarm-during-roll") {
|
||||||
check_rec_enable_sensitivity ();
|
check_rec_enable_sensitivity ();
|
||||||
|
} else if (p == "solo-model") {
|
||||||
|
set_button_names ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,13 +46,13 @@ class BindableToggleButton;
|
||||||
class RouteUI : public virtual AxisView
|
class RouteUI : public virtual AxisView
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
RouteUI(ARDOUR::Session&, const char*, const char*, const char*);
|
RouteUI(ARDOUR::Session&);
|
||||||
RouteUI(boost::shared_ptr<ARDOUR::Route>, ARDOUR::Session&, const char*, const char*, const char*);
|
RouteUI(boost::shared_ptr<ARDOUR::Route>, ARDOUR::Session&);
|
||||||
|
|
||||||
virtual ~RouteUI();
|
virtual ~RouteUI();
|
||||||
|
|
||||||
virtual void set_route (boost::shared_ptr<ARDOUR::Route>);
|
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_track() const;
|
||||||
bool is_audio_track() const;
|
bool is_audio_track() const;
|
||||||
|
|
@ -85,6 +85,10 @@ class RouteUI : public virtual AxisView
|
||||||
BindableToggleButton* rec_enable_button; /* audio tracks */
|
BindableToggleButton* rec_enable_button; /* audio tracks */
|
||||||
BindableToggleButton* show_sends_button; /* busses */
|
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);
|
void send_blink (bool);
|
||||||
sigc::connection send_blink_connection;
|
sigc::connection send_blink_connection;
|
||||||
|
|
||||||
|
|
@ -184,10 +188,6 @@ class RouteUI : public virtual AxisView
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::vector<sigc::connection> connections;
|
std::vector<sigc::connection> connections;
|
||||||
std::string s_name;
|
|
||||||
std::string m_name;
|
|
||||||
std::string r_name;
|
|
||||||
|
|
||||||
bool self_destruct;
|
bool self_destruct;
|
||||||
|
|
||||||
void init ();
|
void init ();
|
||||||
|
|
@ -196,6 +196,7 @@ class RouteUI : public virtual AxisView
|
||||||
private:
|
private:
|
||||||
void check_rec_enable_sensitivity ();
|
void check_rec_enable_sensitivity ();
|
||||||
void parameter_changed (std::string const &);
|
void parameter_changed (std::string const &);
|
||||||
|
void relabel_solo_button ();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* __ardour_route_ui__ */
|
#endif /* __ardour_route_ui__ */
|
||||||
|
|
|
||||||
|
|
@ -246,22 +246,7 @@ Amp::set_gain (gain_t val, void *src)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
|
||||||
// Glib::Mutex::Lock dm (declick_lock);
|
|
||||||
_gain_control->set_float(val, false);
|
_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);
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
_session.set_dirty();
|
_session.set_dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -238,15 +238,20 @@ Port::reconnect ()
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @param n Short name */
|
/** @param n Short or long name */
|
||||||
int
|
int
|
||||||
Port::set_name (std::string const & n)
|
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) {
|
if (r == 0) {
|
||||||
_name = n;
|
_name = n; // short form, probably
|
||||||
}
|
}
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ class BindableToggleButton : public Gtkmm2ext::StatefulToggleButton
|
||||||
public:
|
public:
|
||||||
BindableToggleButton (const std::string &label)
|
BindableToggleButton (const std::string &label)
|
||||||
: Gtkmm2ext::StatefulToggleButton (label) {}
|
: Gtkmm2ext::StatefulToggleButton (label) {}
|
||||||
|
BindableToggleButton () {}
|
||||||
|
|
||||||
virtual ~BindableToggleButton() {}
|
virtual ~BindableToggleButton() {}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue