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