// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_FUSION_H_ #define SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_FUSION_H_ #include <memory> #include <vector> #include "base/containers/flat_map.h" #include "base/gtest_prod_util.h" #include "base/memory/weak_ptr.h" #include "services/device/generic_sensor/platform_sensor.h" #include "services/device/generic_sensor/platform_sensor_provider.h" namespace device { class PlatformSensorFusionAlgorithm; // Implementation of a platform sensor using sensor fusion. There will be a // instance of this fusion sensor per browser process which is created by // the PlatformSensorProvider. If there are no clients, this instance is not // created. // // This class implements the generic concept of sensor fusion. It implements // a new sensor using data from one or more existing sensors. For example, // it can implement a *_EULER_ANGLES orientation sensor using a // *_QUATERNION orientation sensor, or vice-versa. // // It can also implement an orientation sensor using an ACCELEROMETER, etc. class PlatformSensorFusion : public PlatformSensor, public PlatformSensor::Client { … }; } // namespace device #endif // SERVICES_DEVICE_GENERIC_SENSOR_PLATFORM_SENSOR_FUSION_H_