X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Ftrain.h;h=23bd3cc1b09405fedfae44d62af17e10a40a8f6b;hb=06c100aacb559fbbe7380e15981c4772092c269b;hp=363fb5572c9184dde7a64e339815f3fbe4f28983;hpb=6c61179fe09af2f5366d50f10aadbf5f83438087;p=r2c2.git diff --git a/source/libmarklin/train.h b/source/libmarklin/train.h index 363fb55..23bd3cc 100644 --- a/source/libmarklin/train.h +++ b/source/libmarklin/train.h @@ -1,8 +1,9 @@ #ifndef LIBMARKLIN_TRAIN_H_ #define LIBMARKLIN_TRAIN_H_ +#include #include -#include "section.h" +#include "block.h" namespace Marklin { @@ -12,27 +13,31 @@ class TrafficManager; class Train: public sigc::trackable { public: + sigc::signal signal_name_changed; + Train(TrafficManager &, Locomotive &); - const std::string &get_name() const { return name; } + void set_name(const std::string &); void set_speed(unsigned); - void place(Section *, const Section::Endpoint *); - bool free_section(Section *); + const std::string &get_name() const { return name; } + Locomotive &get_locomotive() const { return loco; } + void place(Block *, const Block::Endpoint *); + bool free_block(Block *); void tick(); private: - struct SectionRef + struct BlockRef { - Section *section; - const Section::Endpoint *entry; + Block *block; + const Block::Endpoint *entry; - SectionRef(Section *s, const Section::Endpoint *e): section(s), entry(e) { } + BlockRef(Block *s, const Block::Endpoint *e): block(s), entry(e) { } }; - typedef std::list SectRefSeq; + typedef std::list BlockRefSeq; TrafficManager &trfc_mgr; std::string name; Locomotive &loco; - SectRefSeq cur_sections; - SectRefSeq rsv_sections; + BlockRefSeq cur_blocks; + BlockRefSeq rsv_blocks; unsigned target_speed; void sensor_event(unsigned, bool);