vnc: Initial binder service

Use aidl-cpp to generate binder boilerplate from an initial
interface description. This will allow configuring the service
from within Android.
diff --git a/src/VNCService.h b/src/VNCService.h
new file mode 100644
index 0000000..6362798
--- /dev/null
+++ b/src/VNCService.h
@@ -0,0 +1,50 @@
+#include "org/chemlab/BnVNCService.h"
+
+#include "VNCFlinger.h"
+
+namespace android {
+
+class VNCService : public org::chemlab::BnVNCService {
+
+public:
+    VNCService(sp<VNCFlinger> flinger) : mVNC(flinger) {}
+
+    binder::Status start(bool* ret) {
+        *ret = mVNC->start();
+        return binder::Status::ok();
+    }
+
+    binder::Status stop(bool* ret) {
+        *ret = mVNC->stop() == NO_ERROR;
+        return binder::Status::ok();
+    }
+
+    binder::Status setPort(int32_t port, bool* ret) {
+        *ret = mVNC->setPort(port) == NO_ERROR;
+        return binder::Status::ok();
+    }
+
+    binder::Status setV4Address(const String16& addr, bool* ret) {
+        *ret = mVNC->setV4Address(String8(addr)) == NO_ERROR;
+        return binder::Status::ok();
+    }
+
+    binder::Status setV6Address(const String16& addr, bool* ret) {
+        *ret = mVNC->setV6Address(String8(addr)) == NO_ERROR;
+        return binder::Status::ok();
+    }
+
+    binder::Status setPassword(const String16& addr, bool* ret) {
+        *ret = mVNC->setPassword(String8(addr)) == NO_ERROR;
+        return binder::Status::ok();
+    }
+
+    binder::Status clearPassword(bool* ret) {
+        *ret = mVNC->clearPassword() == NO_ERROR;
+        return binder::Status::ok();
+    }
+
+private:
+    sp<VNCFlinger> mVNC;
+};
+};