195c7a0636763c0861d46425709befe90a3919c04Yifan Hong/* 295c7a0636763c0861d46425709befe90a3919c04Yifan Hong * Copyright (C) 2017 The Android Open Source Project 395c7a0636763c0861d46425709befe90a3919c04Yifan Hong * 495c7a0636763c0861d46425709befe90a3919c04Yifan Hong * Licensed under the Apache License, Version 2.0 (the "License"); 595c7a0636763c0861d46425709befe90a3919c04Yifan Hong * you may not use this file except in compliance with the License. 695c7a0636763c0861d46425709befe90a3919c04Yifan Hong * You may obtain a copy of the License at 795c7a0636763c0861d46425709befe90a3919c04Yifan Hong * 895c7a0636763c0861d46425709befe90a3919c04Yifan Hong * http://www.apache.org/licenses/LICENSE-2.0 995c7a0636763c0861d46425709befe90a3919c04Yifan Hong * 1095c7a0636763c0861d46425709befe90a3919c04Yifan Hong * Unless required by applicable law or agreed to in writing, software 1195c7a0636763c0861d46425709befe90a3919c04Yifan Hong * distributed under the License is distributed on an "AS IS" BASIS, 1295c7a0636763c0861d46425709befe90a3919c04Yifan Hong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1395c7a0636763c0861d46425709befe90a3919c04Yifan Hong * See the License for the specific language governing permissions and 1495c7a0636763c0861d46425709befe90a3919c04Yifan Hong * limitations under the License. 1595c7a0636763c0861d46425709befe90a3919c04Yifan Hong */ 1695c7a0636763c0861d46425709befe90a3919c04Yifan Hong 1795c7a0636763c0861d46425709befe90a3919c04Yifan Hong#ifndef ANDROID_FRAMEWORKS_SENSORSERVICE_V1_0_EVENTQUEUE_H 1895c7a0636763c0861d46425709befe90a3919c04Yifan Hong#define ANDROID_FRAMEWORKS_SENSORSERVICE_V1_0_EVENTQUEUE_H 1995c7a0636763c0861d46425709befe90a3919c04Yifan Hong 2095c7a0636763c0861d46425709befe90a3919c04Yifan Hong#include "SensorManager.h" 2195c7a0636763c0861d46425709befe90a3919c04Yifan Hong 2295c7a0636763c0861d46425709befe90a3919c04Yifan Hong#include <android/frameworks/sensorservice/1.0/IEventQueue.h> 2395c7a0636763c0861d46425709befe90a3919c04Yifan Hong#include <android/frameworks/sensorservice/1.0/IEventQueueCallback.h> 2495c7a0636763c0861d46425709befe90a3919c04Yifan Hong#include <hidl/MQDescriptor.h> 2595c7a0636763c0861d46425709befe90a3919c04Yifan Hong#include <hidl/Status.h> 2695c7a0636763c0861d46425709befe90a3919c04Yifan Hong#include <sensor/SensorManager.h> 2795c7a0636763c0861d46425709befe90a3919c04Yifan Hong 2895c7a0636763c0861d46425709befe90a3919c04Yifan Hongnamespace android { 2995c7a0636763c0861d46425709befe90a3919c04Yifan Hongnamespace frameworks { 3095c7a0636763c0861d46425709befe90a3919c04Yifan Hongnamespace sensorservice { 3195c7a0636763c0861d46425709befe90a3919c04Yifan Hongnamespace V1_0 { 3295c7a0636763c0861d46425709befe90a3919c04Yifan Hongnamespace implementation { 3395c7a0636763c0861d46425709befe90a3919c04Yifan Hong 3495c7a0636763c0861d46425709befe90a3919c04Yifan Hongusing ::android::frameworks::sensorservice::V1_0::IEventQueue; 3595c7a0636763c0861d46425709befe90a3919c04Yifan Hongusing ::android::frameworks::sensorservice::V1_0::IEventQueueCallback; 3695c7a0636763c0861d46425709befe90a3919c04Yifan Hongusing ::android::frameworks::sensorservice::V1_0::Result; 3795c7a0636763c0861d46425709befe90a3919c04Yifan Hongusing ::android::hardware::Return; 3895c7a0636763c0861d46425709befe90a3919c04Yifan Hongusing ::android::sp; 3995c7a0636763c0861d46425709befe90a3919c04Yifan Hong 4095c7a0636763c0861d46425709befe90a3919c04Yifan Hongstruct EventQueue final : public IEventQueue { 4195c7a0636763c0861d46425709befe90a3919c04Yifan Hong EventQueue( 4295c7a0636763c0861d46425709befe90a3919c04Yifan Hong sp<IEventQueueCallback> callback, 4395c7a0636763c0861d46425709befe90a3919c04Yifan Hong sp<::android::Looper> looper, 4495c7a0636763c0861d46425709befe90a3919c04Yifan Hong sp<::android::SensorEventQueue> internalQueue); 4506d46fda66f7e6cc144a195ac6dc065bca2e3616Yifan Hong void onLastStrongRef(const void *) override; 4695c7a0636763c0861d46425709befe90a3919c04Yifan Hong 4795c7a0636763c0861d46425709befe90a3919c04Yifan Hong // Methods from ::android::frameworks::sensorservice::V1_0::IEventQueue follow. 4895c7a0636763c0861d46425709befe90a3919c04Yifan Hong Return<Result> enableSensor(int32_t sensorHandle, int32_t samplingPeriodUs, int64_t maxBatchReportLatencyUs) override; 4995c7a0636763c0861d46425709befe90a3919c04Yifan Hong Return<Result> disableSensor(int32_t sensorHandle) override; 5095c7a0636763c0861d46425709befe90a3919c04Yifan Hong 5195c7a0636763c0861d46425709befe90a3919c04Yifan Hongprivate: 5295c7a0636763c0861d46425709befe90a3919c04Yifan Hong friend class EventQueueLooperCallback; 5395c7a0636763c0861d46425709befe90a3919c04Yifan Hong sp<::android::Looper> mLooper; 5495c7a0636763c0861d46425709befe90a3919c04Yifan Hong sp<::android::SensorEventQueue> mInternalQueue; 5595c7a0636763c0861d46425709befe90a3919c04Yifan Hong}; 5695c7a0636763c0861d46425709befe90a3919c04Yifan Hong 5795c7a0636763c0861d46425709befe90a3919c04Yifan Hong} // namespace implementation 5895c7a0636763c0861d46425709befe90a3919c04Yifan Hong} // namespace V1_0 5995c7a0636763c0861d46425709befe90a3919c04Yifan Hong} // namespace sensorservice 6095c7a0636763c0861d46425709befe90a3919c04Yifan Hong} // namespace frameworks 6195c7a0636763c0861d46425709befe90a3919c04Yifan Hong} // namespace android 6295c7a0636763c0861d46425709befe90a3919c04Yifan Hong 6395c7a0636763c0861d46425709befe90a3919c04Yifan Hong#endif // ANDROID_FRAMEWORKS_SENSORSERVICE_V1_0_EVENTQUEUE_H 64