blob: dc5c96691299abc91aff08380df34a7fe74140ef [file] [log] [blame]
Vladimir Chtchetkinedb611d52011-11-01 17:35:07 -07001/*
2 * Copyright (C) 2011 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 ANDROID_SENSORS_PORT_H_
18#define ANDROID_SENSORS_PORT_H_
19
20/*
21 * Encapsulates exchange protocol between the sensor emulator, and an application
22 * running on an Android device that provides sensor values, and is connected to
23 * the host via USB.
24 */
25
26#include "android/android-device.h"
27
28/* Declares sensors port descriptor. */
29typedef struct AndroidSensorsPort AndroidSensorsPort;
30
31/* Creates sensors port, and connects it to the device.
32 * Param:
33 * opaque - An opaque pointer that is passed back to the callback routines.
34 * Return:
35 * Initialized device descriptor on success, or NULL on failure. If failure is
36 * returned from this routine, 'errno' indicates the reason for failure. If this
37 * routine successeds, a connection is established with the sensor reading
38 * application on the device.
39 */
40extern AndroidSensorsPort* sensors_port_create(void* opaque);
41
42/* Disconnects from the sensors port, and destroys the descriptor. */
43extern void sensors_port_destroy(AndroidSensorsPort* asp);
44
45/* Initializes sensors on the connected device. */
46extern int sensors_port_init_sensors(AndroidSensorsPort* asp);
47
48/* Checks if port is connected to a sensor reading application on the device.
49 * Note that connection can go out and then be restored at any time after
50 * sensors_port_create API succeeded.
51 */
52extern int sensors_port_is_connected(AndroidSensorsPort* asp);
53
54/* Enables events from a particular sensor.
55 * Param:
56 * asp - Android sensors port instance returned from sensors_port_create.
57 * name - Name of the sensor to enable events on. If this parameter is "all",
58 * then events on all sensors will be enabled.
59 * Return:
60 * Zero on success, failure otherwise.
61 */
62extern int sensors_port_enable_sensor(AndroidSensorsPort* asp, const char* name);
63
64
65/* Disables events from a particular sensor.
66 * Param:
67 * asp - Android sensors port instance returned from sensors_port_create.
68 * name - Name of the sensor to disable events on. If this parameter is "all",
69 * then events on all sensors will be disable.
70 * Return:
71 * Zero on success, failure otherwise.
72 */
73extern int sensors_port_disable_sensor(AndroidSensorsPort* asp, const char* name);
74
75/* Queries the connected application to start delivering sensor events.
76 * Param:
77 * asp - Android sensors port instance returned from sensors_port_create.
78 * Return:
79 * Zero on success, failure otherwise.
80 */
81extern int sensors_port_start(AndroidSensorsPort* asp);
82
83/* Queries the connected application to stop delivering sensor events.
84 * Param:
85 * asp - Android sensors port instance returned from sensors_port_create.
86 * Return:
87 * Zero on success, failure otherwise.
88 */
89extern int sensors_port_stop(AndroidSensorsPort* asp);
90
91#endif /* ANDROID_SENSORS_PORT_H_ */