22 #include <glibmm/timer.h>
28 #include "ardour/debug.h"
111 ac->
list()->set_in_write_pass (
false);
127 if ((*aw)->alist()->automation_write()) {
128 (*aw)->list()->add (time, (*aw)->user_double(),
true);
135 (*aw)->alist()->automation_write()));
136 (*aw)->list()->set_in_write_pass (
false);
137 if ( (*aw)->alist()->automation_write() ) {
138 (*aw)->list()->set_in_write_pass (
true);
153 Glib::usleep ((gulong) floor (
Config->get_automation_interval_msecs() * 1000));
196 (*aw)->alist()->automation_write()));
197 if (rolling && (*aw)->alist()->automation_write()) {
198 (*aw)->list()->set_in_write_pass (
true);
200 (*aw)->list()->set_in_write_pass (
false);
framepos_t audible_frame() const
bool transport_rolling() const
AutoState automation_state() const
void transport_state_change()
PBD::Signal0< void > TransportStateChange
PBD::Signal0< void > DropReferences
double transport_speed() const
static AutomationWatch & instance()
void add_automation_watch(boost::shared_ptr< ARDOUR::AutomationControl >)
Glib::Threads::Mutex automation_watch_lock
static AutomationWatch * _instance
LIBARDOUR_API uint64_t Automation
LIBARDOUR_API RCConfiguration * Config
void set_session(ARDOUR::Session *)
#define DEBUG_TRACE(bits, str)
void remove_weak_automation_watch(boost::weak_ptr< ARDOUR::AutomationControl >)
AutomationWatches automation_watches
bool automation_write() const
void remove_automation_watch(boost::shared_ptr< ARDOUR::AutomationControl >)
Glib::Threads::Thread * _thread
boost::shared_ptr< ControlList > list()
boost::shared_ptr< AutomationList > alist() const
virtual void set_session(ARDOUR::Session *)
PBD::ScopedConnection transport_connection
ARDOUR::Session * _session
std::string string_compose(const std::string &fmt, const T1 &o1)