19 #ifndef __ardour_transport_master_manager_h__
20 #define __ardour_transport_master_manager_h__
24 #include <boost/noncopyable.hpp>
31 class UI_TransportMaster;
49 static bool exists() {
return _instance != 0; }
57 PBD::Signal1<void,std::shared_ptr<TransportMaster> >
Added;
58 PBD::Signal1<void,std::shared_ptr<TransportMaster> >
Removed;
65 std::shared_ptr<TransportMaster>
current()
const {
return _current_master; }
70 PBD::Signal2<void,std::shared_ptr<TransportMaster>, std::shared_ptr<TransportMaster> >
CurrentChanged;
82 std::shared_ptr<TransportMaster>
master_by_port (std::shared_ptr<Port>
const &p)
const;
96 mutable Glib::Threads::RWLock
lock;
int set_current(std::shared_ptr< TransportMaster >)
boost::optional< Timecode::TimecodeFormat > _session_tc_format
void maybe_set_tc_format()
void init_transport_master_dll(double speed, samplepos_t pos)
int remove(std::string const &name)
std::shared_ptr< TransportMaster > master_by_name(std::string const &) const
int set_current(SyncSource)
void set_session(Session *)
double pre_process_transport_masters(pframes_t, samplepos_t session_transport_position)
double compute_matching_master_speed(pframes_t nframes, samplepos_t, bool &locate_required)
PBD::Signal1< void, std::shared_ptr< TransportMaster > > Added
TransportMasters _transport_masters
int set_current(std::string const &)
bool _master_invalid_this_cycle
std::shared_ptr< TransportMaster > master_by_type(SyncSource src) const
static TransportMasterManager & create()
void reinit(double speed, samplepos_t pos)
void unblock_disk_output()
int set_default_configuration()
XMLNode & get_state() const
std::shared_ptr< TransportMaster > master_by_port(std::shared_ptr< Port > const &p) const
Glib::Threads::RWLock lock
int add_locked(std::shared_ptr< TransportMaster >)
void clear(bool emit=true)
void parameter_changed(std::string const &what)
static TransportMasterManager * _instance
int set_current_locked(std::shared_ptr< TransportMaster >)
PBD::Signal2< void, std::shared_ptr< TransportMaster >, std::shared_ptr< TransportMaster > > CurrentChanged
PBD::Signal1< void, std::shared_ptr< TransportMaster > > Removed
static TransportMasterManager & instance()
bool master_invalid_this_cycle() const
int set_state(XMLNode const &, int)
~TransportMasterManager()
TransportMasters const & transport_masters() const
void maybe_restore_tc_format()
double get_current_speed_in_process_context() const
samplepos_t get_current_position_in_process_context() const
std::list< std::shared_ptr< TransportMaster > > TransportMasters
std::shared_ptr< TransportMaster > current() const
PBD::ScopedConnection config_connection
Session * session() const
int add(SyncSource type, std::string const &name, bool removeable=true)
samplepos_t _master_position
std::shared_ptr< TransportMaster > _current_master
static const std::string state_node_name
GtkImageIconNameData name
Temporal::samplepos_t samplepos_t