]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/clock.h
Sync timetable on clock discontinuity
[r2c2.git] / source / libr2c2 / clock.h
index 186e0baab0181b6dfa7947f53ca82ce24a40fc36..621cb2d5df1afa5dcda619d3a60c04337099ceb1 100644 (file)
@@ -2,6 +2,7 @@
 #define LIBR2C2_CLOCK_H_
 
 #include <sigc++/signal.h>
+#include <msp/datafile/objectloader.h>
 #include <msp/time/timedelta.h>
 
 namespace R2C2 {
@@ -9,11 +10,22 @@ namespace R2C2 {
 class Clock
 {
 public:
+       class Loader: public Msp::DataFile::ObjectLoader<Clock>
+       {
+       public:
+               Loader(Clock &);
+
+       private:
+               void time(Msp::Time::RawTime);
+       };
+
        sigc::signal<void> signal_minute;
+       sigc::signal<void> signal_discontinuity;
 
 private:
        Msp::Time::TimeDelta current_time;
        float rate;
+       bool stopped;
 
 public:
        Clock();
@@ -22,7 +34,10 @@ public:
        float get_rate() const { return rate; }
        void set_current_time(const Msp::Time::TimeDelta &);
        const Msp::Time::TimeDelta &get_current_time() const { return current_time; }
+       void stop(bool);
+       bool is_stopped() const { return stopped; }
        void tick(const Msp::Time::TimeDelta &);
+       void save(std::list<Msp::DataFile::Statement> &) const;
 };
 
 } // namespace R2C2