Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Diff by Greg ( 11 years ago )
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index b991e45..ed50bf1 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -4151,7 +4151,11 @@ SelectionDrag::start_grab (GdkEvent* event, Gdk::Cursor*)
   show_verbose_cursor_time (adjusted_current_frame (event));
  }
 
- _original_pointer_time_axis = _editor->trackview_by_y_position (current_pointer_y ()).first->order ();
+    TimeAxisView* view = _editor->trackview_by_y_position (current_pointer_y ()).first;
+    
+    if (view) {
+        _original_pointer_time_axis = view->order ();
+    }
 }
 
 void
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 3fd47b6..c08be20 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -1388,6 +1388,17 @@ Session::set_auto_loop_location (Location* location)
 
  location->set_auto_loop (true, this);
 
+    if (play_loop && Config->get_seamless_loop()) {
+        // set all tracks to use internal looping
+        boost::shared_ptr<RouteList> rl = routes.reader ();
+        for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
+            boost::shared_ptr<Track> tr = boost::dynamic_pointer_cast<Track> (*i);
+            if (tr && !tr->hidden()) {
+                tr->set_loop (location);
+            }
+        }
+    }
+    
  /* take care of our stuff first */
 
  auto_loop_changed (location);
@@ -1549,7 +1560,16 @@ void
 Session::location_removed (Location *location)
 {
         if (location->is_auto_loop()) {
-                set_auto_loop_location (0);
+            set_auto_loop_location (0);
+            
+            // set all tracks to NOT use internal looping
+            boost::shared_ptr<RouteList> rl = routes.reader ();
+            for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
+                boost::shared_ptr<Track> tr = boost::dynamic_pointer_cast<Track> (*i);
+                if (tr && !tr->hidden()) {
+                    tr->set_loop (0);
+                }
+            }
         }
         
         if (location->is_auto_punch()) {

 

Revise this Paste

Your Name: Code Language: