X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fintellibox.h;h=4740a1ec6d6f2ccb611a5b5d2b4913eaaca5c37e;hb=4529bf980cf3558d86c07266de7d890d3f5e06a6;hp=e35da477236a6bc59e80d2d466678f39b380dd6e;hpb=3e3675f8d86b06cdea7df197dfe8866ffb285aec;p=r2c2.git diff --git a/source/libr2c2/intellibox.h b/source/libr2c2/intellibox.h index e35da47..4740a1e 100644 --- a/source/libr2c2/intellibox.h +++ b/source/libr2c2/intellibox.h @@ -85,6 +85,7 @@ private: Locomotive(); }; + // These are used for signals as well, but Intellibox calls them turnouts. struct Turnout { unsigned bits; @@ -93,6 +94,7 @@ private: bool synced; unsigned pending; Msp::Time::TimeStamp off_timeout; + bool signal; Turnout(); }; @@ -140,14 +142,18 @@ public: 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; - // TODO implement these - virtual void add_signal(unsigned, const SignalType &) { } - virtual void set_signal(unsigned, unsigned) { } - virtual unsigned get_signal(unsigned) const { return 0; } + 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;