new keymouse binding 'set region sync point'
authorNick Mainsbridge <beatroute@iprimus.com.au>
Sun, 22 Jan 2006 13:29:08 +0000 (13:29 +0000)
committerNick Mainsbridge <beatroute@iprimus.com.au>
Sun, 22 Jan 2006 13:29:08 +0000 (13:29 +0000)
git-svn-id: svn://localhost/trunk/ardour2@286 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/ardour.bindings
gtk2_ardour/ardour.menus
gtk2_ardour/editor.h
gtk2_ardour/editor_actions.cc
gtk2_ardour/editor_keyboard.cc

index cb8c1bdd6dded116d13cac94e2b357c0f448a5ca..5f2ed31aa5d0f94d4ba11978a6bbe6874ade716d 100644 (file)
@@ -12,6 +12,7 @@
 (gtk_accel_path "<Actions>/Editor/duplicate-region" "d")
 (gtk_accel_path "<Actions>/Editor/set-edit-cursor" "e")
 (gtk_accel_path "<Actions>/Editor/split-region" "s")
+(gtk_accel_path "<Actions>/Editor/set-region-sync-position" "v")
 (gtk_accel_path "<Actions>/Editor/insert-region" "i")
 (gtk_accel_path "<Actions>/Editor/normalize-region" "n")
 (gtk_accel_path "<Actions>/Transport/loop" "l")
index df39e3fb276f77c838204ac05358b5ce6f34af17..9cbaf4f5ce59b05562318e1fc8be1062bedbde05 100644 (file)
                                <menuitem action='set-edit-cursor'/>
                        <menuitem action='set-playhead'/>
                        <menuitem action='split-region'/>
+                       <menuitem action='set-region-sync-position'/>
                </menu>
        </menu>
      </menubar>
index 07c4052addc089bf533ef0a6d9cb7776cef63398..db94038438beb84847ac2b7227fa008e7636a694 100644 (file)
@@ -1187,12 +1187,14 @@ class Editor : public PublicEditor
        void kbd_set_playhead_cursor ();
        void kbd_set_edit_cursor ();
        void kbd_split ();
+       void kbd_set_sync_position ();
        void kbd_align (ARDOUR::RegionPoint);
        void kbd_align_relative (ARDOUR::RegionPoint);
        void kbd_brush ();
        void kbd_audition ();
 
        void kbd_do_split (GdkEvent*);
+       void kbd_do_set_sync_position (GdkEvent* ev);
        void kbd_do_align (GdkEvent*, ARDOUR::RegionPoint);
        void kbd_do_align_relative (GdkEvent*, ARDOUR::RegionPoint);
        void kbd_do_brush (GdkEvent*);
index f85a744a70392c29f19ca7480f1d97367249c10b..27a62541b5eedae69302f8428ae8d109c75823f3 100644 (file)
@@ -149,6 +149,8 @@ Editor::register_actions ()
        ActionManager::session_sensitive_actions.push_back (act);
        act = ActionManager::register_action (editor_actions, "split-region", _("split region"), mem_fun(*this, &Editor::kbd_split));
         ActionManager::session_sensitive_actions.push_back (act);
+       act = ActionManager::register_action (editor_actions, "set-region-sync-position", _("set region sync position"), mem_fun(*this, &Editor::kbd_set_sync_position));
+        ActionManager::session_sensitive_actions.push_back (act);
 
        act = ActionManager::register_action (editor_actions, "undo", _("undo"), bind (mem_fun(*this, &Editor::undo), 1U));
        ActionManager::session_sensitive_actions.push_back (act);
index 43935752f005a734c4dc7491fa474b37e5335b0f..c0a4f3e0853589c49904d9053a0f307d72c725cd 100644 (file)
@@ -94,6 +94,24 @@ Editor::kbd_split ()
        kbd_driver (mem_fun(*this, &Editor::kbd_do_split), true, true, false);
 }
 
+
+void
+Editor::kbd_set_sync_position ()
+{
+       kbd_driver (mem_fun(*this, &Editor::kbd_do_set_sync_position), true, true, false);
+}
+
+void
+Editor::kbd_do_set_sync_position (GdkEvent* ev)
+{
+        jack_nframes_t where = event_frame (ev);
+       snap_to (where);
+
+       if (entered_regionview) {
+               entered_regionview->region.set_sync_position (where);
+       }
+}
+
 void
 Editor::kbd_do_align (GdkEvent* ev, ARDOUR::RegionPoint what)
 {