aboutsummaryrefslogtreecommitdiffstats
path: root/android/sensors-port.h
diff options
context:
space:
mode:
authorVladimir Chtchetkine <vchtchetkine@google.com>2011-11-01 17:35:07 -0700
committerVladimir Chtchetkine <vchtchetkine@google.com>2011-11-09 18:13:02 -0800
commitdb611d57e0da9acd7ecf2a4a9b2a63e7620fe54d (patch)
tree66f81dbd4ae02a000478036b0d7210050929d564 /android/sensors-port.h
parent6f3bc59f5099cdce5a939a5ab9ba33f3d7f2273e (diff)
downloadexternal_qemu-db611d57e0da9acd7ecf2a4a9b2a63e7620fe54d.zip
external_qemu-db611d57e0da9acd7ecf2a4a9b2a63e7620fe54d.tar.gz
external_qemu-db611d57e0da9acd7ecf2a4a9b2a63e7620fe54d.tar.bz2
Implements sensors emulation using a connected Android device
There are three major things in this CL: 1. Abstract a connection with an Android device that is connected to the host via USB, and there is a TCP port forwarding to this device via 'adb forward' command. This abstraction is implemented in android/android-device.* 2. A client for android device API that talks to an app on the connected device that provides values for sensors available on the device. This is implemented in android/sensors-port.* 3. Changes to the sensor emulation code in android/hw-sensors.c to use sensors port (when available) for sensors emulation. Change-Id: I12901e8db6b6a6262fc1703ed96a9f714335d666
Diffstat (limited to 'android/sensors-port.h')
-rw-r--r--android/sensors-port.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/android/sensors-port.h b/android/sensors-port.h
new file mode 100644
index 0000000..dc5c966
--- /dev/null
+++ b/android/sensors-port.h
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ANDROID_SENSORS_PORT_H_
+#define ANDROID_SENSORS_PORT_H_
+
+/*
+ * Encapsulates exchange protocol between the sensor emulator, and an application
+ * running on an Android device that provides sensor values, and is connected to
+ * the host via USB.
+ */
+
+#include "android/android-device.h"
+
+/* Declares sensors port descriptor. */
+typedef struct AndroidSensorsPort AndroidSensorsPort;
+
+/* Creates sensors port, and connects it to the device.
+ * Param:
+ * opaque - An opaque pointer that is passed back to the callback routines.
+ * Return:
+ * Initialized device descriptor on success, or NULL on failure. If failure is
+ * returned from this routine, 'errno' indicates the reason for failure. If this
+ * routine successeds, a connection is established with the sensor reading
+ * application on the device.
+ */
+extern AndroidSensorsPort* sensors_port_create(void* opaque);
+
+/* Disconnects from the sensors port, and destroys the descriptor. */
+extern void sensors_port_destroy(AndroidSensorsPort* asp);
+
+/* Initializes sensors on the connected device. */
+extern int sensors_port_init_sensors(AndroidSensorsPort* asp);
+
+/* Checks if port is connected to a sensor reading application on the device.
+ * Note that connection can go out and then be restored at any time after
+ * sensors_port_create API succeeded.
+ */
+extern int sensors_port_is_connected(AndroidSensorsPort* asp);
+
+/* Enables events from a particular sensor.
+ * Param:
+ * asp - Android sensors port instance returned from sensors_port_create.
+ * name - Name of the sensor to enable events on. If this parameter is "all",
+ * then events on all sensors will be enabled.
+ * Return:
+ * Zero on success, failure otherwise.
+ */
+extern int sensors_port_enable_sensor(AndroidSensorsPort* asp, const char* name);
+
+
+/* Disables events from a particular sensor.
+ * Param:
+ * asp - Android sensors port instance returned from sensors_port_create.
+ * name - Name of the sensor to disable events on. If this parameter is "all",
+ * then events on all sensors will be disable.
+ * Return:
+ * Zero on success, failure otherwise.
+ */
+extern int sensors_port_disable_sensor(AndroidSensorsPort* asp, const char* name);
+
+/* Queries the connected application to start delivering sensor events.
+ * Param:
+ * asp - Android sensors port instance returned from sensors_port_create.
+ * Return:
+ * Zero on success, failure otherwise.
+ */
+extern int sensors_port_start(AndroidSensorsPort* asp);
+
+/* Queries the connected application to stop delivering sensor events.
+ * Param:
+ * asp - Android sensors port instance returned from sensors_port_create.
+ * Return:
+ * Zero on success, failure otherwise.
+ */
+extern int sensors_port_stop(AndroidSensorsPort* asp);
+
+#endif /* ANDROID_SENSORS_PORT_H_ */