X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Fengineer.cpp;h=e0d45b0e00f7719cd3626a352533c6ea12227cc4;hb=39566dc89cdadf4f6e701a14b5d9049f22b591fb;hp=08e1466893f209a445c6d69e49c2fe03136209ee;hpb=38fb8d56efde037a71c46a58bda314655e68ab6c;p=r2c2.git diff --git a/source/engineer/engineer.cpp b/source/engineer/engineer.cpp index 08e1466..e0d45b0 100644 --- a/source/engineer/engineer.cpp +++ b/source/engineer/engineer.cpp @@ -20,6 +20,7 @@ Distributed under the GPL #include #include #include +#include #include "libmarklin/except.h" #include "libmarklin/tracktype.h" #include "engineer.h" @@ -37,6 +38,7 @@ Engineer::Engineer(int argc, char **argv): fullscreen(false), layout(catalogue), layout_3d(layout), + server(0), train_prop(0), train_prop_stale(false), placing_train(0), @@ -49,6 +51,7 @@ Engineer::Engineer(int argc, char **argv): bool debug = false; string device = "/dev/ttyS0"; unsigned quality = 4; + bool network = false; GetOpt getopt; getopt.add_option('r', "resolution", res, GetOpt::REQUIRED_ARG); @@ -57,6 +60,7 @@ Engineer::Engineer(int argc, char **argv): getopt.add_option('d', "device", device, GetOpt::REQUIRED_ARG); getopt.add_option('q', "quality", quality, GetOpt::REQUIRED_ARG); getopt.add_option('s', "simulate", simulate, GetOpt::NO_ARG); + getopt.add_option('n', "network", network, GetOpt::NO_ARG); getopt.add_option( "no-lighting", no_lighting, GetOpt::NO_ARG); getopt(argc, argv); @@ -91,6 +95,12 @@ Engineer::Engineer(int argc, char **argv): if(FS::exists("engineer.state")) DataFile::load(*trfc_mgr, "engineer.state"); + if(network) + { + server = new Server(*trfc_mgr); + server->use_event_dispatcher(event_disp); + } + const map &sensors = control.get_sensors(); for(map::const_iterator i=sensors.begin(); i!=sensors.end(); ++i) i->second->signal_state_changed.connect(sigc::bind(sigc::mem_fun(this, &Engineer::sensor_event), i->second)); @@ -110,6 +120,7 @@ void Engineer::add_train() train_prop = new TrainProperties(*this, ui_res, 0); root->add(*train_prop); train_prop->signal_ok.connect(sigc::mem_fun(this, &Engineer::dismiss_train_prop)); + train_prop->signal_cancel.connect(sigc::mem_fun(this, &Engineer::dismiss_train_prop)); train_prop_stale = false; train_prop->set_visible(true); } @@ -212,6 +223,7 @@ void Engineer::tick() control.tick(); trfc_mgr->tick(); + event_disp.tick(Time::zero); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);