X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Ftimetable.h;h=ec4212e64c459da07895ed4c3958a9a6e67abcd0;hb=77f8c0e033b9b5e7085de5d22a62128a996a5b2a;hp=39cff5ee6b2b14a077445521783ac2039630acd9;hpb=a9180bc4bb7ff4c403e206cc2c785ff32544a0d6;p=r2c2.git diff --git a/source/libmarklin/timetable.h b/source/libmarklin/timetable.h index 39cff5e..ec4212e 100644 --- a/source/libmarklin/timetable.h +++ b/source/libmarklin/timetable.h @@ -10,6 +10,7 @@ Distributed under the GPL #include #include +#include #include #include @@ -18,7 +19,7 @@ namespace Marklin { class Block; class Train; -class Timetable +class Timetable: public sigc::trackable { public: class Loader: public Msp::DataFile::ObjectLoader @@ -50,10 +51,15 @@ public: Row(RowType, int); Row(RowType, const std::string &); + + std::string str() const; + + static Row parse(const std::string &); }; private: Train &train; + bool enabled; std::vector rows; unsigned current_row; bool executing; @@ -63,6 +69,16 @@ private: public: Timetable(Train &); + void set_enabled(bool); + bool is_enabled() const { return enabled; } + void reset(); + + void clear(); + void append(const Row &); + void insert(unsigned, const Row &); + unsigned get_n_rows() const { return rows.size(); } + const Row &get_row(unsigned) const; + void tick(const Msp::Time::TimeStamp &); void save(std::list &) const; private: