sigc::signal<void, const std::string &> signal_name_changed;
sigc::signal<void, const std::string &, float> signal_control_changed;
sigc::signal<void, unsigned, bool> signal_function_changed;
+ sigc::signal<void, float> signal_target_speed_changed;
+ sigc::signal<void, bool> signal_reverse_changed;
sigc::signal<void, const std::string &> signal_route_changed;
sigc::signal<void, const std::string &> signal_status_changed;
unsigned address;
std::string name;
std::map<std::string, float> controls;
+ float target_speed;
+ bool reverse;
unsigned functions;
std::string route;
std::string status;
const std::string &get_name() const { return name; }
void set_control(const std::string &, float);
float get_control(const std::string &) const;
+ void set_target_speed(float);
+ void set_reverse(bool);
+ float get_target_speed() const { return target_speed; }
+ bool get_reverse() const { return reverse; }
void set_function(unsigned, bool);
bool get_function(unsigned i) const { return (functions>>i)&1; }
void set_route(const std::string &);
void process_packet(const TrainControlPacket &);
void process_packet(const TrainFunctionPacket &);
+ void process_packet(const TrainAIControlPacket &);
void process_packet(const TrainRoutePacket &);
void process_packet(const TrainStatusPacket &);
};