X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Ftrafficmanager.cpp;h=49dda42954d05ccdcb8b58f067899743111c4dbf;hb=02c9a9779954d993cb73fe5f7a72b0847e87f633;hp=96cb269aaf37b42c8e88c7f16ff09087e59b1c33;hpb=dcc8378d809e5d2e53db77234559b0556195e693;p=r2c2.git diff --git a/source/libmarklin/trafficmanager.cpp b/source/libmarklin/trafficmanager.cpp index 96cb269..49dda42 100644 --- a/source/libmarklin/trafficmanager.cpp +++ b/source/libmarklin/trafficmanager.cpp @@ -31,7 +31,7 @@ TrafficManager::TrafficManager(Control &c, Layout &l): for(set::const_iterator i=tracks.begin(); i!=tracks.end(); ++i) { if(unsigned tid=(*i)->get_turnout_id()) - new Turnout(control, tid, (*i)->get_type().get_n_routes()>=3); + new Turnout(control, tid, (*i)->get_type().get_n_paths()>=3); if(unsigned sid=(*i)->get_sensor_id()) if(!control.get_sensors().count(sid)) new Sensor(control, sid); @@ -58,6 +58,15 @@ TrafficManager::~TrafficManager() delete *i; } +Block &TrafficManager::get_block(unsigned id) const +{ + for(list::const_iterator i=blocks.begin(); i!=blocks.end(); ++i) + if((*i)->get_id()==id) + return **i; + + throw KeyError("Unknown block", lexical_cast(id)); +} + Block &TrafficManager::get_block_by_track(const Track &t) const { for(list::const_iterator i=blocks.begin(); i!=blocks.end(); ++i) @@ -115,7 +124,7 @@ void TrafficManager::save(const string &fn) const } } -void TrafficManager::turnout_route_changed(unsigned, Turnout *) +void TrafficManager::turnout_path_changed(unsigned, Turnout *) { }