13
0

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:
Paul Davis 2012-10-12 16:48:53 +00:00
parent 5a8e83e0de
commit 76eb2f23d6
3 changed files with 31 additions and 2 deletions

View File

@ -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();

View File

@ -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;
}

View File

@ -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;
}