]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/driver.h
Framework for supporting multiple control protocols in a single driver
[r2c2.git] / source / libmarklin / driver.h
index 9cab5cf9ebe4f97b48933b511d28d274fffb6aeb..f8d8f9c4e1d576b381830001fe5ac889f2aaec09 100644 (file)
@@ -17,6 +17,7 @@ class Driver
 {
 public:
        sigc::signal<void, bool> signal_power;
+       sigc::signal<void, bool> signal_halt;
        sigc::signal<void, unsigned, unsigned, bool> signal_loco_speed;
        sigc::signal<void, unsigned, unsigned, bool> signal_loco_function;
        sigc::signal<void, unsigned, bool> signal_turnout;
@@ -29,8 +30,12 @@ public:
 
        virtual void set_power(bool) = 0;
        virtual bool get_power() const = 0;
+       virtual void halt(bool) = 0;
+       virtual bool is_halted() const = 0;
 
-       virtual void add_loco(unsigned) = 0;
+       virtual const char *enumerate_protocols(unsigned) const = 0;
+       virtual unsigned get_protocol_speed_steps(const std::string &) const = 0;
+       virtual void add_loco(unsigned, const std::string &) = 0;
        virtual void set_loco_speed(unsigned, unsigned) = 0;
        virtual void set_loco_reverse(unsigned, bool) = 0;
        virtual void set_loco_function(unsigned, unsigned, bool) = 0;