basics for a TimecodeSlave parent class for MTC and LTC
git-svn-id: svn://localhost/ardour2/branches/3.0@13258 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
5a8e83e0de
commit
76eb2f23d6
|
@ -28,6 +28,8 @@
|
|||
|
||||
#include "pbd/signals.h"
|
||||
|
||||
#include "timecode/time.h"
|
||||
|
||||
#include "ardour/types.h"
|
||||
#include "midi++/parser.h"
|
||||
#include "midi++/types.h"
|
||||
|
@ -223,7 +225,14 @@ struct SafeTime {
|
|||
}
|
||||
};
|
||||
|
||||
class MTC_Slave : public Slave {
|
||||
class TimecodeSlave : public Slave {
|
||||
public:
|
||||
TimecodeSlave () {}
|
||||
|
||||
virtual Timecode::TimecodeFormat apparent_timecode_format() const = 0;
|
||||
};
|
||||
|
||||
class MTC_Slave : public TimecodeSlave {
|
||||
public:
|
||||
MTC_Slave (Session&, MIDI::Port&);
|
||||
~MTC_Slave ();
|
||||
|
@ -240,6 +249,8 @@ class MTC_Slave : public Slave {
|
|||
framecnt_t seekahead_distance() const;
|
||||
bool give_slave_full_control_over_transport_speed() const;
|
||||
|
||||
Timecode::TimecodeFormat apparent_timecode_format() const;
|
||||
|
||||
private:
|
||||
Session& session;
|
||||
MIDI::Port* port;
|
||||
|
@ -298,7 +309,7 @@ class MTC_Slave : public Slave {
|
|||
};
|
||||
|
||||
#ifdef HAVE_LTC
|
||||
class LTC_Slave : public Slave {
|
||||
class LTC_Slave : public TimecodeSlave {
|
||||
public:
|
||||
LTC_Slave (Session&);
|
||||
~LTC_Slave ();
|
||||
|
@ -313,6 +324,8 @@ class LTC_Slave : public Slave {
|
|||
framecnt_t seekahead_distance() const;
|
||||
bool give_slave_full_control_over_transport_speed() const;
|
||||
|
||||
Timecode::TimecodeFormat apparent_timecode_format() const;
|
||||
|
||||
private:
|
||||
int parse_ltc(const jack_nframes_t nframes, const jack_default_audio_sample_t * const in, const framecnt_t posinfo);
|
||||
void process_ltc();
|
||||
|
|
|
@ -172,4 +172,13 @@ LTC_Slave::speed_and_position (double& speed, framepos_t& pos)
|
|||
speed = ltc_speed;
|
||||
|
||||
monotonic_fcnt += nframes;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Timecode::TimecodeFormat
|
||||
LTC_Slave::apparent_timecode_format () const
|
||||
{
|
||||
/* XXX to be computed, determined from incoming stream */
|
||||
return timecode_30;
|
||||
}
|
||||
|
|
|
@ -615,3 +615,10 @@ MTC_Slave::speed_and_position (double& speed, framepos_t& pos)
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
Timecode::TimecodeFormat
|
||||
MTC_Slave::apparent_timecode_format () const
|
||||
{
|
||||
/* XXX to be computed, determined from incoming stream */
|
||||
return timecode_30;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user