#define LIBMARKLIN_CONTROLMODEL_H_
#include <string>
+#include <sigc++/signal.h>
#include <msp/time/timedelta.h>
namespace Marklin {
class ControlModel
{
+public:
+ sigc::signal<void, const std::string &, float> signal_control_changed;
+
protected:
ControlModel() { }
public:
virtual const TrainControl &get_control(const std::string &) const = 0;
virtual float get_speed() const = 0;
+ virtual bool get_reverse() const = 0;
virtual float get_braking_distance() const = 0;
virtual void tick(const Msp::Time::TimeDelta &) = 0;