a new stop command while in the middle of declick-to-stop is not a bad transition
authorPaul Davis <paul@linuxaudiosystems.com>
Tue, 17 Dec 2019 20:21:33 +0000 (13:21 -0700)
committerPaul Davis <paul@linuxaudiosystems.com>
Tue, 17 Dec 2019 20:21:38 +0000 (13:21 -0700)
libs/ardour/transport_fsm.cc

index 537c825fb1a524f7a693eabe85c90baf3d5bcb73..bd3ac986b2c313aa9d646dcaa00b4a79b0125397 100644 (file)
@@ -153,6 +153,7 @@ _row  < Rolling,             butler_done,     Rolling
 _row  < Rolling,             start_transport, Rolling                                                                    >,
 a_row < Rolling,             stop_transport,  DeclickToStop,     &T::stop_playback                                       >,
 a_row < DeclickToStop,       declick_done,    Stopped,                                                                   >,
+a_row < DeclickToStop,       stop_transport,  DeclickToStop                                                              >,
 a_row < Rolling,             locate,          DeclickToLocate,   &T::start_declick_for_locate                            >,
 a_row < DeclickToLocate,     declick_done,    WaitingForLocate,  &T::start_locate_after_declick                          >,
 row   < WaitingForLocate,    locate_done,     Rolling,           &T::roll_after_locate, &T::should_roll_after_locate     >,
@@ -242,6 +243,9 @@ TransportFSM::process_event (Event& ev, bool already_deferred, bool& deferred)
                                deferred = true;
                        }
                        break;
+               case DeclickToStop:
+                       /* already doing it */
+                       break;
                default:
                        bad_transition (ev); return false;
                        break;