3 This file is part of the MSP Märklin suite
4 Copyright © 2010 Mikkosoft Productions, Mikko Rasa
5 Distributed under the GPL
8 #ifndef LIBMARKLIN_AICONTROL_H_
9 #define LIBMARKLIN_AICONTROL_H_
11 #include <sigc++/trackable.h>
12 #include "controller.h"
13 #include "traincontrol.h"
19 class AIControl: public Controller, public sigc::trackable
23 Controller *next_model;
24 TrainControl target_speed;
29 AIControl(Train &, Controller *);
32 virtual void set_control(const std::string &, float);
33 virtual const TrainControl &get_control(const std::string &) const;
35 virtual float get_speed() const;
36 virtual bool get_reverse() const;
37 virtual float get_braking_distance() const;
39 virtual void tick(const Msp::Time::TimeDelta &);
42 void control_changed(const TrainControl &);
46 } // namespace Marklin