1c29fa5a6Sopenharmony_ci/*
2c29fa5a6Sopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3c29fa5a6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4c29fa5a6Sopenharmony_ci * you may not use this file except in compliance with the License.
5c29fa5a6Sopenharmony_ci * You may obtain a copy of the License at
6c29fa5a6Sopenharmony_ci *
7c29fa5a6Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
8c29fa5a6Sopenharmony_ci *
9c29fa5a6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10c29fa5a6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11c29fa5a6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12c29fa5a6Sopenharmony_ci * See the License for the specific language governing permissions and
13c29fa5a6Sopenharmony_ci * limitations under the License.
14c29fa5a6Sopenharmony_ci */
15c29fa5a6Sopenharmony_ci
16c29fa5a6Sopenharmony_ci#ifndef STRUCT_MULTIMODAL_H
17c29fa5a6Sopenharmony_ci#define STRUCT_MULTIMODAL_H
18c29fa5a6Sopenharmony_ci
19c29fa5a6Sopenharmony_ci#include <string>
20c29fa5a6Sopenharmony_ci#include "proto.h"
21c29fa5a6Sopenharmony_ci
22c29fa5a6Sopenharmony_cinamespace OHOS {
23c29fa5a6Sopenharmony_cinamespace MMI {
24c29fa5a6Sopenharmony_ciinline constexpr int32_t MAX_DEVICENAME { 64 };
25c29fa5a6Sopenharmony_ciinline constexpr int32_t MAX_UUIDSIZE { 64 };
26c29fa5a6Sopenharmony_ciinline constexpr int32_t SYSTEMUID { 1000 };
27c29fa5a6Sopenharmony_ciinline constexpr int32_t MAX_SOLTED_COORDS_NUMS { 10 };
28c29fa5a6Sopenharmony_ciinline constexpr double SINGLE_KNUCKLE_ABS_PRESSURE_VALUE = 254.0 / 255;
29c29fa5a6Sopenharmony_ciinline constexpr double DOUBLE_KNUCKLE_ABS_PRESSURE_VALUE { 1.000000 };
30c29fa5a6Sopenharmony_ci
31c29fa5a6Sopenharmony_cienum KNUCKLE_DOUBLE_CLICK_EVENT_TYPE {
32c29fa5a6Sopenharmony_ci    KNUCKLE_1F_DOUBLE_CLICK = 254,
33c29fa5a6Sopenharmony_ci    KNUCKLE_2F_DOUBLE_CLICK,
34c29fa5a6Sopenharmony_ci};
35c29fa5a6Sopenharmony_ci
36c29fa5a6Sopenharmony_cienum SENIOR_DEVICE_TYPE {
37c29fa5a6Sopenharmony_ci    INPUT_DEVICE_AISENSOR = 31,
38c29fa5a6Sopenharmony_ci    INPUT_DEVICE_KNUCKLE = 41
39c29fa5a6Sopenharmony_ci};
40c29fa5a6Sopenharmony_ci
41c29fa5a6Sopenharmony_cienum DEVICE_TYPE {
42c29fa5a6Sopenharmony_ci    DEVICE_TYPE_UNKNOWN = -1,
43c29fa5a6Sopenharmony_ci    DEVICE_TYPE_TOUCH_PANEL = 0,
44c29fa5a6Sopenharmony_ci    DEVICE_TYPE_KEYBOARD = 1,
45c29fa5a6Sopenharmony_ci    DEVICE_TYPE_MOUSE = 2,
46c29fa5a6Sopenharmony_ci    DEVICE_TYPE_STYLUS = 3,
47c29fa5a6Sopenharmony_ci    DEVICE_TYPE_BUILTIN_KEY = 4,
48c29fa5a6Sopenharmony_ci    DEVICE_TYPE_ROTATION = 5,
49c29fa5a6Sopenharmony_ci    DEVICE_TYPE_AI_SPEECH = 6,
50c29fa5a6Sopenharmony_ci    DEVICE_TYPE_JOYSTICK = 7,
51c29fa5a6Sopenharmony_ci    DEVICE_TYPE_TOUCHPAD = 8,
52c29fa5a6Sopenharmony_ci    DEVICE_TYPE_KNUCKLE = 9,
53c29fa5a6Sopenharmony_ci    DEVICE_TYPE_VIRTUAL_KEYBOARD = 10,
54c29fa5a6Sopenharmony_ci};
55c29fa5a6Sopenharmony_ci
56c29fa5a6Sopenharmony_cienum BUTTON_STATE {
57c29fa5a6Sopenharmony_ci    BUTTON_STATE_RELEASED = 0,
58c29fa5a6Sopenharmony_ci    BUTTON_STATE_PRESSED = 1
59c29fa5a6Sopenharmony_ci};
60c29fa5a6Sopenharmony_ci
61c29fa5a6Sopenharmony_cienum KEY_STATE {
62c29fa5a6Sopenharmony_ci    KEY_STATE_RELEASED,
63c29fa5a6Sopenharmony_ci    KEY_STATE_PRESSED
64c29fa5a6Sopenharmony_ci};
65c29fa5a6Sopenharmony_ci
66c29fa5a6Sopenharmony_cienum POINTER_AXIS {
67c29fa5a6Sopenharmony_ci    POINTER_AXIS_SCROLL_VERTICAL = 0,
68c29fa5a6Sopenharmony_ci    POINTER_AXIS_SCROLL_HORIZONTAL = 1,
69c29fa5a6Sopenharmony_ci};
70c29fa5a6Sopenharmony_ci
71c29fa5a6Sopenharmony_cienum POINTER_AXIS_SOURCE {
72c29fa5a6Sopenharmony_ci    POINTER_AXIS_SOURCE_WHEEL = 1,
73c29fa5a6Sopenharmony_ci    POINTER_AXIS_SOURCE_FINGER,
74c29fa5a6Sopenharmony_ci    POINTER_AXIS_SOURCE_CONTINUOUS,
75c29fa5a6Sopenharmony_ci    POINTER_AXIS_SOURCE_WHEEL_TILT,
76c29fa5a6Sopenharmony_ci};
77c29fa5a6Sopenharmony_ci
78c29fa5a6Sopenharmony_cienum TABLE_TOOL_TYPE {
79c29fa5a6Sopenharmony_ci    TABLET_TOOL_TYPE_PEN = 1,
80c29fa5a6Sopenharmony_ci    TABLET_TOOL_TYPE_ERASER,
81c29fa5a6Sopenharmony_ci    TABLET_TOOL_TYPE_BRUSH,
82c29fa5a6Sopenharmony_ci    TABLET_TOOL_TYPE_PENCIL,
83c29fa5a6Sopenharmony_ci    TABLET_TOOL_TYPE_AIRBRUSH,
84c29fa5a6Sopenharmony_ci    TABLET_TOOL_TYPE_MOUSE,
85c29fa5a6Sopenharmony_ci    TABLET_TOOL_TYPE_LENS,
86c29fa5a6Sopenharmony_ci    TABLET_TOOL_TYPE_TOTEM,
87c29fa5a6Sopenharmony_ci};
88c29fa5a6Sopenharmony_ci
89c29fa5a6Sopenharmony_cienum TABLE_TOOL_PROXIMITY_STATE {
90c29fa5a6Sopenharmony_ci    TABLET_TOOL_PROXIMITY_STATE_OUT = 0,
91c29fa5a6Sopenharmony_ci    TABLET_TOOL_PROXIMITY_STATE_IN = 1,
92c29fa5a6Sopenharmony_ci};
93c29fa5a6Sopenharmony_ci
94c29fa5a6Sopenharmony_cienum TABLE_TOOL_TIP_STATE {
95c29fa5a6Sopenharmony_ci    TABLET_TOOL_TIP_UP = 0,
96c29fa5a6Sopenharmony_ci    TABLET_TOOL_TIP_DOWN = 1,
97c29fa5a6Sopenharmony_ci};
98c29fa5a6Sopenharmony_ci
99c29fa5a6Sopenharmony_cienum POINT_EVENT_TYPE {
100c29fa5a6Sopenharmony_ci    EVENT_TYPE_INVALID = 0,
101c29fa5a6Sopenharmony_ci    PRIMARY_POINT_DOWN = 1,
102c29fa5a6Sopenharmony_ci    PRIMARY_POINT_UP = 2,
103c29fa5a6Sopenharmony_ci    POINT_MOVE = 3,
104c29fa5a6Sopenharmony_ci    OTHER_POINT_DOWN = 4,
105c29fa5a6Sopenharmony_ci    OTHER_POINT_UP = 5,
106c29fa5a6Sopenharmony_ci};
107c29fa5a6Sopenharmony_ci
108c29fa5a6Sopenharmony_cienum TABLET_PAD_RING_AXIS_SOURCE {
109c29fa5a6Sopenharmony_ci    TABLET_PAD_RING_SOURCE_UNKNOWN = 1,
110c29fa5a6Sopenharmony_ci    TABLET_PAD_RING_SOURCE_FINGER,
111c29fa5a6Sopenharmony_ci};
112c29fa5a6Sopenharmony_ci
113c29fa5a6Sopenharmony_cienum TABLET_PAD_STRIP_AXIS_SOURCE {
114c29fa5a6Sopenharmony_ci    TABLET_PAD_STRIP_SOURCE_UNKNOWN = 1,
115c29fa5a6Sopenharmony_ci    TABLET_PAD_STRIP_SOURCE_FINGER,
116c29fa5a6Sopenharmony_ci};
117c29fa5a6Sopenharmony_ci
118c29fa5a6Sopenharmony_cienum MOUSE_ICON {
119c29fa5a6Sopenharmony_ci    DEFAULT = 0,
120c29fa5a6Sopenharmony_ci    EAST = 1,
121c29fa5a6Sopenharmony_ci    WEST = 2,
122c29fa5a6Sopenharmony_ci    SOUTH = 3,
123c29fa5a6Sopenharmony_ci    NORTH = 4,
124c29fa5a6Sopenharmony_ci    WEST_EAST = 5,
125c29fa5a6Sopenharmony_ci    NORTH_SOUTH = 6,
126c29fa5a6Sopenharmony_ci    NORTH_EAST = 7,
127c29fa5a6Sopenharmony_ci    NORTH_WEST = 8,
128c29fa5a6Sopenharmony_ci    SOUTH_EAST = 9,
129c29fa5a6Sopenharmony_ci    SOUTH_WEST = 10,
130c29fa5a6Sopenharmony_ci    NORTH_EAST_SOUTH_WEST = 11,
131c29fa5a6Sopenharmony_ci    NORTH_WEST_SOUTH_EAST = 12,
132c29fa5a6Sopenharmony_ci    CROSS = 13,
133c29fa5a6Sopenharmony_ci    CURSOR_COPY = 14,
134c29fa5a6Sopenharmony_ci    CURSOR_FORBID = 15,
135c29fa5a6Sopenharmony_ci    COLOR_SUCKER = 16,
136c29fa5a6Sopenharmony_ci    HAND_GRABBING = 17,
137c29fa5a6Sopenharmony_ci    HAND_OPEN = 18,
138c29fa5a6Sopenharmony_ci    HAND_POINTING = 19,
139c29fa5a6Sopenharmony_ci    HELP = 20,
140c29fa5a6Sopenharmony_ci    CURSOR_MOVE = 21,
141c29fa5a6Sopenharmony_ci    RESIZE_LEFT_RIGHT = 22,
142c29fa5a6Sopenharmony_ci    RESIZE_UP_DOWN = 23,
143c29fa5a6Sopenharmony_ci    SCREENSHOT_CHOOSE = 24,
144c29fa5a6Sopenharmony_ci    SCREENSHOT_CURSOR = 25,
145c29fa5a6Sopenharmony_ci    TEXT_CURSOR = 26,
146c29fa5a6Sopenharmony_ci    ZOOM_IN = 27,
147c29fa5a6Sopenharmony_ci    ZOOM_OUT = 28,
148c29fa5a6Sopenharmony_ci    MIDDLE_BTN_EAST = 29,
149c29fa5a6Sopenharmony_ci    MIDDLE_BTN_WEST = 30,
150c29fa5a6Sopenharmony_ci    MIDDLE_BTN_SOUTH = 31,
151c29fa5a6Sopenharmony_ci    MIDDLE_BTN_NORTH = 32,
152c29fa5a6Sopenharmony_ci    MIDDLE_BTN_NORTH_SOUTH = 33,
153c29fa5a6Sopenharmony_ci    MIDDLE_BTN_NORTH_EAST = 34,
154c29fa5a6Sopenharmony_ci    MIDDLE_BTN_NORTH_WEST = 35,
155c29fa5a6Sopenharmony_ci    MIDDLE_BTN_SOUTH_EAST = 36,
156c29fa5a6Sopenharmony_ci    MIDDLE_BTN_SOUTH_WEST = 37,
157c29fa5a6Sopenharmony_ci    MIDDLE_BTN_NORTH_SOUTH_WEST_EAST = 38,
158c29fa5a6Sopenharmony_ci    HORIZONTAL_TEXT_CURSOR = 39,
159c29fa5a6Sopenharmony_ci    CURSOR_CROSS = 40,
160c29fa5a6Sopenharmony_ci    CURSOR_CIRCLE = 41,
161c29fa5a6Sopenharmony_ci    LOADING = 42,
162c29fa5a6Sopenharmony_ci    RUNNING = 43,
163c29fa5a6Sopenharmony_ci    RUNNING_LEFT = 44,
164c29fa5a6Sopenharmony_ci    RUNNING_RIGHT = 45,
165c29fa5a6Sopenharmony_ci    DEVELOPER_DEFINED_ICON = -100,
166c29fa5a6Sopenharmony_ci};
167c29fa5a6Sopenharmony_ci
168c29fa5a6Sopenharmony_cienum RightClickType {
169c29fa5a6Sopenharmony_ci    TOUCHPAD_RIGHT_BUTTON = 1,
170c29fa5a6Sopenharmony_ci    TOUCHPAD_LEFT_BUTTON = 2,
171c29fa5a6Sopenharmony_ci    TOUCHPAD_TWO_FINGER_TAP = 3,
172c29fa5a6Sopenharmony_ci};
173c29fa5a6Sopenharmony_ci
174c29fa5a6Sopenharmony_cienum ICON_TYPE {
175c29fa5a6Sopenharmony_ci    ANGLE_E = 0,
176c29fa5a6Sopenharmony_ci    ANGLE_S = 1,
177c29fa5a6Sopenharmony_ci    ANGLE_W = 2,
178c29fa5a6Sopenharmony_ci    ANGLE_N = 3,
179c29fa5a6Sopenharmony_ci    ANGLE_SE = 4,
180c29fa5a6Sopenharmony_ci    ANGLE_NE = 5,
181c29fa5a6Sopenharmony_ci    ANGLE_SW = 6,
182c29fa5a6Sopenharmony_ci    ANGLE_NW = 7,
183c29fa5a6Sopenharmony_ci    ANGLE_CENTER = 8,
184c29fa5a6Sopenharmony_ci    ANGLE_NW_RIGHT = 9,
185c29fa5a6Sopenharmony_ci};
186c29fa5a6Sopenharmony_ci
187c29fa5a6Sopenharmony_cienum PrimaryButton {
188c29fa5a6Sopenharmony_ci    LEFT_BUTTON = 0,
189c29fa5a6Sopenharmony_ci    RIGHT_BUTTON = 1,
190c29fa5a6Sopenharmony_ci};
191c29fa5a6Sopenharmony_ci
192c29fa5a6Sopenharmony_cienum SHIELD_MODE {
193c29fa5a6Sopenharmony_ci    UNSET_MODE = -1,
194c29fa5a6Sopenharmony_ci    FACTORY_MODE = 0,
195c29fa5a6Sopenharmony_ci    OOBE_MODE = 1,
196c29fa5a6Sopenharmony_ci};
197c29fa5a6Sopenharmony_cistruct IconStyle {
198c29fa5a6Sopenharmony_ci    int32_t alignmentWay { 0 };
199c29fa5a6Sopenharmony_ci    std::string iconPath;
200c29fa5a6Sopenharmony_ci};
201c29fa5a6Sopenharmony_ci
202c29fa5a6Sopenharmony_cistruct CursorFocus {
203c29fa5a6Sopenharmony_ci    int32_t x { 0 };
204c29fa5a6Sopenharmony_ci    int32_t y { 0 };
205c29fa5a6Sopenharmony_ci};
206c29fa5a6Sopenharmony_ci
207c29fa5a6Sopenharmony_ci#pragma pack(1)
208c29fa5a6Sopenharmony_cistruct TagPackHead {
209c29fa5a6Sopenharmony_ci    MmiMessageId idMsg;
210c29fa5a6Sopenharmony_ci    int32_t sizeEvent[1];
211c29fa5a6Sopenharmony_ci};
212c29fa5a6Sopenharmony_ci#pragma pack()
213c29fa5a6Sopenharmony_ci
214c29fa5a6Sopenharmony_cistruct SeniorDeviceInfo {
215c29fa5a6Sopenharmony_ci    char physical[MAX_DEVICENAME];
216c29fa5a6Sopenharmony_ci    enum SENIOR_DEVICE_TYPE seniorDeviceType;
217c29fa5a6Sopenharmony_ci};
218c29fa5a6Sopenharmony_ci
219c29fa5a6Sopenharmony_cistruct EventJoyStickAxisAbsInfo {
220c29fa5a6Sopenharmony_ci    int32_t code;
221c29fa5a6Sopenharmony_ci    int32_t value;
222c29fa5a6Sopenharmony_ci    int32_t minimum;
223c29fa5a6Sopenharmony_ci    int32_t maximum;
224c29fa5a6Sopenharmony_ci    int32_t fuzz;
225c29fa5a6Sopenharmony_ci    int32_t flat;
226c29fa5a6Sopenharmony_ci    int32_t resolution;
227c29fa5a6Sopenharmony_ci    float standardValue;
228c29fa5a6Sopenharmony_ci    bool isChanged;
229c29fa5a6Sopenharmony_ci};
230c29fa5a6Sopenharmony_ci
231c29fa5a6Sopenharmony_cistruct EventJoyStickAxis {
232c29fa5a6Sopenharmony_ci    int32_t deviceId;
233c29fa5a6Sopenharmony_ci    char physical[MAX_DEVICENAME];
234c29fa5a6Sopenharmony_ci    char deviceName[MAX_DEVICENAME];
235c29fa5a6Sopenharmony_ci    DEVICE_TYPE deviceType;
236c29fa5a6Sopenharmony_ci    int32_t eventType;
237c29fa5a6Sopenharmony_ci    char uuid[MAX_UUIDSIZE];
238c29fa5a6Sopenharmony_ci    int64_t time;
239c29fa5a6Sopenharmony_ci    EventJoyStickAxisAbsInfo abs_throttle;
240c29fa5a6Sopenharmony_ci    EventJoyStickAxisAbsInfo abs_hat0x;
241c29fa5a6Sopenharmony_ci    EventJoyStickAxisAbsInfo abs_hat0y;
242c29fa5a6Sopenharmony_ci    EventJoyStickAxisAbsInfo abs_x;
243c29fa5a6Sopenharmony_ci    EventJoyStickAxisAbsInfo abs_y;
244c29fa5a6Sopenharmony_ci    EventJoyStickAxisAbsInfo abs_z;
245c29fa5a6Sopenharmony_ci    EventJoyStickAxisAbsInfo abs_rx;
246c29fa5a6Sopenharmony_ci    EventJoyStickAxisAbsInfo abs_ry;
247c29fa5a6Sopenharmony_ci    EventJoyStickAxisAbsInfo abs_rz;
248c29fa5a6Sopenharmony_ci    EventJoyStickAxisAbsInfo abs_wheel;
249c29fa5a6Sopenharmony_ci};
250c29fa5a6Sopenharmony_ci
251c29fa5a6Sopenharmony_cistruct NormalizedCoords {
252c29fa5a6Sopenharmony_ci    double x {};
253c29fa5a6Sopenharmony_ci    double y {};
254c29fa5a6Sopenharmony_ci};
255c29fa5a6Sopenharmony_ci
256c29fa5a6Sopenharmony_cistruct PhysicalCoordinate {
257c29fa5a6Sopenharmony_ci    double x {};
258c29fa5a6Sopenharmony_ci    double y {};
259c29fa5a6Sopenharmony_ci};
260c29fa5a6Sopenharmony_ci
261c29fa5a6Sopenharmony_cistruct LogicalCoordinate {
262c29fa5a6Sopenharmony_ci    int32_t x {};
263c29fa5a6Sopenharmony_ci    int32_t y {};
264c29fa5a6Sopenharmony_ci};
265c29fa5a6Sopenharmony_ci
266c29fa5a6Sopenharmony_cistruct LogicalRectangle {
267c29fa5a6Sopenharmony_ci    LogicalCoordinate point;
268c29fa5a6Sopenharmony_ci    int32_t width;
269c29fa5a6Sopenharmony_ci    int32_t height;
270c29fa5a6Sopenharmony_ci};
271c29fa5a6Sopenharmony_ci
272c29fa5a6Sopenharmony_cistruct TiltDegrees {
273c29fa5a6Sopenharmony_ci    double x {};
274c29fa5a6Sopenharmony_ci    double y {};
275c29fa5a6Sopenharmony_ci};
276c29fa5a6Sopenharmony_ci
277c29fa5a6Sopenharmony_cistruct PhysEllipsis {
278c29fa5a6Sopenharmony_ci    double major {};
279c29fa5a6Sopenharmony_ci    double minor {};
280c29fa5a6Sopenharmony_ci};
281c29fa5a6Sopenharmony_ci
282c29fa5a6Sopenharmony_cistruct Threshold {
283c29fa5a6Sopenharmony_ci    int32_t upper {};
284c29fa5a6Sopenharmony_ci    int32_t lower {};
285c29fa5a6Sopenharmony_ci};
286c29fa5a6Sopenharmony_ci
287c29fa5a6Sopenharmony_cistruct WinInfo {
288c29fa5a6Sopenharmony_ci    int32_t windowPid {};
289c29fa5a6Sopenharmony_ci    int32_t windowId {};
290c29fa5a6Sopenharmony_ci};
291c29fa5a6Sopenharmony_ci
292c29fa5a6Sopenharmony_cistruct RegisteredEvent {
293c29fa5a6Sopenharmony_ci    int32_t deviceId {};
294c29fa5a6Sopenharmony_ci    char uuid[MAX_UUIDSIZE] {};
295c29fa5a6Sopenharmony_ci    int32_t eventType {};
296c29fa5a6Sopenharmony_ci    int64_t occurredTime {};
297c29fa5a6Sopenharmony_ci    DEVICE_TYPE deviceType;
298c29fa5a6Sopenharmony_ci    char physical[MAX_DEVICENAME] {};
299c29fa5a6Sopenharmony_ci};
300c29fa5a6Sopenharmony_ci
301c29fa5a6Sopenharmony_cistruct StandardTouchStruct {
302c29fa5a6Sopenharmony_ci    int64_t time {};
303c29fa5a6Sopenharmony_ci    uint32_t msgType {};
304c29fa5a6Sopenharmony_ci    int32_t buttonType {};
305c29fa5a6Sopenharmony_ci    int32_t buttonCount {};
306c29fa5a6Sopenharmony_ci    int32_t buttonState {};
307c29fa5a6Sopenharmony_ci    int32_t reRventType {};
308c29fa5a6Sopenharmony_ci    int32_t curRventType {};
309c29fa5a6Sopenharmony_ci    int32_t tipState {};
310c29fa5a6Sopenharmony_ci    double x {};
311c29fa5a6Sopenharmony_ci    double y {};
312c29fa5a6Sopenharmony_ci};
313c29fa5a6Sopenharmony_ci
314c29fa5a6Sopenharmony_cistruct EventKeyboard {
315c29fa5a6Sopenharmony_ci    int32_t deviceId {};
316c29fa5a6Sopenharmony_ci    char physical[MAX_DEVICENAME] {};
317c29fa5a6Sopenharmony_ci    char deviceName[MAX_DEVICENAME] {};
318c29fa5a6Sopenharmony_ci    DEVICE_TYPE deviceType;
319c29fa5a6Sopenharmony_ci    int32_t eventType {};
320c29fa5a6Sopenharmony_ci    char uuid[MAX_UUIDSIZE] {};
321c29fa5a6Sopenharmony_ci    int64_t time {};
322c29fa5a6Sopenharmony_ci    int32_t key {};
323c29fa5a6Sopenharmony_ci    uint32_t seat_key_count {};
324c29fa5a6Sopenharmony_ci    enum KEY_STATE state;
325c29fa5a6Sopenharmony_ci    int32_t unicode {};
326c29fa5a6Sopenharmony_ci    bool isIntercepted { true };
327c29fa5a6Sopenharmony_ci};
328c29fa5a6Sopenharmony_ci
329c29fa5a6Sopenharmony_cistruct EventPointer {
330c29fa5a6Sopenharmony_ci    int32_t deviceId {};
331c29fa5a6Sopenharmony_ci    char physical[MAX_DEVICENAME] {};
332c29fa5a6Sopenharmony_ci    char deviceName[MAX_DEVICENAME] {};
333c29fa5a6Sopenharmony_ci    DEVICE_TYPE deviceType;
334c29fa5a6Sopenharmony_ci    int32_t eventType {};
335c29fa5a6Sopenharmony_ci    char uuid[MAX_UUIDSIZE] {};
336c29fa5a6Sopenharmony_ci    int64_t time {};
337c29fa5a6Sopenharmony_ci    NormalizedCoords delta;
338c29fa5a6Sopenharmony_ci    PhysicalCoordinate deltaRaw;
339c29fa5a6Sopenharmony_ci    PhysicalCoordinate absolute;
340c29fa5a6Sopenharmony_ci    PhysicalCoordinate discrete;
341c29fa5a6Sopenharmony_ci    int32_t button {};
342c29fa5a6Sopenharmony_ci    int32_t seatButtonCount {};
343c29fa5a6Sopenharmony_ci    enum BUTTON_STATE state;
344c29fa5a6Sopenharmony_ci    enum POINTER_AXIS_SOURCE source;
345c29fa5a6Sopenharmony_ci    enum POINTER_AXIS axis;
346c29fa5a6Sopenharmony_ci};
347c29fa5a6Sopenharmony_ci
348c29fa5a6Sopenharmony_cistruct Pointer {
349c29fa5a6Sopenharmony_ci    PhysicalCoordinate absolute;
350c29fa5a6Sopenharmony_ci};
351c29fa5a6Sopenharmony_ci
352c29fa5a6Sopenharmony_cistruct TabletAxes {
353c29fa5a6Sopenharmony_ci    PhysicalCoordinate point;
354c29fa5a6Sopenharmony_ci    NormalizedCoords delta;
355c29fa5a6Sopenharmony_ci    double distance {};
356c29fa5a6Sopenharmony_ci    double pressure {};
357c29fa5a6Sopenharmony_ci    TiltDegrees tilt;
358c29fa5a6Sopenharmony_ci    double rotation {};
359c29fa5a6Sopenharmony_ci    double slider {};
360c29fa5a6Sopenharmony_ci    double wheel {};
361c29fa5a6Sopenharmony_ci    int32_t wheel_discrete {};
362c29fa5a6Sopenharmony_ci    PhysEllipsis size;
363c29fa5a6Sopenharmony_ci};
364c29fa5a6Sopenharmony_ci
365c29fa5a6Sopenharmony_cistruct TabletTool {
366c29fa5a6Sopenharmony_ci    uint32_t serial {};
367c29fa5a6Sopenharmony_ci    uint32_t tool_id {};
368c29fa5a6Sopenharmony_ci    enum TABLE_TOOL_TYPE type;
369c29fa5a6Sopenharmony_ci};
370c29fa5a6Sopenharmony_ci
371c29fa5a6Sopenharmony_cistruct EventTabletTool {
372c29fa5a6Sopenharmony_ci    int32_t deviceId {};
373c29fa5a6Sopenharmony_ci    char physical[MAX_DEVICENAME] {};
374c29fa5a6Sopenharmony_ci    char deviceName[MAX_DEVICENAME] {};
375c29fa5a6Sopenharmony_ci    DEVICE_TYPE deviceType;
376c29fa5a6Sopenharmony_ci    int32_t eventType {};
377c29fa5a6Sopenharmony_ci    char uuid[MAX_UUIDSIZE] {};
378c29fa5a6Sopenharmony_ci    uint32_t button {};
379c29fa5a6Sopenharmony_ci    enum BUTTON_STATE state;
380c29fa5a6Sopenharmony_ci    uint32_t seat_button_count {};
381c29fa5a6Sopenharmony_ci    int64_t time {};
382c29fa5a6Sopenharmony_ci    TabletAxes axes;
383c29fa5a6Sopenharmony_ci    TabletTool tool;
384c29fa5a6Sopenharmony_ci    enum TABLE_TOOL_PROXIMITY_STATE proximity_state;
385c29fa5a6Sopenharmony_ci    enum TABLE_TOOL_TIP_STATE tip_state;
386c29fa5a6Sopenharmony_ci};
387c29fa5a6Sopenharmony_ci
388c29fa5a6Sopenharmony_cistruct EventTouch {
389c29fa5a6Sopenharmony_ci    int32_t deviceId {};
390c29fa5a6Sopenharmony_ci    char physical[MAX_DEVICENAME] {};
391c29fa5a6Sopenharmony_ci    char deviceName[MAX_DEVICENAME] {};
392c29fa5a6Sopenharmony_ci    char uuid[MAX_UUIDSIZE] {};
393c29fa5a6Sopenharmony_ci    int32_t eventType {};
394c29fa5a6Sopenharmony_ci    int64_t time {};
395c29fa5a6Sopenharmony_ci    int32_t slot {};
396c29fa5a6Sopenharmony_ci    int32_t seatSlot {};
397c29fa5a6Sopenharmony_ci    LogicalCoordinate point;
398c29fa5a6Sopenharmony_ci    LogicalRectangle toolRect;
399c29fa5a6Sopenharmony_ci    DEVICE_TYPE deviceType;
400c29fa5a6Sopenharmony_ci    double pressure {};
401c29fa5a6Sopenharmony_ci    double area {};
402c29fa5a6Sopenharmony_ci};
403c29fa5a6Sopenharmony_ci
404c29fa5a6Sopenharmony_cistruct SlotedCoords {
405c29fa5a6Sopenharmony_ci    bool isActive {};
406c29fa5a6Sopenharmony_ci    float x {};
407c29fa5a6Sopenharmony_ci    float y {};
408c29fa5a6Sopenharmony_ci};
409c29fa5a6Sopenharmony_ci
410c29fa5a6Sopenharmony_cistruct SlotedCoordsInfo {
411c29fa5a6Sopenharmony_ci    SlotedCoords coords[MAX_SOLTED_COORDS_NUMS];
412c29fa5a6Sopenharmony_ci    uint32_t activeCount {};
413c29fa5a6Sopenharmony_ci};
414c29fa5a6Sopenharmony_ci
415c29fa5a6Sopenharmony_cistruct EventGesture {
416c29fa5a6Sopenharmony_ci    int32_t deviceId {};
417c29fa5a6Sopenharmony_ci    char physical[MAX_DEVICENAME] {};
418c29fa5a6Sopenharmony_ci    char deviceName[MAX_DEVICENAME] {};
419c29fa5a6Sopenharmony_ci    DEVICE_TYPE deviceType;
420c29fa5a6Sopenharmony_ci    int32_t eventType {};
421c29fa5a6Sopenharmony_ci    char uuid[MAX_UUIDSIZE] {};
422c29fa5a6Sopenharmony_ci    int64_t time {};
423c29fa5a6Sopenharmony_ci    int32_t fingerCount {};
424c29fa5a6Sopenharmony_ci    int32_t cancelled {};
425c29fa5a6Sopenharmony_ci    NormalizedCoords delta;
426c29fa5a6Sopenharmony_ci    NormalizedCoords deltaUnaccel;
427c29fa5a6Sopenharmony_ci    SlotedCoordsInfo soltTouches;
428c29fa5a6Sopenharmony_ci    double scale {};
429c29fa5a6Sopenharmony_ci    double angle {};
430c29fa5a6Sopenharmony_ci    int32_t pointerEventType {};
431c29fa5a6Sopenharmony_ci};
432c29fa5a6Sopenharmony_ci
433c29fa5a6Sopenharmony_cistruct RawInputEvent {
434c29fa5a6Sopenharmony_ci    uint32_t stamp {};
435c29fa5a6Sopenharmony_ci    uint32_t ev_type {};
436c29fa5a6Sopenharmony_ci    uint32_t ev_code {};
437c29fa5a6Sopenharmony_ci    uint32_t ev_value {};
438c29fa5a6Sopenharmony_ci};
439c29fa5a6Sopenharmony_ci
440c29fa5a6Sopenharmony_cistruct TestSurfaceData {
441c29fa5a6Sopenharmony_ci    int32_t screenId {};
442c29fa5a6Sopenharmony_ci    int32_t onLayerId {};
443c29fa5a6Sopenharmony_ci    int32_t surfaceId {};
444c29fa5a6Sopenharmony_ci    int32_t opacity {};
445c29fa5a6Sopenharmony_ci    int32_t visibility {};
446c29fa5a6Sopenharmony_ci    int32_t srcX {};
447c29fa5a6Sopenharmony_ci    int32_t srcY {};
448c29fa5a6Sopenharmony_ci    int32_t srcW {};
449c29fa5a6Sopenharmony_ci    int32_t srcH {};
450c29fa5a6Sopenharmony_ci};
451c29fa5a6Sopenharmony_ci
452c29fa5a6Sopenharmony_cistruct VirtualKey {
453c29fa5a6Sopenharmony_ci    bool isPressed {};
454c29fa5a6Sopenharmony_ci    int32_t keyCode {};
455c29fa5a6Sopenharmony_ci    int64_t keyDownDuration {};
456c29fa5a6Sopenharmony_ci    bool isIntercepted { true };
457c29fa5a6Sopenharmony_ci};
458c29fa5a6Sopenharmony_ci
459c29fa5a6Sopenharmony_cistruct DeviceManage {
460c29fa5a6Sopenharmony_ci    uint32_t deviceId {};
461c29fa5a6Sopenharmony_ci    char physical[MAX_DEVICENAME] {};
462c29fa5a6Sopenharmony_ci    char deviceName[MAX_DEVICENAME] {};
463c29fa5a6Sopenharmony_ci    DEVICE_TYPE deviceType;
464c29fa5a6Sopenharmony_ci    int32_t eventType {};
465c29fa5a6Sopenharmony_ci    char uuid[MAX_UUIDSIZE] {};
466c29fa5a6Sopenharmony_ci};
467c29fa5a6Sopenharmony_ci
468c29fa5a6Sopenharmony_cistruct EventTabletPad {
469c29fa5a6Sopenharmony_ci    uint32_t deviceId {};
470c29fa5a6Sopenharmony_ci    char physical[MAX_DEVICENAME] {};
471c29fa5a6Sopenharmony_ci    char deviceName[MAX_DEVICENAME] {};
472c29fa5a6Sopenharmony_ci    DEVICE_TYPE deviceType;
473c29fa5a6Sopenharmony_ci    int32_t eventType {};
474c29fa5a6Sopenharmony_ci    char uuid[MAX_UUIDSIZE] {};
475c29fa5a6Sopenharmony_ci    int64_t time {};
476c29fa5a6Sopenharmony_ci    uint32_t mode {};
477c29fa5a6Sopenharmony_ci    struct {
478c29fa5a6Sopenharmony_ci        uint32_t number {};
479c29fa5a6Sopenharmony_ci        enum BUTTON_STATE state;
480c29fa5a6Sopenharmony_ci    } button;
481c29fa5a6Sopenharmony_ci    struct {
482c29fa5a6Sopenharmony_ci        uint32_t code {};
483c29fa5a6Sopenharmony_ci        enum KEY_STATE state;
484c29fa5a6Sopenharmony_ci    } key;
485c29fa5a6Sopenharmony_ci    struct {
486c29fa5a6Sopenharmony_ci        enum TABLET_PAD_RING_AXIS_SOURCE source;
487c29fa5a6Sopenharmony_ci        double position {};
488c29fa5a6Sopenharmony_ci        int32_t number {};
489c29fa5a6Sopenharmony_ci    } ring;
490c29fa5a6Sopenharmony_ci    struct {
491c29fa5a6Sopenharmony_ci        enum TABLET_PAD_STRIP_AXIS_SOURCE source;
492c29fa5a6Sopenharmony_ci        double position {};
493c29fa5a6Sopenharmony_ci        int32_t number {};
494c29fa5a6Sopenharmony_ci    } strip;
495c29fa5a6Sopenharmony_ci};
496c29fa5a6Sopenharmony_ci} // namespace MMI
497c29fa5a6Sopenharmony_ci} // namespace OHOS
498c29fa5a6Sopenharmony_ci#endif // STRUCT_MULTIMODAL_H
499