1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
/* Copyright (C) 2009 The Android Open Source Project
**
** This software is licensed under the terms of the GNU General Public
** License version 2, as published by the Free Software Foundation, and
** may be copied, distributed, and modified under those terms.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
*/
#ifndef _android_sensors_h
#define _android_sensors_h
#include "qemu-common.h"
/* initialize sensor emulation */
extern void android_hw_sensors_init( void );
/* NOTE: Sensor status Error definition, It will be used in the Sensors Command
* part in android/console.c. Details:
* SENSOR_STATUS_NO_SERVICE: "sensors" qemud service is not available/initiated.
* SENSOR_STATUS_DISABLED: sensor is disabled.
* SENSOR_STATUS_UNKNOWN: wrong sensor name.
* SENSOR_STATUS_OK: Everything is OK to the current sensor.
* */
typedef enum{
SENSOR_STATUS_NO_SERVICE = -3,
SENSOR_STATUS_DISABLED = -2,
SENSOR_STATUS_UNKNOWN = -1,
SENSOR_STATUS_OK = 0,
} SensorStatus;
/* NOTE: this list must be the same that the one defined in
* the sensors_qemu.c source of the libsensors.goldfish.so
* library.
*
* DO NOT CHANGE THE ORDER IN THIS LIST, UNLESS YOU INTEND
* TO BREAK SNAPSHOTS!
*/
#define SENSORS_LIST \
SENSOR_(ACCELERATION,"acceleration") \
SENSOR_(MAGNETIC_FIELD,"magnetic-field") \
SENSOR_(ORIENTATION,"orientation") \
SENSOR_(TEMPERATURE,"temperature") \
SENSOR_(PROXIMITY,"proximity") \
typedef enum {
#define SENSOR_(x,y) ANDROID_SENSOR_##x,
SENSORS_LIST
#undef SENSOR_
MAX_SENSORS /* do not remove */
} AndroidSensor;
extern void android_hw_sensor_enable( AndroidSensor sensor );
/* COARSE ORIENTATION VALUES */
typedef enum {
ANDROID_COARSE_PORTRAIT,
ANDROID_COARSE_LANDSCAPE
} AndroidCoarseOrientation;
/* change the coarse orientation value */
extern void android_sensors_set_coarse_orientation( AndroidCoarseOrientation orient );
/* get sensor values */
extern int android_sensors_get( int sensor_id, float* a, float* b, float* c );
/* set sensor values */
extern int android_sensors_set( int sensor_id, float a, float b, float c );
/* Get sensor id from sensor name */
extern int android_sensors_get_id_from_name( char* sensorname );
/* Get sensor name from sensor id */
extern const char* android_sensors_get_name_from_id( int sensor_id );
/* Get sensor from sensor id */
extern uint8_t android_sensors_get_sensor_status( int sensor_id );
#endif /* _android_gps_h */
|