Add DaydreamVR native libraries and services
Upstreaming the main VR system components from master-dreamos-dev
into goog/master.
Bug: None
Test: `m -j32` succeeds. Sailfish boots and basic_vr sample app works
Change-Id: I853015872afc443aecee10411ef2d6b79184d051
diff --git a/services/vr/virtual_touchpad/main.cpp b/services/vr/virtual_touchpad/main.cpp
new file mode 100644
index 0000000..57471c5
--- /dev/null
+++ b/services/vr/virtual_touchpad/main.cpp
@@ -0,0 +1,36 @@
+#include <binder/IPCThreadState.h>
+#include <binder/IServiceManager.h>
+#include <binder/ProcessState.h>
+#include <cutils/log.h>
+
+#include "VirtualTouchpadService.h"
+
+int main() {
+ ALOGI("Starting");
+ android::dvr::VirtualTouchpad touchpad;
+ android::dvr::VirtualTouchpadService touchpad_service(touchpad);
+ const int touchpad_status = touchpad_service.Initialize();
+ if (touchpad_status) {
+ ALOGE("virtual touchpad initialization failed: %d", touchpad_status);
+ exit(1);
+ }
+
+ signal(SIGPIPE, SIG_IGN);
+ android::sp<android::ProcessState> ps(android::ProcessState::self());
+ ps->setThreadPoolMaxThreadCount(4);
+ ps->startThreadPool();
+ ps->giveThreadPoolName();
+
+ android::sp<android::IServiceManager> sm(android::defaultServiceManager());
+ const android::status_t service_status =
+ sm->addService(android::String16(touchpad_service.getServiceName()),
+ &touchpad_service, false /*allowIsolated*/);
+ if (service_status != android::OK) {
+ ALOGE("virtual touchpad service not added: %d",
+ static_cast<int>(service_status));
+ exit(2);
+ }
+
+ android::IPCThreadState::self()->joinThreadPool();
+ return 0;
+}