Chromium Code Reviews| Index: device/vr/android/gvr/gvr_gamepad_data_provider.h |
| diff --git a/device/vr/android/gvr/gvr_gamepad_data_provider.h b/device/vr/android/gvr/gvr_gamepad_data_provider.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..b7c17ab64859c0d404d942cb2127cb02f9f8a528 |
| --- /dev/null |
| +++ b/device/vr/android/gvr/gvr_gamepad_data_provider.h |
| @@ -0,0 +1,41 @@ |
| +// Copyright 2017 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef DEVICE_VR_ANDROID_GVR_GAMEPAD_DATA_PROVIDER_H |
| +#define DEVICE_VR_ANDROID_GVR_GAMEPAD_DATA_PROVIDER_H |
| + |
| +#include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/gvr.h" |
|
cjgrant
2017/03/21 15:55:38
Is it only gvr_types.h needed here?
klausw
2017/03/21 16:55:56
Indeed, done.
|
| + |
| +namespace device { |
| + |
| +// Subset of GVR controller data needed for the gamepad API. Filled in |
| +// by vr_shell's VrController and consumed by GvrGamepaDataFetcher. |
| +struct GvrGamepadData { |
| + int64_t timestamp; |
| + gvr_vec2f touch_pos; |
| + gvr_quatf orientation; |
| + gvr_vec3f accel; |
| + gvr_vec3f gyro; |
| + bool is_touching; |
| + bool controller_button_pressed; |
| + bool right_handed; |
| +}; |
| + |
| +// This class exposes GVR controller data to the gamepad API. Data is |
| +// polled by VrShellGl, then posted to VrShell which implements the |
| +// GvrGamepadDataProvider interface. |
| +class GvrGamepadDataProvider { |
| + public: |
| + // Refresh current GVR controller data for use by gamepad API. |
| + // Also lazily creates and registers the gamepad data factory |
| + // with the gamepad manager as needed. |
| + virtual void GamepadDataUpdate(GvrGamepadData data) = 0; |
| + |
| + // Called by the gamepad data fetcher to retrieve the latest snapshot |
| + // of controller data. |
| + virtual GvrGamepadData GamepadDataGet() = 0; |
| +}; |
| + |
| +} // namespace device |
| +#endif // DEVICE_VR_ANDROID_GVR_GAMEPAD_DATA_PROVIDER_H |