]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/intellibox.h
Framework for supporting multiple control protocols in a single driver
[r2c2.git] / source / libmarklin / intellibox.h
index c5c7e7af031e4761bd9fbc2fd1dbaef8853167e4..565d3cbd1e23f9bb249f9a9289c389282a31f443 100644 (file)
@@ -63,6 +63,7 @@ private:
 
        struct Locomotive
        {
+               std::string protocol;
                unsigned speed;
                bool reverse;
                unsigned funcs;
@@ -115,7 +116,9 @@ public:
        virtual void halt(bool);
        virtual bool is_halted() const { return halted; }
 
-       virtual void add_loco(unsigned);
+       virtual const char *enumerate_protocols(unsigned) const;
+       virtual unsigned get_protocol_speed_steps(const std::string &) const;
+       virtual void add_loco(unsigned, const std::string &);
        virtual void set_loco_speed(unsigned, unsigned);
        virtual void set_loco_reverse(unsigned, bool);
        virtual void set_loco_function(unsigned, unsigned, bool);