vnc: More cleanup, improved reliability, and bugfixes

 * Eliminate unnecessary locking
 * FIx a few state issues after clients disconnect
 * Add frame timing - I don't think we can go faster
   without additional optimizations in libvncserver
 * Organize stuff a little better
diff --git a/src/VNCFlinger.h b/src/VNCFlinger.h
index 1fa7437..fe4a34b 100644
--- a/src/VNCFlinger.h
+++ b/src/VNCFlinger.h
@@ -21,9 +21,10 @@
 #include <gui/CpuConsumer.h>
 #include <ui/DisplayInfo.h>
 
-#include "rfb/rfb.h"
+#include <rfb/rfb.h>
 
 #define VNC_PORT 5901
+#define NUM_BUFS 1
 
 namespace android {
 
@@ -65,7 +66,7 @@
 
     virtual bool isDeviceRotated(int orientation);
     virtual bool updateDisplayProjection();
-    virtual status_t updateFBSize(int width, int height, int stride);
+    virtual bool updateFBSize(CpuConsumer::LockedBuffer& buf);
 
     // vncserver callbacks
     static ClientGoneHookPtr onClientGone(rfbClientPtr cl);
@@ -87,12 +88,15 @@
 
     Condition mEventCond;
 
-    int mWidth, mHeight, mOrientation;
+    uint32_t mWidth, mHeight;
+    int32_t mOrientation;
 
     size_t mClientCount;
 
-    // Framebuffer
-    uint8_t* mVNCBuf;
+    // Framebuffers
+    uint64_t mFrameNumber;
+    uint64_t mFrameSize;
+    nsecs_t mFrameStartWhen;
 
     // Server instance
     rfbScreenInfoPtr mVNCScreen;