a few useful keybindings in the xfade editor
authorPaul Davis <paul@linuxaudiosystems.com>
Sun, 9 Nov 2008 08:22:48 +0000 (08:22 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Sun, 9 Nov 2008 08:22:48 +0000 (08:22 +0000)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4116 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/canvas-waveview.c
gtk2_ardour/crossfade_edit.cc
gtk2_ardour/crossfade_edit.h

index 9e05ec65a0d7b69001f998a012d5ec6068893435..3821d6ff98f7df833c8e36a6b833970c552e3a36 100644 (file)
@@ -1359,8 +1359,9 @@ gnome_canvas_waveview_render (GnomeCanvasItem *item,
                        prev_pymax = pymax;
                        prev_pymin = pymin;
                }
-       }
-       else if(waveview->filled && rectify) {
+
+       } else if (waveview->filled && rectify) {
+
                int prev_pymax = -1;
                int last_pymax = -1;
                int next_pymax;
index c5d7b72db4261d5ed55acd1f18ec2d05ba5466eb..b47247c68d88f56b976dbc56d066897e5c3f319d 100644 (file)
@@ -1338,3 +1338,48 @@ CrossfadeEditor::audition_left_dry_toggled ()
                }
        }
 }
+
+bool
+CrossfadeEditor::on_key_press_event (GdkEventKey *ev)
+{
+       return true;
+}
+
+bool
+CrossfadeEditor::on_key_release_event (GdkEventKey* ev)
+{
+       switch (ev->keyval) {
+       case GDK_Right:
+               if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
+                       audition_right_dry_button.set_active (!audition_right_dry_button.get_active());
+               } else {
+                       audition_right_button.set_active (!audition_right_button.get_active());
+               }
+               break;
+
+       case GDK_Left:
+               if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
+                       audition_left_dry_button.set_active (!audition_left_dry_button.get_active());
+               } else {
+                       audition_left_button.set_active (!audition_left_button.get_active());
+               }
+               break;
+
+       case GDK_space:
+               if (audition_left_dry_button.get_active() ||
+                   audition_left_button.get_active () ||
+                   audition_right_dry_button.get_active () ||
+                   audition_right_button.get_active () ||
+                   audition_both_button.get_active ()) {
+                       cancel_audition ();
+               } else {
+                       audition_both_button.set_active (!audition_both_button.get_active());
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       return true;
+}
index 3d51771e2badf63c0b69bc8cd9fad0d4f262b445..e3b7338356c81ef10654f7d2ac17f405b597f5ae 100644 (file)
@@ -72,6 +72,10 @@ class CrossfadeEditor : public ArdourDialog
        
        static Presets* fade_in_presets;
        static Presets* fade_out_presets;
+
+  protected:
+       bool on_key_press_event (GdkEventKey*);
+       bool on_key_release_event (GdkEventKey*);
        
   private:
        boost::shared_ptr<ARDOUR::Crossfade> xfade;