ardour
|
#include <slave.h>
Public Member Functions | |
Engine_Slave (AudioEngine &) | |
~Engine_Slave () | |
bool | speed_and_position (double &speed, framepos_t &pos) |
bool | starting () const |
bool | locked () const |
bool | ok () const |
framecnt_t | resolution () const |
bool | requires_seekahead () const |
bool | is_always_synced () const |
Public Member Functions inherited from ARDOUR::Slave | |
Slave () | |
virtual | ~Slave () |
virtual framecnt_t | seekahead_distance () const |
virtual bool | give_slave_full_control_over_transport_speed () const |
virtual std::string | approximate_current_delta () const |
Private Attributes | |
AudioEngine & | engine |
bool | _starting |
Engine_Slave::Engine_Slave | ( | AudioEngine & | e | ) |
Definition at line 30 of file engine_slave.cc.
Engine_Slave::~Engine_Slave | ( | ) |
Definition at line 39 of file engine_slave.cc.
|
inlinevirtual |
Reimplemented from ARDOUR::Slave.
|
virtual |
reports to ARDOUR whether the Slave is currently synced to its external time source.
Implements ARDOUR::Slave.
Definition at line 44 of file engine_slave.cc.
|
virtual |
reports to ARDOUR whether the slave is in a sane state
Implements ARDOUR::Slave.
Definition at line 50 of file engine_slave.cc.
|
inlinevirtual |
Implements ARDOUR::Slave.
|
inlinevirtual |
Implements ARDOUR::Slave.
|
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:
Implements ARDOUR::Slave.
Definition at line 56 of file engine_slave.cc.
|
inlinevirtual |
reports to ARDOUR whether the slave is in the process of starting to roll
Reimplemented from ARDOUR::Slave.
|
private |