]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/track.cpp
Add a set_sensor function to the Driver interface
[r2c2.git] / source / libmarklin / track.cpp
index 250888dd6a8f5aa23f331a1bcf39830c789d3af7..fc365862301c9acfa0734ccd3b510b7a5c6cbe77 100644 (file)
@@ -31,6 +31,8 @@ Track::Track(Layout &l, const TrackType &t):
 
        if(layout.has_driver())
                layout.get_driver().signal_turnout.connect(sigc::mem_fun(this, &Track::turnout_event));
+
+       for(unsigned paths = type.get_paths(); !(paths&1); ++active_path, paths>>=1) ;
 }
 
 Track::~Track()
@@ -102,7 +104,11 @@ void Track::set_turnout_id(unsigned i)
        turnout_id = i;
        layout.create_blocks(*this);
        if(layout.has_driver() && turnout_id)
+       {
                layout.get_driver().add_turnout(turnout_id);
+               if(type.is_double_address())
+                       layout.get_driver().add_turnout(turnout_id+1);
+       }
 }
 
 void Track::set_sensor_id(unsigned i)