1fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong/*
2fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong * Copyright (C) 2017 The Android Open Source Project
3fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong *
4fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong * Licensed under the Apache License, Version 2.0 (the "License");
5fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong * you may not use this file except in compliance with the License.
6fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong * You may obtain a copy of the License at
7fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong *
8fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong *      http://www.apache.org/licenses/LICENSE-2.0
9fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong *
10fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong * Unless required by applicable law or agreed to in writing, software
11fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong * distributed under the License is distributed on an "AS IS" BASIS,
12fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong * See the License for the specific language governing permissions and
14fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong * limitations under the License.
15fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong */
16fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong
17fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hongpackage android.frameworks.sensorservice@1.0;
18fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong
19fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong/**
20fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong * An IEventQueue is an interface to manage an event queue created by
21fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong * ISensorManager.
22fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong */
23fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Honginterface IEventQueue {
24fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong    /**
25fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     * Enable the selected sensor with a specified sampling period and
26fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     * max batch report latency. If enableSensor is called multiple times on the
27fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     * same sensor, the previous calls must be overridden by the last call.
28fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     *
29fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     * @param  sensorHandle the sensor to enable. Must be a sensor acquired from
30fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     *                      the ISensorManager that creates this IEventQueue.
31fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     * @param  samplingPeriodUs
32fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     *                      sampling period in microseconds.
33fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     * @param  maxBatchReportLatencyUs
34fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     *                      max batch report latency in microseconds.
35fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     * @return result       OK if successful, or
36fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     *                      PERMISSION_DENIED, BAD_VALUE, INVALID_OPERATION,
37fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     *                      NO_INIT for errors.
38fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     */
39fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong    enableSensor(int32_t sensorHandle,
40fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong                 int32_t samplingPeriodUs,
41fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong                 int64_t maxBatchReportLatencyUs)
42fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong      generates (Result result);
43fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong
44fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong    /**
45fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     * Disable the selected sensor.
46fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     *
47fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     * @param  sensorHandle the sensor to disable. Must be a sensor acquired from
48fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     *                      the ISensorManager that creates this IEventQueue.
49fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     * @return result       OK if successful,
50fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     *                      BAD_VALUE or NO_INIT for errors.
51fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong     */
52fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong    disableSensor(int32_t sensorHandle) generates (Result result);
53fd95968f8e5f81e20625f084c37d88197b4c0141Yifan Hong};
54