+/* $Id$
+
+This file is part of the MSP Märklin suite
+Copyright © 2007-2008 Mikkosoft Productions, Mikko Rasa
+Distributed under the GPL
+*/
+
#ifndef LIBMARKLIN_SENSOR_H_
#define LIBMARKLIN_SENSOR_H_
#include <list>
#include <map>
-#include <sigc++/sigc++.h>
+#include <sigc++/signal.h>
+#include <msp/time/timestamp.h>
namespace Marklin {
public:
sigc::signal<void, bool> signal_state_changed;
- Sensor(Control &, unsigned);
- unsigned get_address() const { return addr; }
- bool get_state() const { return state; }
private:
- Control &control;
+ Control &control;
unsigned addr;
- bool state;
+ bool state;
+ Msp::Time::TimeStamp off_timeout;
+public:
+ Sensor(Control &, unsigned);
+
+ unsigned get_address() const { return addr; }
+ bool get_state() const { return state; }
+ void tick();
+private:
void sensor_event(unsigned, bool);
};
-typedef std::list<Sensor *> SensorSeq;
-typedef std::map<unsigned, Sensor *> SensorMap;
} // namespace Marklin