patch from carl for #2017 - do not stop at session end if synced to jack but not...
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 30 Oct 2009 16:50:50 +0000 (16:50 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 30 Oct 2009 16:50:50 +0000 (16:50 +0000)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@5983 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/ardour/session.h
libs/ardour/session_transport.cc

index 61ee454e7c021abd45699e172cc0bc46a9acdd0d..1ff1798e3a9660a440624aa725a968dc5bdb49f0 100644 (file)
@@ -1134,13 +1134,7 @@ class Session : public PBD::StatefulDestructible
                }
        }
 
-       bool maybe_stop (nframes_t limit) {
-               if ((_transport_speed > 0.0f && _transport_frame >= limit) || (_transport_speed < 0.0f && _transport_frame == 0)) {
-                       stop_transport ();
-                       return true;
-               }
-               return false;
-       }
+       bool maybe_stop (nframes_t limit);
 
        bool maybe_sync_start (nframes_t&);
 
index d454612295d1fa915057aac4863430cbb5e6a8fb..cdf38174aee6dceecd655fb64152bf19be261c43 100644 (file)
@@ -1377,3 +1377,17 @@ Session::reset_jack_connection (jack_client_t* jack)
                js->reset_client (jack);
        }
 }
+
+bool
+Session::maybe_stop (nframes_t limit)
+{
+       if ((_transport_speed > 0.0f && _transport_frame >= limit) || (_transport_speed < 0.0f && _transport_frame == 0)) {
+               if (synced_to_jack () && Config->get_jack_time_master ()) {
+                       _engine.transport_stop ();
+               } else if (!synced_to_jack ()) {
+                       stop_transport ();
+               }
+               return true;
+       }
+       return false;
+}