X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fcentralstation.h;h=a34a3e361aeaffe8af82e36cf7e123346c5edad4;hb=26a8dbeae14c685c6aef1aad3aa75c6f1a75e458;hp=ad3d771f312094e3098b9d5aa2979a8b8b1a6498;hpb=4f2b6023dee412373a6a0b13ba4d617ffbb9bb38;p=r2c2.git diff --git a/source/libr2c2/centralstation.h b/source/libr2c2/centralstation.h index ad3d771..a34a3e3 100644 --- a/source/libr2c2/centralstation.h +++ b/source/libr2c2/centralstation.h @@ -72,7 +72,8 @@ private: { enum Type { - TURNOUT + TURNOUT, + SIGNAL }; enum Symbol @@ -81,6 +82,7 @@ private: TURNOUT_RIGHT = 1, TURNOUT_THREEWAY = 2, TURNOUT_DOUBLESLIP = 3, + SEMAPHORE_HOME = 5, TURNOUT_CURVED_LEFT = 21, TURNOUT_CURVED_RIGHT = 22 }; @@ -136,22 +138,31 @@ public: virtual unsigned get_protocol_speed_steps(const std::string &) const; virtual void add_loco(unsigned, const std::string &, const VehicleType &); + virtual void remove_loco(unsigned); virtual void set_loco_speed(unsigned, unsigned); virtual void set_loco_reverse(unsigned, bool); virtual void set_loco_function(unsigned, unsigned, bool); virtual void add_turnout(unsigned, const TrackType &); + virtual void remove_turnout(unsigned); virtual void set_turnout(unsigned, unsigned); virtual unsigned get_turnout(unsigned) const; + virtual void add_signal(unsigned, const SignalType &); + virtual void remove_signal(unsigned); + virtual void set_signal(unsigned, unsigned); + virtual unsigned get_signal(unsigned) const; + private: MagnetAccessory &add_accessory(unsigned, MagnetAccessory::Type, MagnetAccessory::Symbol); + void remove_accessory(unsigned); void set_accessory_state(unsigned, MagnetAccessory::Type, unsigned); unsigned get_accessory_state(unsigned, MagnetAccessory::Type) const; void accessory_state_changed(const MagnetAccessory &) const; public: virtual void add_sensor(unsigned); + virtual void remove_sensor(unsigned); virtual void set_sensor(unsigned, bool) { } virtual bool get_sensor(unsigned) const;