1 #include <msp/strings/formatter.h>
5 #include "trainstatus.h"
10 #include <msp/io/print.h>
14 TrainStatus::TrainStatus(Train &t):
21 void TrainStatus::tick(const Time::TimeStamp &, const Time::TimeDelta &)
26 void TrainStatus::check()
28 float scale = train.get_layout().get_catalogue().get_scale();
29 int s = static_cast<int>(train.get_quantized_speed()*3.6/scale+0.5);
30 if(s==0 && train.is_active())
37 status = format("Traveling %d kmh", s);
38 if(unsigned step = train.get_speed_step())
39 status += format(" (%d)", step);
43 else if(!train.get_vehicle(0).get_track())
50 signal_changed.emit(status);
51 signal_event.emit(Message("status-changed", status));