]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/dummy.cpp
Make LCD output selectable at runtime through an extra I/O pin
[r2c2.git] / source / libmarklin / dummy.cpp
index 99e97933879accb2eacf4e3994451d66914a89ee..da6c5c97cb630874db1889afcbd0476365016b7f 100644 (file)
@@ -21,6 +21,18 @@ void Dummy::set_power(bool p)
        signal_power.emit(power);
 }
 
+const char *Dummy::enumerate_protocols(unsigned i) const
+{
+       if(i==0)
+               return "dummy";
+       return 0;
+}
+
+unsigned Dummy::get_protocol_speed_steps(const string &) const
+{
+       return 0;
+}
+
 void Dummy::add_turnout(unsigned addr)
 {
        turnouts[addr];
@@ -62,4 +74,21 @@ void Dummy::set_loco_function(unsigned addr, unsigned func, bool state)
        signal_loco_function.emit(addr, func, state);
 }
 
+void Dummy::set_sensor(unsigned addr, bool state)
+{
+       if(sensors[addr]!=state)
+       {
+               sensors[addr] = state;
+               signal_sensor.emit(addr, state);
+       }
+}
+
+bool Dummy::get_sensor(unsigned addr) const
+{
+       map<unsigned, bool>::const_iterator i = sensors.find(addr);
+       if(i!=sensors.end())
+               return i->second;
+       return false;
+}
+
 } // namespace Marklin