157d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu/* 257d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu * Copyright (C) 2017 The Android Open Source Project 357d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu * 457d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu * Licensed under the Apache License, Version 2.0 (the "License"); 557d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu * you may not use this file except in compliance with the License. 657d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu * You may obtain a copy of the License at 757d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu * 857d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu * http://www.apache.org/licenses/LICENSE-2.0 957d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu * 1057d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu * Unless required by applicable law or agreed to in writing, software 1157d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu * distributed under the License is distributed on an "AS IS" BASIS, 1257d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1357d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu * See the License for the specific language governing permissions and 1457d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu * limitations under the License. 1557d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu */ 1657d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 1757d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu#ifndef ANDROID_SENSORHAL_EXT_BASE_DYNAMIC_SENSOR_DAEMON_H 1857d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu#define ANDROID_SENSORHAL_EXT_BASE_DYNAMIC_SENSOR_DAEMON_H 1957d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 2018082bd61fffd120100ea93fd94538492b39d7bdPeng Xu#include "BaseSensorObject.h" 2118082bd61fffd120100ea93fd94538492b39d7bdPeng Xu 2257d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu#include <utils/RefBase.h> 2318082bd61fffd120100ea93fd94538492b39d7bdPeng Xu#include <string> 2418082bd61fffd120100ea93fd94538492b39d7bdPeng Xu#include <unordered_map> 2557d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 2657d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xunamespace android { 2757d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xunamespace SensorHalExt { 2857d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 2957d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xuclass DynamicSensorManager; 3057d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 314715d1734d2c60cc91ef70d409678d8eda382fdePeng Xutypedef std::vector<sp<BaseSensorObject>> BaseSensorVector; 324715d1734d2c60cc91ef70d409678d8eda382fdePeng Xu 3357d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xuclass BaseDynamicSensorDaemon : public RefBase { 3457d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xupublic: 3557d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu BaseDynamicSensorDaemon(DynamicSensorManager& manager) : mManager(manager) {} 3657d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu virtual ~BaseDynamicSensorDaemon() = default; 3718082bd61fffd120100ea93fd94538492b39d7bdPeng Xu 3818082bd61fffd120100ea93fd94538492b39d7bdPeng Xu virtual bool onConnectionChange(const std::string &deviceKey, bool connected); 3957d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xuprotected: 404715d1734d2c60cc91ef70d409678d8eda382fdePeng Xu virtual BaseSensorVector createSensor(const std::string &deviceKey) = 0; 414715d1734d2c60cc91ef70d409678d8eda382fdePeng Xu virtual void removeSensor(const std::string &/*deviceKey*/) {}; 4218082bd61fffd120100ea93fd94538492b39d7bdPeng Xu 4318082bd61fffd120100ea93fd94538492b39d7bdPeng Xu DynamicSensorManager &mManager; 444715d1734d2c60cc91ef70d409678d8eda382fdePeng Xu std::unordered_map<std::string, BaseSensorVector> mDeviceKeySensorMap; 4557d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu}; 4657d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 4757d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu} // namespace SensorHalExt 4857d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu} // namespace android 4957d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 5057d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu#endif // ANDROID_SENSORHAL_EXT_BASE_DYNAMIC_SENSOR_DAEMON_H 5157d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 52