Initial import of VNCFlinger
diff --git a/src/VNCFlinger.h b/src/VNCFlinger.h
new file mode 100644
index 0000000..45057b5
--- /dev/null
+++ b/src/VNCFlinger.h
@@ -0,0 +1,58 @@
+#ifndef VNCFLINGER_H
+#define VNCFLINGER_H
+
+#include "EventQueue.h"
+#include "VirtualDisplay.h"
+
+#include <ui/DisplayInfo.h>
+
+#include "rfb/rfb.h"
+
+#define VNC_PORT 5901
+
+namespace android {
+
+class VNCFlinger : public EventListener {
+public:
+ VNCFlinger(int argc, char **argv) :
+ mArgc(argc),
+ mArgv(argv),
+ mClientCount(0) {
+ }
+
+ virtual void onEvent(const Event& event);
+
+ virtual status_t start();
+ virtual status_t stop();
+
+ static EventQueue *sQueue;
+
+private:
+ virtual status_t setup_l();
+ virtual void release_l();
+
+ static ClientGoneHookPtr onClientGone(rfbClientPtr cl);
+ static enum rfbNewClientAction onNewClient(rfbClientPtr cl);
+ static void rfbLogger(const char *format, ...);
+
+ rfbScreenInfoPtr mVNCScreen;
+ uint8_t *mVNCBuf;
+
+ uint32_t mWidth, mHeight;
+ bool mRotate;
+
+ sp<IBinder> mMainDpy;
+ DisplayInfo mMainDpyInfo;
+
+ Mutex mMutex;
+
+ sp<VirtualDisplay> mVirtualDisplay;
+
+ int mArgc;
+ char **mArgv;
+
+ size_t mClientCount;
+};
+
+};
+#endif