]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/arducontrol.h
Avoid invalid states when setting multi-bit accessories
[r2c2.git] / source / libr2c2 / arducontrol.h
index 8d27a2f572d74e561acdbc0266dc20561a777f8c..ad14e2d4239a5182f6223b70ae3f7bea9ac88ab3 100644 (file)
@@ -173,12 +173,13 @@ private:
                Kind kind;
                unsigned address;
                unsigned bits;
+               unsigned valid_states;
                ControlledVariable<unsigned> state;
                unsigned uncertain;
                unsigned target;
                Msp::Time::TimeDelta active_time;
 
-               Accessory(Kind, unsigned, unsigned);
+               Accessory(Kind, unsigned, unsigned, unsigned);
 
                unsigned create_state_command(unsigned, bool, char *) const;
        };
@@ -433,10 +434,11 @@ public:
        virtual unsigned get_signal(unsigned) const;
 
 private:
-       unsigned add_accessory(Accessory::Kind, unsigned, unsigned);
+       unsigned add_accessory(Accessory::Kind, unsigned, unsigned, unsigned);
        void remove_accessory(Accessory::Kind, unsigned);
        void set_accessory(Accessory::Kind, unsigned, unsigned);
        unsigned get_accessory(Accessory::Kind, unsigned) const;
+       void activate_accessory_by_mask(Accessory &, unsigned);
 
 public:
        virtual unsigned add_sensor(unsigned);