--- /dev/null
+#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