+/* $Id$
+
+This file is part of the MSP Märklin suite
+Copyright © 2006-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 {
class Sensor
{
+private:
+ Control &control;
+ unsigned addr;
+ bool state;
+ Msp::Time::TimeStamp off_timeout;
+
public:
sigc::signal<void, bool> signal_state_changed;
Sensor(Control &, unsigned);
+
unsigned get_address() const { return addr; }
bool get_state() const { return state; }
+ void tick();
private:
- Control &control;
- unsigned addr;
- bool state;
-
void sensor_event(unsigned, bool);
};
-typedef std::list<Sensor *> SensorSeq;
-typedef std::map<unsigned, Sensor *> SensorMap;
} // namespace Marklin