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#include "BaseSensorObject.h" 1857d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu#include "SensorEventCallback.h" 194715d1734d2c60cc91ef70d409678d8eda382fdePeng Xu#include "Utils.h" 2057d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 2157d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu#include <cstring> 2257d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 2357d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xunamespace android { 2457d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xunamespace SensorHalExt { 2557d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 2657d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng XuBaseSensorObject::BaseSensorObject() : mCallback(nullptr) { 2757d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu} 2857d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 2957d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xubool BaseSensorObject::setEventCallback(SensorEventCallback* callback) { 3057d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu if (mCallback != nullptr) { 3157d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu return false; 3257d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu } 3357d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu mCallback = callback; 3457d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu return true; 3557d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu} 3657d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 3757d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xuvoid BaseSensorObject::getUuid(uint8_t* uuid) const { 3857d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu // default uuid denoting uuid feature is not supported on this sensor. 3957d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu memset(uuid, 0, 16); 4057d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu} 4157d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 4257d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xuint BaseSensorObject::flush() { 4357d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu static const sensors_event_t event = { 4457d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu .type = SENSOR_TYPE_META_DATA, 4557d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu .timestamp = TIMESTAMP_AUTO_FILL // timestamp will be filled at dispatcher 4657d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu }; 4757d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu generateEvent(event); 4857d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu return 0; 4957d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu} 5057d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 5157d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xuvoid BaseSensorObject::generateEvent(const sensors_event_t &e) { 5257d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu if (mCallback) { 534715d1734d2c60cc91ef70d409678d8eda382fdePeng Xu mCallback->submitEvent(SP_THIS, e); 5457d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu } 5557d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu} 5657d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 5757d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu} // namespace SensorHalExt 5857d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu} // namespace android 5957d8af7f5ecbdbadb043b05ac5874989ef33fdadPeng Xu 60