• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved.
2  * Use of this source code is governed by a BSD-style license that can be
3  * found in the LICENSE file.
4  */
5 
6 /* From pp_touch_point.idl modified Thu Mar 28 10:13:07 2013. */
7 
8 #ifndef PPAPI_C_PP_TOUCH_POINT_H_
9 #define PPAPI_C_PP_TOUCH_POINT_H_
10 
11 #include "ppapi/c/pp_macros.h"
12 #include "ppapi/c/pp_point.h"
13 #include "ppapi/c/pp_stdint.h"
14 
15 /**
16  * @file
17  * This file defines the API to create a touch point or position where fingers
18  * makes contact with touch screen device.
19  */
20 
21 
22 /**
23  * @addtogroup Structs
24  * @{
25  */
26 /**
27  * The <code>PP_TouchPoint</code> struct represents all information about a
28  * single touch point, such as position, id, rotation angle, and pressure.
29  */
30 struct PP_TouchPoint {
31   /**
32    * This value represents the identifier for this TouchPoint. The id
33    * corresponds to the order in which the points were pressed. For example,
34    * the first point to be pressed has an id of 0, the second has an id of 1,
35    * and so on. An id can be reused when a touch point is released.  For
36    * example, if two fingers are down, with id 0 and 1, and finger 0 releases,
37    * the next finger to be pressed can be assigned to id 0.
38    */
39   uint32_t id;
40   /**
41    * This value represents the x and y pixel position of this TouchPoint
42    * relative to the upper-left of the module instance receiving the event.
43    */
44   struct PP_FloatPoint position;
45   /**
46    * This value represents the elliptical radii, in screen pixels, in the x
47    * and y direction of this TouchPoint.
48    */
49   struct PP_FloatPoint radius;
50   /**
51    * This value represents the angle of rotation in degrees of the elliptical
52    * model of this TouchPoint clockwise from "up."
53    */
54   float rotation_angle;
55   /**
56    * This value represents the pressure applied to this TouchPoint.  This value
57    * is typically between 0 and 1, with 0 indicating no pressure and 1
58    * indicating some maximum pressure. Scaling differs depending on the
59    * hardware and the value is not guaranteed to stay within that range.
60    */
61   float pressure;
62 };
63 PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_TouchPoint, 28);
64 /**
65  * @}
66  */
67 
68 /**
69  * @addtogroup Functions
70  * @{
71  */
72 
73 /**
74  * PP_MakeTouchPoint() creates a <code>PP_TouchPoint</code>.
75  *
76  * @return A <code>PP_TouchPoint</code> structure.
77  */
PP_MakeTouchPoint(void)78 PP_INLINE struct PP_TouchPoint PP_MakeTouchPoint(void) {
79   struct PP_TouchPoint result = { 0, {0, 0}, {0, 0}, 0, 0 };
80   return result;
81 }
82 /**
83  * @}
84  */
85 
86 #endif  /* PPAPI_C_PP_TOUCH_POINT_H_ */
87 
88