* made MidiClockTicker Singleton
authorHans Baier <hansfbaier@googlemail.com>
Thu, 4 Dec 2008 09:09:50 +0000 (09:09 +0000)
committerHans Baier <hansfbaier@googlemail.com>
Thu, 4 Dec 2008 09:09:50 +0000 (09:09 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@4281 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/ardour/ticker.h
libs/ardour/session_state.cc

index 66b0f2b590cb5c7b2d6f1a42e250dd4d9fd56879..2ecf65d3a70781f56d4e3cae43b974669c083628 100644 (file)
@@ -51,10 +51,20 @@ protected:
 
 class MidiClockTicker : public Ticker
 {
-public:
+       /// Singleton
+private:
        MidiClockTicker() : _jack_port(0), _ppqn(24), _last_tick(0.0) {};
+       MidiClockTicker( const MidiClockTicker& );
+       MidiClockTicker& operator= (const MidiClockTicker&);
+       
+public:
        virtual ~MidiClockTicker() {};
        
+       static MidiClockTicker& instance() {
+               static MidiClockTicker _instance;
+               return _instance;
+       }
+       
        void tick(
                const nframes_t& transport_frames, 
                const BBT_Time& transport_bbt, 
index 98626d6c6c11e0d30a3ae0df21ca84c525ac2625..0ac6e08827c9b73a71944d4845ed533135d79c9a 100644 (file)
@@ -359,8 +359,7 @@ Session::second_stage_init (bool new_session)
        deliver_mmc (MIDI::MachineControl::cmdMmcReset, 0);
        deliver_mmc (MIDI::MachineControl::cmdLocate, 0);
        
-       MidiClockTicker* midi_clock_ticker = new MidiClockTicker();
-       midi_clock_ticker->set_session(*this);
+       MidiClockTicker::instance().set_session(*this);
 
        BootMessage (_("Reset Control Protocols"));