]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/arducontrol.h
Refer to things in the driver with abstract ids instead of addresses
[r2c2.git] / source / libr2c2 / arducontrol.h
index cbdecad3a27513c70bb0e168b661d1bd6349a2e8..f0c14f948219afce5bea6c4e2a2559d8a606f375 100644 (file)
@@ -52,7 +52,7 @@ private:
                Type type;
                unsigned char command;
                unsigned short serial;
-               unsigned address;
+               unsigned id;
 
                Tag();
 
@@ -95,6 +95,7 @@ private:
                        FUNCTIONS
                };
 
+               unsigned id;
                Protocol proto;
                unsigned address;
                ControlledVariable<unsigned> speed;
@@ -216,7 +217,7 @@ private:
 public:
        virtual unsigned get_protocol_speed_steps(const std::string &) const;
 
-       virtual void add_loco(unsigned, const std::string &, const VehicleType &);
+       virtual unsigned 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);
@@ -228,24 +229,24 @@ private:
        void advance_next_refresh();
 
 public:
-       virtual void add_turnout(unsigned, const TrackType &);
+       virtual unsigned 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 unsigned add_signal(unsigned, const SignalType &);
        virtual void remove_signal(unsigned);
        virtual void set_signal(unsigned, unsigned);
        virtual unsigned get_signal(unsigned) const;
 
 private:
-       void add_accessory(Accessory::Kind, unsigned, unsigned);
+       unsigned add_accessory(Accessory::Kind, unsigned, unsigned);
        void remove_accessory(Accessory::Kind, unsigned);
        void set_accessory(Accessory::Kind, unsigned, unsigned);
        unsigned get_accessory(Accessory::Kind, unsigned) const;
 
 public:
-       virtual void add_sensor(unsigned);
+       virtual unsigned add_sensor(unsigned);
        virtual void remove_sensor(unsigned);
        virtual void set_sensor(unsigned, bool) { }
        virtual bool get_sensor(unsigned) const;