diff options
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/session.h | 6 | ||||
-rw-r--r-- | libs/ardour/ardour/ticker.h | 36 |
2 files changed, 10 insertions, 32 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index ee9c457ca4..fef6b7232e 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -104,6 +104,7 @@ class Graph; class IO; class IOProcessor; class ImportStatus; +class MidiClockTicker; class MidiControlUI; class MidiRegion; class MidiSource; @@ -513,9 +514,6 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi TempoMap& tempo_map() { return *_tempo_map; } - /// signals the current transport position in frames, bbt and timecode time (in that order) - PBD::Signal3<void, const framepos_t &, const Timecode::BBT_Time&, const Timecode::Time&> tick; - /* region info */ boost::shared_ptr<Region> find_whole_file_parent (boost::shared_ptr<Region const>) const; @@ -1520,6 +1518,8 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi uint32_t next_control_id () const; bool ignore_route_processor_changes; + + MidiClockTicker* midi_clock; }; } // namespace ARDOUR diff --git a/libs/ardour/ardour/ticker.h b/libs/ardour/ardour/ticker.h index 07aa1cc522..144d85f601 100644 --- a/libs/ardour/ardour/ticker.h +++ b/libs/ardour/ardour/ticker.h @@ -18,6 +18,7 @@ $Id$ */ +#include <boost/noncopyable.hpp> #include "pbd/signals.h" @@ -37,40 +38,17 @@ namespace ARDOUR class Session; -class Ticker : public SessionHandlePtr +class MidiClockTicker : public SessionHandlePtr, boost::noncopyable { public: - Ticker() {}; - virtual ~Ticker() {} - - virtual void tick ( - const framepos_t& transport_frames, - const Timecode::BBT_Time& transport_bbt, - const Timecode::Time& transport_timecode) = 0; - - void set_session (Session* s); -}; - -class MidiClockTicker : public Ticker -{ - /// Singleton -private: - MidiClockTicker() : _midi_port(0), _ppqn(24), _last_tick(0.0) {}; - MidiClockTicker( const MidiClockTicker& ); - MidiClockTicker& operator= (const MidiClockTicker&); - -public: + MidiClockTicker (); virtual ~MidiClockTicker() {}; - static MidiClockTicker& instance() { - static MidiClockTicker _instance; - return _instance; - } + void tick (const framepos_t& transport_frames, + const Timecode::BBT_Time& transport_bbt, + const Timecode::Time& transport_timecode); - void tick( - const framepos_t& transport_frames, - const Timecode::BBT_Time& transport_bbt, - const Timecode::Time& transport_timecode); + bool has_midi_port() const { return _midi_port != 0; } void set_session (Session* s); void session_going_away(); |