]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/clock.h
Sync timetable on clock discontinuity
[r2c2.git] / source / libr2c2 / clock.h
index 0fa5f598f710b61ea7466d42f0cad50d093929f7..621cb2d5df1afa5dcda619d3a60c04337099ceb1 100644 (file)
@@ -1,22 +1,43 @@
 #ifndef LIBR2C2_CLOCK_H_
 #define LIBR2C2_CLOCK_H_
 
+#include <sigc++/signal.h>
+#include <msp/datafile/objectloader.h>
 #include <msp/time/timedelta.h>
 
 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();
 
        void set_rate(float);
+       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