#include <iostream>
+#include <glibmm/timer.h>
+
#include "pbd/compose.h"
#include "ardour/automation_control.h"
*/
if (_session && _session->transport_rolling() && ac->alist()->automation_write()) {
- DEBUG_TRACE (DEBUG::Automation, string_compose ("\ttransport is rolling @ %1, so enter write pass\n", _session->transport_speed()));
- ac->list()->set_in_write_pass (true);
+ DEBUG_TRACE (DEBUG::Automation, string_compose ("\ttransport is rolling @ %1, audible = %2so enter write pass\n",
+ _session->transport_speed(), _session->audible_frame()));
+ /* add a guard point since we are already moving */
+ ac->list()->set_in_write_pass (true, true, _session->audible_frame());
}
/* we can't store shared_ptr<Destructible> in connections because it
for (AutomationWatches::iterator aw = automation_watches.begin(); aw != automation_watches.end(); ++aw) {
if ((*aw)->alist()->automation_write()) {
- (*aw)->list()->add (time, (*aw)->user_double());
+ (*aw)->list()->add (time, (*aw)->user_double(), true);
}
}
}
AutomationWatch::thread ()
{
while (_run_thread) {
- usleep ((useconds_t) floor (Config->get_automation_interval_msecs() * 1000));
+ Glib::usleep ((gulong) floor (Config->get_automation_interval_msecs() * 1000));
timer ();
}
}