]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/turnout.cpp
Measure and display train speeds
[r2c2.git] / source / libmarklin / turnout.cpp
index eca9ae2f90ee6eca92a7f60c4346ca57a024af3a..6f90d47fe1d904182e73284ef0e80662acb3c6e3 100644 (file)
@@ -15,7 +15,7 @@ Turnout::Turnout(Control &c, unsigned a):
        addr(a),
        route(0)
 {
-       control.add_turnout(this);
+       control.add_turnout(*this);
 
        control.signal_turnout_event.connect(sigc::mem_fun(this, &Turnout::turnout_event));
 
@@ -23,7 +23,7 @@ Turnout::Turnout(Control &c, unsigned a):
        cmd[0]=CMD_TURNOUT_STATUS;
        cmd[1]=addr&0xFF;
        cmd[2]=(addr>>8)&0xFF;
-       control.command(string(cmd,3)).signal_done.connect(sigc::mem_fun(this, &Turnout::status_reply));
+       control.command(string(cmd, 3)).signal_done.connect(sigc::mem_fun(this, &Turnout::status_reply));
 }
 
 void Turnout::set_route(unsigned r)
@@ -31,7 +31,7 @@ void Turnout::set_route(unsigned r)
        route=r;
 
        command(true);
-       (new Time::Timer(200*Time::msec))->signal_timeout.connect(sigc::mem_fun(this, &Turnout::switch_timeout));
+       control.set_timer(200*Time::msec).signal_timeout.connect(sigc::mem_fun(this, &Turnout::switch_timeout));
 
        signal_route_changed.emit(route);
 }
@@ -46,7 +46,7 @@ void Turnout::command(bool on)
                cmd[2]|=0x40;
        if(route==0)
                cmd[2]|=0x80;
-       control.command(string(cmd,3));
+       control.command(string(cmd, 3));
 }
 
 void Turnout::status_reply(Error err, const string &reply)