summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/slave.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-10-12 16:48:53 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-10-12 16:48:53 +0000
commit76eb2f23d634ed8880f69b066318e6bd0e9d0d4b (patch)
tree9e49bfb00e5b5202c25c58e9beb5f41fa98b7c1e /libs/ardour/ardour/slave.h
parent5a8e83e0deef37e2973879a46af21487912b2c59 (diff)
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
Diffstat (limited to 'libs/ardour/ardour/slave.h')
-rw-r--r--libs/ardour/ardour/slave.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/libs/ardour/ardour/slave.h b/libs/ardour/ardour/slave.h
index b64ba3f42e..fa75ba17bb 100644
--- a/libs/ardour/ardour/slave.h
+++ b/libs/ardour/ardour/slave.h
@@ -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();