start tweaks to make Shift sticky; remove Shift-press combobox from gui since we...
authorPaul Davis <paul@linuxaudiosystems.com>
Tue, 1 Dec 2015 21:19:16 +0000 (16:19 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 1 Dec 2015 21:19:16 +0000 (16:19 -0500)
libs/surfaces/faderport/faderport.cc
libs/surfaces/faderport/gui.cc
libs/surfaces/faderport/gui.h

index b0effd2227c4bbcf588b22bc6146e28c946a65a2..9227da1ab309add43084a7d2ae941906d5fb22de 100644 (file)
@@ -308,18 +308,20 @@ FaderPort::button_handler (MIDI::Parser &, MIDI::EventTwoBytes* tb)
                button.timeout_connection.disconnect ();
        }
 
+       ButtonState bs (ButtonState (0));
+
        switch (id) {
        case Shift:
-               button_state = (tb->value ? ButtonState (button_state|ShiftDown) : ButtonState (button_state&~ShiftDown));
+               bs = ShiftDown;
                break;
        case Stop:
-               button_state = (tb->value ? ButtonState (button_state|StopDown) : ButtonState (button_state&~StopDown));
+               bs = StopDown;
                break;
        case Rewind:
-               button_state = (tb->value ? ButtonState (button_state|RewindDown) : ButtonState (button_state&~RewindDown));
+               bs = RewindDown;
                break;
        case User:
-               button_state = (tb->value ? ButtonState (button_state|UserDown) : ButtonState (button_state&~UserDown));
+               bs = UserDown;
                break;
        case FaderTouch:
                fader_is_touched = tb->value;
@@ -342,6 +344,10 @@ FaderPort::button_handler (MIDI::Parser &, MIDI::EventTwoBytes* tb)
                break;
        }
 
+       if (bs) {
+               button_state = (tb->value ? ButtonState (button_state|bs) : ButtonState (button_state&~bs));
+       }
+
        if (button.uses_flash()) {
                button.set_led_state (_output_port, (int)tb->value);
        }
index 78f7ec5bc0979cd246d82c56963cce1645f37142..5982c4dc073a77494396989b130b61b829db8bf5 100644 (file)
@@ -138,9 +138,12 @@ FPGUI::FPGUI (FaderPort& p)
 
        build_available_action_menu ();
 
+       /* No shift-press combo for User because that is labelled as "next"
+        * (marker)
+        */
+
        build_user_action_combo (user_combo[0], FaderPort::ButtonState(0));
-       build_user_action_combo (user_combo[1], FaderPort::ShiftDown);
-       build_user_action_combo (user_combo[2], FaderPort::LongPress);
+       build_user_action_combo (user_combo[1], FaderPort::LongPress);
 
        action_table.set_row_spacings (4);
        action_table.set_col_spacings (6);
@@ -225,13 +228,10 @@ FPGUI::FPGUI (FaderPort& p)
        align->set (0.0, 0.5);
        align->add (user_combo[0]);
        action_table.attach (*align, 1, 2, action_row, action_row+1, AttachOptions(FILL|EXPAND), AttachOptions (0));
+       /* skip shift press combo */
        align = manage (new Alignment);
        align->set (0.0, 0.5);
        align->add (user_combo[1]);
-       action_table.attach (*align, 2, 3, action_row, action_row+1, AttachOptions(FILL|EXPAND), AttachOptions (0));
-       align = manage (new Alignment);
-       align->set (0.0, 0.5);
-       align->add (user_combo[2]);
        action_table.attach (*align, 3, 4, action_row, action_row+1, AttachOptions(FILL|EXPAND), AttachOptions (0));
        action_row++;
 
index d5edfaf1275fadcd3e6efdef7139f9d299424b6a..8ad337a070e4649229acac6ede767c2415f1c773 100644 (file)
@@ -61,7 +61,7 @@ private:
        Gtk::ComboBox mix_combo[3];
        Gtk::ComboBox proj_combo[3];
        Gtk::ComboBox trns_combo[3];
-       Gtk::ComboBox user_combo[3];
+       Gtk::ComboBox user_combo[2];
 
        void update_port_combos ();
        PBD::ScopedConnection connection_change_connection;