vnc: Add some command line options and enable auth

 * Parse ipv4/v6 address and port
 * Allow setting or clearing of the server password
diff --git a/src/VNCFlinger.h b/src/VNCFlinger.h
index fe4a34b..7433f0c 100644
--- a/src/VNCFlinger.h
+++ b/src/VNCFlinger.h
@@ -20,18 +20,18 @@
 
 #include <gui/CpuConsumer.h>
 #include <ui/DisplayInfo.h>
+#include <utils/String8.h>
 
 #include <rfb/rfb.h>
 
-#define VNC_PORT 5901
+#define VNC_AUTH_FILE "/data/system/vncauth"
 #define NUM_BUFS 1
 
 namespace android {
 
-class VNCFlinger {
+class VNCFlinger : public RefBase {
   public:
-    VNCFlinger(int argc, char** argv) : mArgc(argc), mArgv(argv), mOrientation(-1) {
-    }
+    VNCFlinger();
 
     virtual ~VNCFlinger() {
     }
@@ -42,6 +42,12 @@
     virtual size_t addClient();
     virtual size_t removeClient();
 
+    virtual status_t setListenAddress(String8& address, bool v6);
+    virtual status_t setPort(unsigned int port);
+
+    virtual status_t clearPassword();
+    virtual status_t setPassword(String8& passwd);
+
   private:
     class FrameListener : public CpuConsumer::FrameAvailableListener {
       public:
@@ -60,7 +66,9 @@
 
     virtual status_t createVirtualDisplay();
     virtual status_t destroyVirtualDisplayLocked();
+
     virtual status_t createVNCServer();
+    virtual status_t startVNCServer();
 
     virtual void processFrame();
 
@@ -75,9 +83,6 @@
     static void onFrameDone(rfbClientPtr cl, int result);
     static void rfbLogger(const char* format, ...);
 
-    int mArgc;
-    char** mArgv;
-
     bool mRunning;
     bool mFrameAvailable;
     bool mRotate;