X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fsession_transport.cc;h=de295a8e8a39dbc8073e64e6e12252205d9b6f8c;hb=ae94dfda5f42a6a0cbd042bce7a8007d90628d51;hp=ca6b4da319ba4cbecd4079337ee6e9cb8c21a95c;hpb=db78ba19fff5bfeebe662ccc8bf5ef41d0b41b60;p=ardour.git diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index ca6b4da319..de295a8e8a 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -40,6 +40,7 @@ #include "ardour/audioengine.h" #include "ardour/auditioner.h" #include "ardour/butler.h" +#include "ardour/click.h" #include "ardour/debug.h" #include "ardour/location.h" #include "ardour/session.h" @@ -425,6 +426,12 @@ Session::non_realtime_locate () tr->non_realtime_locate (_transport_frame); } } + + /* XXX: it would be nice to generate the new clicks here (in the non-RT thread) + rather than clearing them so that the RT thread has to spend time constructing + them (in Session::click). + */ + clear_clicks (); } @@ -958,8 +965,8 @@ Session::set_transport_speed (double speed, bool abort, bool clear_state) return; } - if (actively_recording() && speed < 0.0) { - /* no reverse during recording */ + if (actively_recording() && speed != 1.0 && speed != 0.0) { + /* no varispeed during recording */ return; }