add (non-functional) invert (phase/polarity switch) button
authorPaul Davis <paul@linuxaudiosystems.com>
Tue, 30 Mar 2010 17:44:02 +0000 (17:44 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 30 Mar 2010 17:44:02 +0000 (17:44 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@6811 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/ardour3_ui_dark.rc.in
gtk2_ardour/mixer_strip.cc
gtk2_ardour/route_ui.cc
gtk2_ardour/route_ui.h

index 7840ac7007757158db016fbd491a6ebf5702fc5c..a945cd824015de349e2d32d51c7a2c8992cf96fd 100644 (file)
@@ -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"
index b7d0536ce1e6376d5fcf5259650da513c19c5cf0..abfa792f4bd3acce6a5bc541eb7822de2e0178ae 100644 (file)
@@ -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"));
index f5bf2f9208051656706b964606450da0bdda9694..60fead1e2185205e98e2dc732c4f1bc18b5504ec 100644 (file)
@@ -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 ();
@@ -237,6 +248,18 @@ RouteUI::set_route (boost::shared_ptr<Route> rp)
        map_frozen ();
 }
 
+bool
+RouteUI::invert_press (GdkEventButton* ev)
+{
+        return false;
+}
+
+bool
+RouteUI::invert_release (GdkEventButton* ev)
+{
+        return false;
+}
+
 bool
 RouteUI::mute_press (GdkEventButton* ev)
 {
index 458910bd698c6dc6f64ebe29d02706353fd3de87..66d2629634ced239903a3dc30c109c6690a98420 100644 (file)
@@ -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*);