diff --git a/libs/ardour/ardour/transport_fsm.h b/libs/ardour/ardour/transport_fsm.h index ce35c32be9..4fb0d676e1 100644 --- a/libs/ardour/ardour/transport_fsm.h +++ b/libs/ardour/ardour/transport_fsm.h @@ -151,6 +151,8 @@ struct TransportFSM std::string current_state () const; + int transport_speed () const; + private: MotionState _motion_state; ButlerState _butler_state; diff --git a/libs/ardour/transport_fsm.cc b/libs/ardour/transport_fsm.cc index aa77eab27a..db68b700ac 100644 --- a/libs/ardour/transport_fsm.cc +++ b/libs/ardour/transport_fsm.cc @@ -638,6 +638,20 @@ TransportFSM::enqueue (Event* ev) } } +int +TransportFSM::transport_speed() const +{ + if (_motion_state == Stopped || _direction_state == Reversing) { + return 0; + } + + if (_direction_state == Backwards) { + return -1; + } + + return 1; +} + void TransportFSM::set_speed (Event const & ev) {