X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Flocomotive.h;h=e3cbf7de238770e18dad536fb74dcc7cfc7d7d95;hb=ae0600f7c3df5b6ef46992b1423888dd0e9a5026;hp=4188df5e809dd3cbf756dbfc4b070700a900c8d3;hpb=52cbe8d99669f843f8f75c51128e2748584dd03a;p=r2c2.git diff --git a/source/libmarklin/locomotive.h b/source/libmarklin/locomotive.h index 4188df5..e3cbf7d 100644 --- a/source/libmarklin/locomotive.h +++ b/source/libmarklin/locomotive.h @@ -1,3 +1,10 @@ +/* $Id$ + +This file is part of the MSP Märklin suite +Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa +Distributed under the GPL +*/ + #ifndef LIBMARKLIN_LOCOMOTIVE_H_ #define LIBMARKLIN_LOCOMOTIVE_H_ @@ -9,13 +16,26 @@ namespace Marklin { class Control; +class LocoType; +class Reply; class Locomotive { +private: + const LocoType &type; + Control &control; + unsigned addr; + unsigned speed; + bool reverse; + unsigned funcs; + public: sigc::signal signal_speed_changed; + sigc::signal signal_function_changed; + + Locomotive(const LocoType &, Control &, unsigned); - Locomotive(Control &, unsigned); + const LocoType &get_type() const { return type; } void set_speed(unsigned); void set_reverse(bool); void set_function(unsigned, bool); @@ -25,14 +45,8 @@ public: bool get_function(unsigned f) const { return (funcs>>f)&1; } void refresh_status(); private: - Control &control; - unsigned addr; - unsigned speed; - bool reverse; - unsigned funcs; - void send_command(bool); - void status_reply(Error, const std::string &); + void status_reply(const Reply &); bool reverse_timeout(); };