1 /*
2  * Copyright (C) 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef CHRE_PLATFORM_SHARED_PLATFORM_SENSOR_UTIL_H_
18 #define CHRE_PLATFORM_SHARED_PLATFORM_SENSOR_UTIL_H_
19 
20 #include "chre/core/sensor_type.h"
21 
22 namespace chre {
23 
24 /**
25  * A helper function that updates the last event of a sensor in the main thread.
26  * Platform should call this function only for an on-change sensor.
27  *
28  * @param sensorType The SensorType of the sensor.
29  * @param eventData A non-null pointer to the sensor's CHRE event data.
30  */
31 void updateLastEvent(SensorType sensorType, const void *eventData);
32 
33 /**
34  * A helper chreEventCompleteFunction that handles freeing sensor data and
35  * removing all requests associated with the sensor type if it represents a
36  * one-shot sensor.
37  *
38  * NOTE: This function assumes the eventData was allocated using the memoryAlloc
39  * platform function.
40  *
41  * @see postEvent
42  * @param eventType The type of sample event that eventData represents.
43  * @param eventData The sensor event data that should be freed.
44  */
45 void sensorDataEventFree(uint16_t eventType, void *eventData);
46 
47 }  // namespace chre
48 
49 #endif  // CHRE_PLATFORM_SHARED_PLATFORM_SENSOR_UTIL_H_
50