summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-01-09 23:14:47 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-01-09 23:14:47 +0000
commitf7cef2016f737a7c80b5307d3d45d8065b9e8789 (patch)
tree1bcd6023100c3efd4ffe243857c78cd0863832fd /gtk2_ardour/ardour_ui.cc
parent9766e40235c97cf0231f0bbcb35a163ce18f01db (diff)
patch from lincoln to fix failure to leave loop play mode at transort stop
git-svn-id: svn://localhost/ardour2/branches/3.0@8489 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/ardour_ui.cc')
-rw-r--r--gtk2_ardour/ardour_ui.cc33
1 files changed, 21 insertions, 12 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index c725bce3db..09a6562fb4 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -1687,21 +1687,30 @@ ARDOUR_UI::toggle_roll (bool with_abort, bool roll_out_of_bounded_mode)
void
ARDOUR_UI::toggle_session_auto_loop ()
{
- if (_session) {
- if (_session->get_play_loop()) {
- if (_session->transport_rolling()) {
- Location * looploc = _session->locations()->auto_loop_location();
- if (looploc) {
- _session->request_locate (looploc->start(), true);
- }
- } else {
- _session->request_play_loop (false);
- }
- } else {
+ if (!_session) {
+ return;
+ }
+
+ if (_session->get_play_loop()) {
+
+ if (_session->transport_rolling()) {
+
Location * looploc = _session->locations()->auto_loop_location();
+
if (looploc) {
- _session->request_play_loop (true);
+ _session->request_locate (looploc->start(), true);
+ _session->request_play_loop (false);
}
+
+ } else {
+ _session->request_play_loop (false);
+ }
+ } else {
+
+ Location * looploc = _session->locations()->auto_loop_location();
+
+ if (looploc) {
+ _session->request_play_loop (true);
}
}
}