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