ardour
|
#include <slave.h>
Public Member Functions | |
MTC_Slave (Session &, MidiPort &) | |
~MTC_Slave () | |
void | rebind (MidiPort &) |
bool | speed_and_position (double &, framepos_t &) |
bool | locked () const |
bool | ok () const |
void | handle_locate (const MIDI::byte *) |
framecnt_t | resolution () const |
bool | requires_seekahead () const |
framecnt_t | seekahead_distance () const |
bool | give_slave_full_control_over_transport_speed () const |
Timecode::TimecodeFormat | apparent_timecode_format () const |
std::string | approximate_current_position () const |
std::string | approximate_current_delta () const |
Public Member Functions inherited from ARDOUR::TimecodeSlave | |
TimecodeSlave () | |
Public Member Functions inherited from ARDOUR::Slave | |
Slave () | |
virtual | ~Slave () |
virtual bool | starting () const |
virtual bool | is_always_synced () const |
Private Member Functions | |
void | reset (bool with_pos) |
void | queue_reset (bool with_pos) |
void | maybe_reset () |
void | update_mtc_qtr (MIDI::Parser &, int, framepos_t) |
void | update_mtc_time (const MIDI::byte *, bool, framepos_t) |
void | update_mtc_status (MIDI::MTC_Status) |
void | read_current (SafeTime *) const |
void | reset_window (framepos_t) |
bool | outside_window (framepos_t) const |
void | init_mtc_dll (framepos_t, double) |
void | init_engine_dll (framepos_t, framepos_t) |
void | parse_timecode_offset () |
void | parameter_changed (std::string const &p) |
Static Private Attributes | |
static const int | frame_tolerance = 2 |
Additional Inherited Members | |
Public Attributes inherited from ARDOUR::TimecodeSlave | |
framepos_t | timecode_offset |
bool | timecode_negative_offset |
Definition at line 54 of file mtc_slave.cc.
MTC_Slave::~MTC_Slave | ( | ) |
Definition at line 83 of file mtc_slave.cc.
|
virtual |
Implements ARDOUR::TimecodeSlave.
Definition at line 690 of file mtc_slave.cc.
|
virtual |
Reimplemented from ARDOUR::Slave.
Definition at line 711 of file mtc_slave.cc.
|
virtual |
Implements ARDOUR::TimecodeSlave.
Definition at line 696 of file mtc_slave.cc.
|
virtual |
Reimplemented from ARDOUR::Slave.
Definition at line 133 of file mtc_slave.cc.
void MTC_Slave::handle_locate | ( | const MIDI::byte * | mmc_tc | ) |
Definition at line 219 of file mtc_slave.cc.
|
private |
Definition at line 562 of file mtc_slave.cc.
|
private |
Definition at line 251 of file mtc_slave.cc.
|
virtual |
reports to ARDOUR whether the Slave is currently synced to its external time source.
Implements ARDOUR::Slave.
Definition at line 159 of file mtc_slave.cc.
|
private |
Definition at line 182 of file mtc_slave.cc.
|
virtual |
reports to ARDOUR whether the slave is in a sane state
Implements ARDOUR::Slave.
Definition at line 166 of file mtc_slave.cc.
|
private |
Definition at line 152 of file mtc_slave.cc.
|
private |
Definition at line 123 of file mtc_slave.cc.
|
private |
Definition at line 113 of file mtc_slave.cc.
|
private |
Definition at line 172 of file mtc_slave.cc.
|
private |
Definition at line 234 of file mtc_slave.cc.
void MTC_Slave::rebind | ( | MidiPort & | p | ) |
Definition at line 104 of file mtc_slave.cc.
|
inlinevirtual |
Implements ARDOUR::Slave.
|
private |
Definition at line 194 of file mtc_slave.cc.
|
private |
Definition at line 526 of file mtc_slave.cc.
|
virtual |
Implements ARDOUR::Slave.
Definition at line 140 of file mtc_slave.cc.
|
virtual |
Reimplemented from ARDOUR::Slave.
Definition at line 146 of file mtc_slave.cc.
|
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:
< MTC speed from MTC-quarter-frame DLL
Implements ARDOUR::Slave.
Definition at line 584 of file mtc_slave.cc.
|
private |
Definition at line 265 of file mtc_slave.cc.
|
private |
Definition at line 487 of file mtc_slave.cc.
|
private |
Definition at line 304 of file mtc_slave.cc.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |