Ardour
9.0-pre0-582-g084a23a80d
|
#include <transport_master.h>
Private Attributes | |
AudioEngine & | engine |
bool | _starting |
Additional Inherited Members | |
Static Public Member Functions inherited from ARDOUR::TransportMaster | |
static std::shared_ptr< TransportMaster > | factory (SyncSource, std::string const &, bool removeable) |
static std::shared_ptr< TransportMaster > | factory (XMLNode const &) |
static void | make_property_quarks () |
Public Attributes inherited from PBD::Stateful | |
PBD::Signal< void(const PropertyChange &)> | PropertyChanged |
Static Public Attributes inherited from ARDOUR::TransportMaster | |
static const std::string | state_node_name |
Static Public Attributes inherited from PBD::Stateful | |
static int | current_state_version |
static int | loading_state_version |
Protected Member Functions inherited from ARDOUR::TransportMaster | |
virtual void | connection_handler (std::weak_ptr< ARDOUR::Port >, std::string name1, std::weak_ptr< ARDOUR::Port >, std::string name2, bool yn) |
virtual void | register_properties () |
virtual std::string | format_delta_time (sampleoffset_t) const |
Protected Member Functions inherited from PBD::Stateful | |
void | add_instant_xml (XMLNode &, const std::string &directory_path) |
XMLNode * | instant_xml (const std::string &str, const std::string &directory_path) |
void | add_properties (XMLNode &) const |
PropertyChange | set_values (XMLNode const &) |
virtual void | post_set (const PropertyChange &) |
virtual void | send_change (const PropertyChange &) |
virtual void | mid_thaw (const PropertyChange &) |
bool | regenerate_xml_or_string_ids () const |
Protected Attributes inherited from ARDOUR::TransportMaster | |
SyncSource | _type |
PBD::Property< std::string > | _name |
Session * | _session |
sampleoffset_t | _current_delta |
bool | _pending_collect |
bool | _removeable |
PBD::Property< TransportRequestType > | _request_mask |
PBD::Property< bool > | _sclock_synced |
PBD::Property< bool > | _collect |
PBD::Property< bool > | _connected |
SafeTime | current |
int | transport_direction |
int | dll_initstate |
double | t0 |
double | t1 |
double | e2 |
double | b |
double | c |
std::shared_ptr< Port > | _port |
XMLNode | port_node |
PBD::ScopedConnection | port_connection |
PBD::ScopedConnection | backend_connection |
Protected Attributes inherited from PBD::Stateful | |
XMLNode * | _extra_xml |
XMLNode * | _instant_xml |
PBD::PropertyChange | _pending_changed |
Glib::Threads::Mutex | _lock |
std::string | _xml_node_name |
name of node to use for this object in XML More... | |
OwnedPropertyList * | _properties |
Definition at line 734 of file transport_master.h.
ARDOUR::Engine_TransportMaster::Engine_TransportMaster | ( | AudioEngine & | ) |
ARDOUR::Engine_TransportMaster::~Engine_TransportMaster | ( | ) |
|
virtual |
Reimplemented from ARDOUR::TransportMaster.
|
virtual |
Reimplemented from ARDOUR::TransportMaster.
|
inlinevirtual |
Implements ARDOUR::TransportMaster.
Definition at line 771 of file transport_master.h.
|
virtual |
Reimplemented from ARDOUR::TransportMaster.
|
virtual |
Implements ARDOUR::TransportMaster.
|
virtual |
reports to ARDOUR whether the TransportMaster is currently synced to its external time source.
Implements ARDOUR::TransportMaster.
|
virtual |
reports to ARDOUR whether the slave is in a sane state
Implements ARDOUR::TransportMaster.
|
virtual |
Implements ARDOUR::TransportMaster.
|
virtual |
Implements ARDOUR::TransportMaster.
|
inlinevirtual |
Implements ARDOUR::TransportMaster.
Definition at line 756 of file transport_master.h.
|
virtual |
Implements ARDOUR::TransportMaster.
|
inlinevirtual |
Implements ARDOUR::TransportMaster.
Definition at line 752 of file transport_master.h.
|
inlinevirtual |
Reimplemented from ARDOUR::TransportMaster.
Definition at line 760 of file transport_master.h.
|
virtual |
This is the most important function to implement: Each process cycle, Session::follow_slave will call this method. and after the method call they should
Session::follow_slave will then try to follow the given position using a delay locked loop (DLL), starting with the first given transport speed. If the values of speed and position contradict each other, ARDOUR will always follow the position and disregard the speed. Although, a correct speed is important so that ARDOUR can sync to the master time source quickly.
For background information on delay locked loops, see http://www.kokkinizita.net/papers/usingdll.pdf
The method has the following precondition:
After the method call the following postconditions should be met:
speed | - The transport speed requested |
position | - The transport position requested |
lp | last position (used for flywheel) |
when | last timestamp (used for flywheel) |
now | monotonic sample time |
Reimplemented from ARDOUR::TransportMaster.
|
inlinevirtual |
reports to ARDOUR whether the slave is in the process of starting to roll
Reimplemented from ARDOUR::TransportMaster.
Definition at line 743 of file transport_master.h.
|
virtual |
Implements ARDOUR::TransportMaster.
|
virtual |
reports to ARDOUR whether it is possible to use this slave
Only the JACK ("Engine") slave is ever likely to return false, if JACK is not being used for the Audio/MIDI backend.
Reimplemented from ARDOUR::TransportMaster.
|
private |
Definition at line 775 of file transport_master.h.
|
private |
Definition at line 774 of file transport_master.h.