summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Craig Donner <cdonner@google.com> 2016-10-14 18:08:37 -0700
committer Craig Donner <cdonner@google.com> 2016-10-20 10:19:55 -0700
commit9f91152c56ffbe740e695967db436bc830f99154 (patch)
tree58be159958e488ea3c7060f68de8e1c1ddf0dd9d
parent047f5a7b4f528f287a2dad494b8696525b27ad80 (diff)
Use VR hal in VrManagerService.
Bug: 31442830 Test: make all and tested VR mode on a device. Change-Id: I8d79769a54e5523834569485571676bf6a140313
-rw-r--r--services/core/jni/Android.mk1
-rw-r--r--services/core/jni/com_android_server_vr_VrManagerService.cpp27
2 files changed, 13 insertions, 15 deletions
diff --git a/services/core/jni/Android.mk b/services/core/jni/Android.mk
index d328ade5d66f..121067a9f229 100644
--- a/services/core/jni/Android.mk
+++ b/services/core/jni/Android.mk
@@ -70,3 +70,4 @@ LOCAL_SHARED_LIBRARIES += \
android.hardware.power@1.0 \
android.hardware.vibrator@1.0 \
android.hardware.light@2.0 \
+ android.hardware.vr@1.0 \
diff --git a/services/core/jni/com_android_server_vr_VrManagerService.cpp b/services/core/jni/com_android_server_vr_VrManagerService.cpp
index 1aba43b2cd8b..e06e051cc870 100644
--- a/services/core/jni/com_android_server_vr_VrManagerService.cpp
+++ b/services/core/jni/com_android_server_vr_VrManagerService.cpp
@@ -20,44 +20,41 @@
#include <jni.h>
#include <JNIHelp.h>
+#include <android/hardware/vr/1.0/IVr.h>
#include <utils/Errors.h>
#include <utils/Log.h>
-#include <hardware/hardware.h>
-#include <hardware/vr.h>
namespace android {
-static vr_module_t *gVrHardwareModule = NULL;
+using ::android::hardware::vr::V1_0::IVr;
+static sp<IVr> gVr;
static void init_native(JNIEnv* /* env */, jclass /* clazz */) {
- if (gVrHardwareModule != NULL) {
+ // TODO(b/31632518)
+ if (gVr != nullptr) {
// This call path should never be hit.
- ALOGE("%s: May not initialize VR hardware module more than once!", __FUNCTION__);
+ ALOGE("%s: May not initialize IVr interface module more than once!", __FUNCTION__);
return;
}
- int err = hw_get_module(VR_HARDWARE_MODULE_ID, (hw_module_t const**)&gVrHardwareModule);
- if (err) {
- ALOGW("%s: Could not open VR hardware module, error %s (%d).", __FUNCTION__,
- strerror(-err), err);
+ gVr = IVr::getService("vr");
+ if (gVr == nullptr) {
+ ALOGW("%s: Could not open IVr interface", __FUNCTION__);
return;
}
- // Call init method if implemented.
- if (gVrHardwareModule->init) {
- gVrHardwareModule->init(gVrHardwareModule);
- }
+ gVr->init();
}
static void setVrMode_native(JNIEnv* /* env */, jclass /* clazz */, jboolean enabled) {
- if (gVrHardwareModule == NULL) {
+ if (gVr == nullptr) {
// There is no VR hardware module implemented, do nothing.
return;
}
// Call set_vr_mode method, this must be implemented if the HAL exists.
- gVrHardwareModule->set_vr_mode(gVrHardwareModule, static_cast<bool>(enabled));
+ gVr->setVrMode(static_cast<bool>(enabled));
}
static const JNINativeMethod method_table[] = {