diff options
| author | 2016-10-14 18:08:37 -0700 | |
|---|---|---|
| committer | 2016-10-20 10:19:55 -0700 | |
| commit | 9f91152c56ffbe740e695967db436bc830f99154 (patch) | |
| tree | 58be159958e488ea3c7060f68de8e1c1ddf0dd9d | |
| parent | 047f5a7b4f528f287a2dad494b8696525b27ad80 (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.mk | 1 | ||||
| -rw-r--r-- | services/core/jni/com_android_server_vr_VrManagerService.cpp | 27 |
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[] = { |