]> git.tdb.fi Git - r2c2.git/blobdiff - source/remote/remote.h
Add a new remote control program with GLtk-based UI
[r2c2.git] / source / remote / remote.h
diff --git a/source/remote/remote.h b/source/remote/remote.h
new file mode 100644 (file)
index 0000000..bff56ed
--- /dev/null
@@ -0,0 +1,39 @@
+#ifndef REMOTE_H_
+#define REMOTE_H_
+
+#include <msp/core/application.h>
+#include <msp/gltk/resources.h>
+#include <msp/gltk/root.h>
+#include <msp/graphics/simplewindow.h>
+#include <msp/io/eventdispatcher.h>
+#include <msp/time/timestamp.h>
+#include "network/client.h"
+#include "statusbar.h"
+#include "trainpanel.h"
+#include "trainselector.h"
+
+class Remote: public Msp::RegisteredApplication<Remote>
+{
+private:
+       Msp::Graphics::SimpleGLWindow window;
+       R2C2::Catalogue catalogue;
+       R2C2::Client client;
+       Msp::IO::EventDispatcher ev_disp;
+       Msp::GLtk::Resources ui_resources;
+       Msp::GLtk::Root root;
+       Msp::GLtk::Layout *root_layout;
+       TrainSelector *selectors[2];
+       TrainPanel *panels[2];
+       StatusBar status_bar;
+       Msp::Time::TimeStamp next_frame;
+
+public:
+       Remote(int, char **);
+
+       virtual int main();
+private:
+       virtual void tick();
+       void train_selected(R2C2::NetTrain *, unsigned);
+};
+
+#endif