| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CONTENT_BROWSER_DEVICE_SENSORS_SENSOR_MANAGER_ANDROID_H_ | 5 #ifndef DEVICE_SENSORS_SENSOR_MANAGER_ANDROID_H_ |
| 6 #define CONTENT_BROWSER_DEVICE_SENSORS_SENSOR_MANAGER_ANDROID_H_ | 6 #define DEVICE_SENSORS_SENSOR_MANAGER_ANDROID_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 | 9 |
| 10 #include "base/android/scoped_java_ref.h" | 10 #include "base/android/scoped_java_ref.h" |
| 11 #include "base/macros.h" | 11 #include "base/macros.h" |
| 12 #include "base/synchronization/lock.h" | 12 #include "base/synchronization/lock.h" |
| 13 #include "base/threading/thread_checker.h" | 13 #include "base/threading/thread_checker.h" |
| 14 #include "content/browser/device_sensors/device_sensors_consts.h" | 14 #include "device/sensors/device_sensor_export.h" |
| 15 #include "content/common/content_export.h" | 15 #include "device/sensors/device_sensors_consts.h" |
| 16 #include "device/sensors/public/cpp/device_light_hardware_buffer.h" | 16 #include "device/sensors/public/cpp/device_light_hardware_buffer.h" |
| 17 #include "device/sensors/public/cpp/device_motion_hardware_buffer.h" | 17 #include "device/sensors/public/cpp/device_motion_hardware_buffer.h" |
| 18 #include "device/sensors/public/cpp/device_orientation_hardware_buffer.h" | 18 #include "device/sensors/public/cpp/device_orientation_hardware_buffer.h" |
| 19 | 19 |
| 20 namespace base { | 20 namespace base { |
| 21 template <typename T> | 21 template <typename T> |
| 22 struct DefaultSingletonTraits; | 22 struct DefaultSingletonTraits; |
| 23 } | 23 } |
| 24 | 24 |
| 25 namespace content { | 25 namespace device { |
| 26 | 26 |
| 27 // Android implementation of Device {Motion|Orientation|Light} API. | 27 // Android implementation of Device {Motion|Orientation|Light} API. |
| 28 // | 28 // |
| 29 // Android's SensorManager has a push API, so when Got*() methods are called | 29 // Android's SensorManager has a push API, so when Got*() methods are called |
| 30 // by the system the browser process puts the received data into a shared | 30 // by the system the browser process puts the received data into a shared |
| 31 // memory buffer, which is read by the renderer processes. | 31 // memory buffer, which is read by the renderer processes. |
| 32 class CONTENT_EXPORT SensorManagerAndroid { | 32 class DEVICE_SENSOR_EXPORT SensorManagerAndroid { |
| 33 public: | 33 public: |
| 34 // Must be called at startup, before GetInstance(). | 34 // Must be called at startup, before GetInstance(). |
| 35 static bool Register(JNIEnv* env); | 35 static bool Register(JNIEnv* env); |
| 36 | 36 |
| 37 // Should be called only on the UI thread. | 37 // Should be called only on the UI thread. |
| 38 static SensorManagerAndroid* GetInstance(); | 38 static SensorManagerAndroid* GetInstance(); |
| 39 | 39 |
| 40 // Called from Java via JNI. | 40 // Called from Java via JNI. |
| 41 void GotLight(JNIEnv*, | 41 void GotLight(JNIEnv*, |
| 42 const base::android::JavaParamRef<jobject>&, | 42 const base::android::JavaParamRef<jobject>&, |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 DeviceOrientationHardwareBuffer* buffer); | 79 DeviceOrientationHardwareBuffer* buffer); |
| 80 void StopFetchingDeviceOrientationData(); | 80 void StopFetchingDeviceOrientationData(); |
| 81 | 81 |
| 82 void StartFetchingDeviceOrientationAbsoluteData( | 82 void StartFetchingDeviceOrientationAbsoluteData( |
| 83 DeviceOrientationHardwareBuffer* buffer); | 83 DeviceOrientationHardwareBuffer* buffer); |
| 84 void StopFetchingDeviceOrientationAbsoluteData(); | 84 void StopFetchingDeviceOrientationAbsoluteData(); |
| 85 | 85 |
| 86 void Shutdown(); | 86 void Shutdown(); |
| 87 | 87 |
| 88 // A Java counterpart will be generated for this enum. | 88 // A Java counterpart will be generated for this enum. |
| 89 // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.content.browser | 89 // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.device.sensors |
| 90 // When adding new constants don't modify the order as they are used for UMA. | 90 // When adding new constants don't modify the order as they are used for UMA. |
| 91 enum OrientationSensorType { | 91 enum OrientationSensorType { |
| 92 NOT_AVAILABLE = 0, | 92 NOT_AVAILABLE = 0, |
| 93 ROTATION_VECTOR = 1, | 93 ROTATION_VECTOR = 1, |
| 94 ACCELEROMETER_MAGNETIC = 2, | 94 ACCELEROMETER_MAGNETIC = 2, |
| 95 GAME_ROTATION_VECTOR = 3, | 95 GAME_ROTATION_VECTOR = 3, |
| 96 ORIENTATION_SENSOR_MAX = 4, | 96 ORIENTATION_SENSOR_MAX = 4, |
| 97 }; | 97 }; |
| 98 | 98 |
| 99 protected: | 99 protected: |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 base::Lock motion_buffer_lock_; | 146 base::Lock motion_buffer_lock_; |
| 147 base::Lock orientation_buffer_lock_; | 147 base::Lock orientation_buffer_lock_; |
| 148 base::Lock orientation_absolute_buffer_lock_; | 148 base::Lock orientation_absolute_buffer_lock_; |
| 149 | 149 |
| 150 bool is_shutdown_; | 150 bool is_shutdown_; |
| 151 base::ThreadChecker thread_checker_; | 151 base::ThreadChecker thread_checker_; |
| 152 | 152 |
| 153 DISALLOW_COPY_AND_ASSIGN(SensorManagerAndroid); | 153 DISALLOW_COPY_AND_ASSIGN(SensorManagerAndroid); |
| 154 }; | 154 }; |
| 155 | 155 |
| 156 } // namespace content | 156 } // namespace device |
| 157 | 157 |
| 158 #endif // CONTENT_BROWSER_DEVICE_SENSORS_SENSOR_MANAGER_ANDROID_H_ | 158 #endif // DEVICE_SENSORS_SENSOR_MANAGER_ANDROID_H_ |
| OLD | NEW |