]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/dummy.cpp
Generate loco events from the Dummy driver
[r2c2.git] / source / libmarklin / dummy.cpp
index 1a7dd365ca2a2a2598425531e684ae0803fb7854..99e97933879accb2eacf4e3994451d66914a89ee 100644 (file)
@@ -28,8 +28,11 @@ void Dummy::add_turnout(unsigned addr)
 
 void Dummy::set_turnout(unsigned addr, bool state)
 {
-       turnouts[addr] = state;
-       signal_turnout.emit(addr, state);
+       if(turnouts[addr]!=state)
+       {
+               turnouts[addr] = state;
+               signal_turnout.emit(addr, state);
+       }
 }
 
 bool Dummy::get_turnout(unsigned addr) const
@@ -40,4 +43,23 @@ bool Dummy::get_turnout(unsigned addr) const
        return false;
 }
 
+void Dummy::set_loco_speed(unsigned addr, unsigned speed)
+{
+       LocoState &loco = locos[addr];
+       loco.speed = speed;
+       signal_loco_speed.emit(addr, speed, loco.reverse);
+}
+
+void Dummy::set_loco_reverse(unsigned addr, bool rev)
+{
+       LocoState &loco = locos[addr];
+       loco.reverse = rev;
+       signal_loco_speed.emit(addr, loco.speed, rev);
+}
+
+void Dummy::set_loco_function(unsigned addr, unsigned func, bool state)
+{
+       signal_loco_function.emit(addr, func, state);
+}
+
 } // namespace Marklin