16a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu/* 26a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu * Copyright (C) 2016 The Android Open Source Project 36a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu * 46a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu * Licensed under the Apache License, Version 2.0 (the "License"); 56a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu * you may not use this file except in compliance with the License. 66a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu * You may obtain a copy of the License at 76a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu * 86a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu * http://www.apache.org/licenses/LICENSE-2.0 96a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu * 106a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu * Unless required by applicable law or agreed to in writing, software 116a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu * distributed under the License is distributed on an "AS IS" BASIS, 126a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu * See the License for the specific language governing permissions and 146a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu * limitations under the License. 156a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu */ 166a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu 176a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu#include "SensorServiceUtils.h" 186a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu 196a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu#include <hardware/sensors.h> 206a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu 216a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xunamespace android { 226a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xunamespace SensorServiceUtil { 236a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu 246a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu// Keep in sync with sSensorReportingMode in Sensor.java 256a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xusize_t eventSizeBySensorType(int type) { 266a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu if (type >= SENSOR_TYPE_DEVICE_PRIVATE_BASE) { 276a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu return 16; 286a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu } 296a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu switch (type) { 306a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_POSE_6DOF: 316a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu return 16; 326a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu 336a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_ROTATION_VECTOR: 346a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR: 356a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu return 5; 366a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu 376a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED: 386a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_GYROSCOPE_UNCALIBRATED: 396a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu return 6; 406a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu 416a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_GAME_ROTATION_VECTOR: 426a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu return 4; 436a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu 446a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_SIGNIFICANT_MOTION: 456a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_STEP_DETECTOR: 466a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_STEP_COUNTER: 476a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_HEART_RATE: 486a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_TILT_DETECTOR: 496a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_WAKE_GESTURE: 506a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_GLANCE_GESTURE: 516a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_PICK_UP_GESTURE: 526a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_WRIST_TILT_GESTURE: 536a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_DEVICE_ORIENTATION: 546a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_STATIONARY_DETECT: 556a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_MOTION_DETECT: 566a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu case SENSOR_TYPE_HEART_BEAT: 576a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu return 1; 586a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu 596a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu default: 606a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu return 3; 616a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu } 626a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu} 636a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu 646a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu} // namespace SensorServiceUtil 656a2d3a06caa337857cf60cfc70a9a78909ad3608Peng Xu} // namespace android; 66