add step-rest keybinding for step editing
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 10 Sep 2009 22:20:37 +0000 (22:20 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 10 Sep 2009 22:20:37 +0000 (22:20 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@5653 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/midi_region_view.cc
gtk2_ardour/midi_time_axis.cc
gtk2_ardour/midi_time_axis.h

index cefde608dd0fb7408f57866b936195c9efcc3531..6acbacc43990c6af69e6c34f86dca3fc6e37c3d8 100644 (file)
@@ -321,7 +321,12 @@ MidiRegionView::canvas_event(GdkEvent* ev)
                } else if (ev->key.keyval == GDK_Control_L) {
                        return true;
 
+               } else if (ev->key.keyval == GDK_r) {
+                       /* if we're not step editing, this really doesn't matter */
+                       midi_view()->step_edit_rest ();
+                       return true;
                }
+
                return false;
 
        case GDK_KEY_RELEASE:
index 1bc8c7a45338d3b395109bc2c4f1d3c4d1515e9d..6103e0254479a02b9095dd10badcf4d97688a1c4 100644 (file)
@@ -117,6 +117,8 @@ MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session& sess,
 
        mute_button->set_active (false);
        solo_button->set_active (false);
+
+       step_edit_insert_position = 0;
        
        if (is_midi_track()) {
                controls_ebox.set_name ("MidiTimeAxisViewControlsBaseUnselected");
@@ -610,7 +612,6 @@ MidiTimeAxisView::check_step_edit ()
                if ((buf[0] & 0xf0) == MIDI_CMD_NOTE_ON) {
 
                        if (step_edit_region == 0) {
-                               cerr << "Add new region first ..\n";
 
                                step_edit_region = add_region (step_edit_insert_position);
                                RegionView* rv = view()->find_view (step_edit_region);
@@ -632,7 +633,6 @@ MidiTimeAxisView::check_step_edit ()
                                        continue;
                                }
                                
-                               cerr << "will add note at " << step_edit_beat_pos << endl;
                                step_edit_region_view->add_note (buf[0] & 0xf, buf[1], buf[2], step_edit_beat_pos, beats);
                                step_edit_beat_pos += beats;
                        }
@@ -641,6 +641,14 @@ MidiTimeAxisView::check_step_edit ()
        }
 }
 
+void
+MidiTimeAxisView::step_edit_rest ()
+{
+       bool success;
+       Evoral::MusicalTime beats = _editor.get_grid_type_as_beats (success, step_edit_insert_position);
+       step_edit_beat_pos += beats;
+}
+
 boost::shared_ptr<Region>
 MidiTimeAxisView::add_region (nframes64_t pos)
 {
index 33a5f779bd7fb4e7c2e562a13a6fb06072bfd8f9..fd9db05a991f7f9e063df3e9700c616fec8f5c5f 100644 (file)
@@ -91,7 +91,7 @@ class MidiTimeAxisView : public RouteTimeAxisView
        void start_step_editing ();
        void stop_step_editing ();
        void check_step_edit ();
-
+       void step_edit_rest ();
 
   private:
        sigc::signal<void, std::string, std::string>  _midi_patch_settings_changed;