]> git.tdb.fi Git - r2c2.git/blob - source/libmarklin/turnout.h
Style fixes, including:
[r2c2.git] / source / libmarklin / turnout.h
1 #ifndef LIBMARKLIN_TURNOUT_H_
2 #define LIBMARKLIN_TURNOUT_H_
3
4 #include <list>
5 #include <map>
6 #include <string>
7 #include <sigc++/sigc++.h>
8 #include "constants.h"
9
10 namespace Marklin {
11
12 class Control;
13
14 class Turnout
15 {
16 private:
17         Control  &control;
18         unsigned addr;
19         unsigned route;
20
21 public:
22         sigc::signal<void, unsigned> signal_route_changed;
23
24         Turnout(Control &, unsigned);
25
26         void     set_route(unsigned);
27         unsigned get_address() const { return addr; }
28         unsigned get_route() const   { return route; }
29 private:
30         void command(bool);
31         void status_reply(Error, const std::string &);
32         bool switch_timeout();
33         void turnout_event(unsigned, bool);
34 };
35
36 } // namespace Marklin
37
38 #endif