aboutsummaryrefslogtreecommitdiffstats
path: root/android/multitouch-screen.h
diff options
context:
space:
mode:
Diffstat (limited to 'android/multitouch-screen.h')
-rw-r--r--android/multitouch-screen.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/android/multitouch-screen.h b/android/multitouch-screen.h
new file mode 100644
index 0000000..9288073
--- /dev/null
+++ b/android/multitouch-screen.h
@@ -0,0 +1,68 @@
+/*
+ * 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_MULTITOUCH_SCREEN_H_
+#define ANDROID_MULTITOUCH_SCREEN_H_
+
+#include "android/multitouch-port.h"
+
+/*
+ * Encapsulates functionality of multi-touch screen. Main task of this component
+ * is to report touch events to the emulated system via event device (see
+ * hw/goldfish_events_device.c) The source of touch events can be a mouse, or an
+ * actual android device that is used for multi-touch emulation. Note that since
+ * we need to simultaneousely support a mouse and a device as event source, we
+ * need to know which one has sent us a touch event. This is important for proper
+ * tracking of pointer IDs when multitouch is in play.
+ */
+
+/* Defines a source of multi-touch event. This is used to properly track
+ * pointer IDs.
+ */
+typedef enum MTESource {
+ /* The event is associated with a mouse. */
+ MTES_MOUSE,
+ /* The event is associated with an actual android device. */
+ MTES_DEVICE,
+} MTESource;
+
+/* Initializes MTSState instance.
+ * Param:
+ * mtsp - Instance of the multi-touch port connected to the device.
+ */
+extern void multitouch_init(AndroidMTSPort* mtsp);
+
+/* Handles a MT pointer event.
+ * Param:
+ * source - Identifies the source of the event (mouse or a device).
+ * tracking_id - Tracking ID of the pointer.
+ * x, y - Pointer coordinates,
+ * pressure - Pressure value for the pointer.
+ */
+extern void multitouch_update_pointer(MTESource source,
+ int tracking_id,
+ int x,
+ int y,
+ int pressure);
+
+/* Gets maximum slot index available for the multi-touch emulation. */
+extern int multitouch_get_max_slot();
+
+/* Saves screen size reported by the device that emulates multi-touch. */
+extern void multitouch_set_device_screen_size(int width, int height);
+
+#endif /* ANDROID_MULTITOUCH_SCREEN_H_ */
+