]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/dummy.h
Emit signal for control changes initiated by the control model itself
[r2c2.git] / source / libmarklin / dummy.h
index 96b62a89d3bf5cf2e55edc3c14752e45fc7a9c25..3004c8bd1a8f768841bb42bb3df53db757726b3e 100644 (file)
@@ -16,8 +16,16 @@ namespace Marklin {
 class Dummy: public Driver
 {
 private:
+       struct LocoState
+       {
+               unsigned speed;
+               bool reverse;
+       };
+
        bool power;
        std::map<unsigned, bool> turnouts;
+       std::map<unsigned, LocoState> locos;
+       std::map<unsigned, bool> sensors;
 
 public:
        Dummy();
@@ -26,16 +34,17 @@ public:
        virtual bool get_power() const { return power; }
 
        virtual void add_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 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);
        virtual void set_turnout(unsigned, bool);
        virtual bool get_turnout(unsigned) const;
 
        virtual void add_sensor(unsigned) { }
-       virtual bool get_sensor(unsigned) const { return false; }
+       virtual void set_sensor(unsigned, bool);
+       virtual bool get_sensor(unsigned) const;
 
        virtual void tick() { }
        virtual void flush() { }