Locomotive();
};
+ // These are used for signals as well, but Intellibox calls them turnouts.
struct Turnout
{
unsigned bits;
bool synced;
unsigned pending;
Msp::Time::TimeStamp off_timeout;
+ bool signal;
Turnout();
};
virtual void set_loco_function(unsigned, unsigned, bool);
virtual void add_turnout(unsigned, const TrackType &);
+private:
+ void add_turnout(unsigned, unsigned, bool);
+ void turnout_state_changed(unsigned, const Turnout &) const;
+public:
virtual void set_turnout(unsigned, unsigned);
virtual unsigned get_turnout(unsigned) const;
+ virtual void add_signal(unsigned, const SignalType &);
+ virtual void set_signal(unsigned, unsigned);
+ virtual unsigned get_signal(unsigned) const;
+
+public:
virtual void add_sensor(unsigned);
virtual void set_sensor(unsigned, bool) { }
virtual bool get_sensor(unsigned) const;