summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/ardour3_ui_dark.rc.in10
-rw-r--r--gtk2_ardour/mixer_strip.cc8
-rw-r--r--gtk2_ardour/route_ui.cc23
-rw-r--r--gtk2_ardour/route_ui.h5
4 files changed, 41 insertions, 5 deletions
diff --git a/gtk2_ardour/ardour3_ui_dark.rc.in b/gtk2_ardour/ardour3_ui_dark.rc.in
index 7840ac7007..a945cd8240 100644
--- a/gtk2_ardour/ardour3_ui_dark.rc.in
+++ b/gtk2_ardour/ardour3_ui_dark.rc.in
@@ -352,6 +352,12 @@ style "solo_button_active" = "small_button"
fg[PRELIGHT] = { 0, 0, 0 }
}
+style "mixer_invert_button" = "small_button"
+{
+ bg[ACTIVE] = { 1.0, 0.749, 0.247 }
+ fg[ACTIVE] = { 0, 0, 0 }
+}
+
style "mixer_solo_button" = "solo_button"
{
font_name = "@FONT_SMALLER@"
@@ -1430,8 +1436,8 @@ widget "*MixerSoloButton-active" style:highest "mixer_solo_button_active"
widget "*TrackLoopButton*" style:highest "track_loop_button"
widget "*PanAutomationLineSelector*" style:highest "multiline_combo"
widget "*EditorTimeButton*" style:highest "time_button"
-widget "*MixerPhaseInvertButton*" style:highest "very_small_button"
-widget "*MixerPhaseInvertButton.*" style:highest "very_small_button"
+widget "*MixerInvertButton*" style:highest "mixer_invert_button"
+widget "*MixerInvertButton.*" style:highest "mixer_invert_button"
widget "*MixerAutomationRecordingButton*" style:highest "very_small_button"
widget "*MixerAutomationRecordingButton.*" style:highest "very_small_button"
widget "*MixerAutomationModeButton*" style:highest "very_small_button"
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index b7d0536ce1..abfa792f4b 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -84,7 +84,7 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session* sess, bool in_mixer)
, panners (sess)
, _mono_button (_("Mono"))
, button_table (3, 2)
- , middle_button_table (1, 2)
+ , middle_button_table (2, 2)
, bottom_button_table (1, 2)
, meter_point_label (_("pre"))
, comment_button (_("Comments"))
@@ -183,6 +183,7 @@ MixerStrip::init ()
mute_button->set_name ("MixerMuteButton");
solo_button->set_name ("MixerSoloButton");
+ invert_button->set_name ("MixerInvertButton");
button_table.set_homogeneous (true);
button_table.set_spacings (0);
@@ -194,6 +195,7 @@ MixerStrip::init ()
middle_button_table.set_spacings (0);
middle_button_table.attach (*mute_button, 0, 1, 0, 1);
middle_button_table.attach (*solo_button, 1, 2, 0, 1);
+ middle_button_table.attach (*invert_button, 0, 2, 1, 2);
bottom_button_table.set_col_spacings (0);
bottom_button_table.set_homogeneous (true);
@@ -1727,7 +1729,9 @@ MixerStrip::revert_to_default_display ()
void
MixerStrip::set_button_names ()
{
- switch (_width) {
+ invert_button_label.set_text (X_("Ø"));
+
+ switch (_width) {
case Wide:
rec_enable_button_label.set_text (_("Rec"));
mute_button_label.set_text (_("Mute"));
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc
index f5bf2f9208..60fead1e21 100644
--- a/gtk2_ardour/route_ui.cc
+++ b/gtk2_ardour/route_ui.cc
@@ -108,6 +108,13 @@ RouteUI::init ()
multiple_mute_change = false;
multiple_solo_change = false;
+ invert_button = manage (new BindableToggleButton ());
+ // mute_button->set_self_managed (true);
+ invert_button->set_name ("InvertButton");
+ invert_button->add (invert_button_label);
+ invert_button_label.show ();
+ UI::instance()->set_tip (invert_button, _("Invert (Phase reverse) this track"), "");
+
mute_button = manage (new BindableToggleButton ());
// mute_button->set_self_managed (true);
mute_button->set_name ("MuteButton");
@@ -151,6 +158,9 @@ RouteUI::init ()
solo_button->signal_button_release_event().connect (sigc::mem_fun(*this, &RouteUI::solo_release), false);
mute_button->signal_button_press_event().connect (sigc::mem_fun(*this, &RouteUI::mute_press), false);
mute_button->signal_button_release_event().connect (sigc::mem_fun(*this, &RouteUI::mute_release), false);
+ invert_button->signal_button_press_event().connect (sigc::mem_fun(*this, &RouteUI::invert_press), false);
+ invert_button->signal_button_release_event().connect (sigc::mem_fun(*this, &RouteUI::invert_release), false);
+
}
void
@@ -222,6 +232,7 @@ RouteUI::set_route (boost::shared_ptr<Route> rp)
solo_button->unset_flags (Gtk::CAN_FOCUS);
mute_button->show();
+ invert_button->show ();
if (_route->is_monitor()) {
solo_button->hide ();
@@ -238,6 +249,18 @@ RouteUI::set_route (boost::shared_ptr<Route> rp)
}
bool
+RouteUI::invert_press (GdkEventButton* ev)
+{
+ return false;
+}
+
+bool
+RouteUI::invert_release (GdkEventButton* ev)
+{
+ return false;
+}
+
+bool
RouteUI::mute_press (GdkEventButton* ev)
{
if (ev->type == GDK_2BUTTON_PRESS || ev->type == GDK_3BUTTON_PRESS ) {
diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h
index 458910bd69..66d2629634 100644
--- a/gtk2_ardour/route_ui.h
+++ b/gtk2_ardour/route_ui.h
@@ -85,6 +85,7 @@ class RouteUI : public virtual AxisView
bool multiple_mute_change;
bool multiple_solo_change;
+ BindableToggleButton* invert_button;
BindableToggleButton* mute_button;
BindableToggleButton* solo_button;
BindableToggleButton* rec_enable_button; /* audio tracks */
@@ -92,6 +93,7 @@ class RouteUI : public virtual AxisView
Gtk::Label solo_button_label;
Gtk::Label mute_button_label;
+ Gtk::Label invert_button_label;
Gtk::Label rec_enable_button_label;
void send_blink (bool);
@@ -104,12 +106,13 @@ class RouteUI : public virtual AxisView
Gtk::Menu* solo_menu;
Gtk::Menu* sends_menu;
-
XMLNode *xml_node;
void ensure_xml_node ();
virtual XMLNode* get_automation_child_xml_node (Evoral::Parameter param);
+ bool invert_press(GdkEventButton*);
+ bool invert_release(GdkEventButton*);
bool mute_press(GdkEventButton*);
bool mute_release(GdkEventButton*);
bool solo_press(GdkEventButton*);