12d4d9a4dSopenharmony_ci/* 22d4d9a4dSopenharmony_ci * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 32d4d9a4dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 42d4d9a4dSopenharmony_ci * you may not use this file except in compliance with the License. 52d4d9a4dSopenharmony_ci * You may obtain a copy of the License at 62d4d9a4dSopenharmony_ci * 72d4d9a4dSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 82d4d9a4dSopenharmony_ci * 92d4d9a4dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 102d4d9a4dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 112d4d9a4dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 122d4d9a4dSopenharmony_ci * See the License for the specific language governing permissions and 132d4d9a4dSopenharmony_ci * limitations under the License. 142d4d9a4dSopenharmony_ci */ 152d4d9a4dSopenharmony_ci 162d4d9a4dSopenharmony_ci#ifndef OHOS_DISTRIBUTED_INPUT_CONSTANTS_H 172d4d9a4dSopenharmony_ci#define OHOS_DISTRIBUTED_INPUT_CONSTANTS_H 182d4d9a4dSopenharmony_ci 192d4d9a4dSopenharmony_ci#include <map> 202d4d9a4dSopenharmony_ci#include <string> 212d4d9a4dSopenharmony_ci#include <vector> 222d4d9a4dSopenharmony_ci 232d4d9a4dSopenharmony_ci#include <linux/uinput.h> 242d4d9a4dSopenharmony_ci 252d4d9a4dSopenharmony_cinamespace OHOS { 262d4d9a4dSopenharmony_cinamespace DistributedHardware { 272d4d9a4dSopenharmony_cinamespace DistributedInput { 282d4d9a4dSopenharmony_ci#define INPUT_KEY_WHEN "when" 292d4d9a4dSopenharmony_ci#define INPUT_KEY_TYPE "type" 302d4d9a4dSopenharmony_ci#define INPUT_KEY_CODE "code" 312d4d9a4dSopenharmony_ci#define INPUT_KEY_VALUE "value" 322d4d9a4dSopenharmony_ci#define INPUT_KEY_DESCRIPTOR "descriptor" 332d4d9a4dSopenharmony_ci#define INPUT_KEY_PATH "path" 342d4d9a4dSopenharmony_ci 352d4d9a4dSopenharmony_ci#define VIRTUAL_DEVICE_NAME "DistributedInput " 362d4d9a4dSopenharmony_ci#define LONG_BITS (sizeof(long) * 8) 372d4d9a4dSopenharmony_ci#define NLONGS(x) (((x) + LONG_BITS - 1) / LONG_BITS) 382d4d9a4dSopenharmony_ci 392d4d9a4dSopenharmony_ci const char INPUT_STRING_SPLIT_POINT = '.'; 402d4d9a4dSopenharmony_ci const uint32_t KEY_DOWN_STATE = 1; 412d4d9a4dSopenharmony_ci const uint32_t KEY_UP_STATE = 0; 422d4d9a4dSopenharmony_ci const uint32_t KEY_REPEAT = 2; 432d4d9a4dSopenharmony_ci const uint32_t READ_SLEEP_TIME_MS = 50; 442d4d9a4dSopenharmony_ci const uint32_t READ_RETRY_MAX = 5; 452d4d9a4dSopenharmony_ci const uint32_t DH_ID_LENGTH_MAX = 256; 462d4d9a4dSopenharmony_ci const uint32_t DEV_ID_LENGTH_MAX = 256; 472d4d9a4dSopenharmony_ci const uint32_t STRING_MAX_SIZE = 40 * 1024 * 1024; 482d4d9a4dSopenharmony_ci const uint32_t SCREEN_MSG_MAX = 40 * 1024 * 1024; 492d4d9a4dSopenharmony_ci const uint32_t AUTH_SESSION_SIDE_SERVER = 0; 502d4d9a4dSopenharmony_ci const uint32_t IPC_VECTOR_MAX_SIZE = 32; 512d4d9a4dSopenharmony_ci const uint32_t EVENT_BUFFER_MAX = 512; 522d4d9a4dSopenharmony_ci 532d4d9a4dSopenharmony_ci /* 542d4d9a4dSopenharmony_ci * Device Type definitions 552d4d9a4dSopenharmony_ci */ 562d4d9a4dSopenharmony_ci enum class DInputDeviceType : uint32_t { 572d4d9a4dSopenharmony_ci NONE = 0x0000, 582d4d9a4dSopenharmony_ci MOUSE = 0x0001, 592d4d9a4dSopenharmony_ci KEYBOARD = 0x0002, 602d4d9a4dSopenharmony_ci TOUCHSCREEN = 0x0004, 612d4d9a4dSopenharmony_ci TOUCHPAD = MOUSE, 622d4d9a4dSopenharmony_ci ALL = MOUSE | KEYBOARD | TOUCHSCREEN, 632d4d9a4dSopenharmony_ci }; 642d4d9a4dSopenharmony_ci 652d4d9a4dSopenharmony_ci const char * const DEVICE_PATH = "/dev/input"; 662d4d9a4dSopenharmony_ci 672d4d9a4dSopenharmony_ci /* 682d4d9a4dSopenharmony_ci * Maximum number of signalled FDs to handle at a time. 692d4d9a4dSopenharmony_ci */ 702d4d9a4dSopenharmony_ci constexpr uint32_t EPOLL_MAX_EVENTS = 16; 712d4d9a4dSopenharmony_ci 722d4d9a4dSopenharmony_ci /* 732d4d9a4dSopenharmony_ci * Maximum number of event buffer size. 742d4d9a4dSopenharmony_ci */ 752d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_EVENT_BUFFER_SIZE = 256; 762d4d9a4dSopenharmony_ci 772d4d9a4dSopenharmony_ci constexpr int32_t INPUT_LOAD_SA_TIMEOUT_MS = 10000; 782d4d9a4dSopenharmony_ci 792d4d9a4dSopenharmony_ci constexpr int32_t INPUT_LATENCY_DELAYTIME_US = 50 * 1000; 802d4d9a4dSopenharmony_ci 812d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_LATENCY_DELAY_TIMES = 60; 822d4d9a4dSopenharmony_ci 832d4d9a4dSopenharmony_ci constexpr int32_t SESSION_WAIT_TIMEOUT_SECOND = 5; 842d4d9a4dSopenharmony_ci 852d4d9a4dSopenharmony_ci constexpr int32_t EPOLL_WAITTIME = 100; 862d4d9a4dSopenharmony_ci 872d4d9a4dSopenharmony_ci constexpr uint64_t WATCHDOG_INTERVAL_TIME_MS = 20 * 1000; 882d4d9a4dSopenharmony_ci 892d4d9a4dSopenharmony_ci /* The input device is a keyboard or has buttons. */ 902d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_KEYBOARD = 0x00000001; 912d4d9a4dSopenharmony_ci 922d4d9a4dSopenharmony_ci /* The input device is an alpha-numeric keyboard (not just a dial pad). */ 932d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_ALPHAKEY = 0x00000002; 942d4d9a4dSopenharmony_ci 952d4d9a4dSopenharmony_ci /* The input device is a touchscreen or a touchpad (either single-touch or multi-touch). */ 962d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_TOUCH = 0x00000004; 972d4d9a4dSopenharmony_ci 982d4d9a4dSopenharmony_ci /* The input device is a cursor device such as a trackball or mouse. */ 992d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_CURSOR = 0x00000008; 1002d4d9a4dSopenharmony_ci 1012d4d9a4dSopenharmony_ci /* The input device is a multi-touch touchscreen. */ 1022d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_TOUCH_MT = 0x00000010; 1032d4d9a4dSopenharmony_ci 1042d4d9a4dSopenharmony_ci /* The input device is a directional pad (implies keyboard, has DPAD keys). */ 1052d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_DPAD = 0x00000020; 1062d4d9a4dSopenharmony_ci 1072d4d9a4dSopenharmony_ci /* The input device is a gamepad (implies keyboard, has BUTTON keys). */ 1082d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_GAMEPAD = 0x00000040; 1092d4d9a4dSopenharmony_ci 1102d4d9a4dSopenharmony_ci /* The input device has switches. */ 1112d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_SWITCH = 0x00000080; 1122d4d9a4dSopenharmony_ci 1132d4d9a4dSopenharmony_ci /* The input device is a joystick (implies gamepad, has joystick absolute axes). */ 1142d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_JOYSTICK = 0x00000100; 1152d4d9a4dSopenharmony_ci 1162d4d9a4dSopenharmony_ci /* The input device has a vibrator (supports FF_RUMBLE). */ 1172d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_VIBRATOR = 0x00000200; 1182d4d9a4dSopenharmony_ci 1192d4d9a4dSopenharmony_ci /* The input device has a microphone. */ 1202d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_MIC = 0x00000400; 1212d4d9a4dSopenharmony_ci 1222d4d9a4dSopenharmony_ci /* The input device is an external stylus (has data we want to fuse with touch data). */ 1232d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_EXTERNAL_STYLUS = 0x00000800; 1242d4d9a4dSopenharmony_ci 1252d4d9a4dSopenharmony_ci /* The input device has a rotary encoder. */ 1262d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_ROTARY_ENCODER = 0x00001000; 1272d4d9a4dSopenharmony_ci 1282d4d9a4dSopenharmony_ci /* The input device is virtual (not a real device, not part of UI configuration). */ 1292d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_VIRTUAL = 0x40000000; 1302d4d9a4dSopenharmony_ci 1312d4d9a4dSopenharmony_ci /* The input device is external (not built-in). */ 1322d4d9a4dSopenharmony_ci constexpr uint32_t INPUT_DEVICE_CLASS_EXTERNAL = 0x80000000; 1332d4d9a4dSopenharmony_ci 1342d4d9a4dSopenharmony_ci constexpr uint32_t MAX_SIZE_OF_DEVICE_NAME = UINPUT_MAX_NAME_SIZE - 1; 1352d4d9a4dSopenharmony_ci 1362d4d9a4dSopenharmony_ci const std::string DH_ID_PREFIX = "Input_"; 1372d4d9a4dSopenharmony_ci 1382d4d9a4dSopenharmony_ci const std::string DINPUT_SPLIT_COMMA = ", "; 1392d4d9a4dSopenharmony_ci 1402d4d9a4dSopenharmony_ci const char VIR_NODE_SPLIT_CHAR = '|'; 1412d4d9a4dSopenharmony_ci const std::string VIR_NODE_SPLIT = "|"; 1422d4d9a4dSopenharmony_ci const std::string VIR_NODE_PID_SPLIT = "/"; 1432d4d9a4dSopenharmony_ci const uint32_t VIR_NODE_PHY_LEN = 3; 1442d4d9a4dSopenharmony_ci const uint32_t VIR_NODE_PHY_DEVID_IDX = 1; 1452d4d9a4dSopenharmony_ci const uint32_t VIR_NODE_PHY_DHID_IDX = 2; 1462d4d9a4dSopenharmony_ci 1472d4d9a4dSopenharmony_ci const std::string SOURCE_DEVICE_ID = "sourceDevId"; 1482d4d9a4dSopenharmony_ci 1492d4d9a4dSopenharmony_ci const std::string SINK_DEVICE_ID = "sinkDevId"; 1502d4d9a4dSopenharmony_ci 1512d4d9a4dSopenharmony_ci const std::string SOURCE_WINDOW_ID = "sourceWinId"; 1522d4d9a4dSopenharmony_ci 1532d4d9a4dSopenharmony_ci const std::string SINK_SHOW_WINDOW_ID = "sinkShowWinId"; 1542d4d9a4dSopenharmony_ci 1552d4d9a4dSopenharmony_ci const std::string SOURCE_WINDOW_WIDTH = "sourceWinWidth"; 1562d4d9a4dSopenharmony_ci 1572d4d9a4dSopenharmony_ci const std::string SOURCE_WINDOW_HEIGHT = "sourceWinHeight"; 1582d4d9a4dSopenharmony_ci 1592d4d9a4dSopenharmony_ci const std::string SINK_PROJECT_SHOW_WIDTH = "sinkProjShowWidth"; 1602d4d9a4dSopenharmony_ci 1612d4d9a4dSopenharmony_ci const std::string SINK_PROJECT_SHOW_HEIGHT = "sinkProjShowHeight"; 1622d4d9a4dSopenharmony_ci 1632d4d9a4dSopenharmony_ci const std::string SINK_WINDOW_SHOW_X = "sinkWinShowX"; 1642d4d9a4dSopenharmony_ci 1652d4d9a4dSopenharmony_ci const std::string SINK_WINDOW_SHOW_Y = "sinkWinShowY"; 1662d4d9a4dSopenharmony_ci 1672d4d9a4dSopenharmony_ci const std::string DEVICE_NAME = "name"; 1682d4d9a4dSopenharmony_ci 1692d4d9a4dSopenharmony_ci const std::string PHYSICAL_PATH = "physicalPath"; 1702d4d9a4dSopenharmony_ci 1712d4d9a4dSopenharmony_ci const std::string UNIQUE_ID = "uniqueId"; 1722d4d9a4dSopenharmony_ci 1732d4d9a4dSopenharmony_ci const std::string BUS = "bus"; 1742d4d9a4dSopenharmony_ci 1752d4d9a4dSopenharmony_ci const std::string VENDOR = "vendor"; 1762d4d9a4dSopenharmony_ci 1772d4d9a4dSopenharmony_ci const std::string PRODUCT = "product"; 1782d4d9a4dSopenharmony_ci 1792d4d9a4dSopenharmony_ci const std::string VERSION = "version"; 1802d4d9a4dSopenharmony_ci 1812d4d9a4dSopenharmony_ci const std::string DESCRIPTOR = "descriptor"; 1822d4d9a4dSopenharmony_ci 1832d4d9a4dSopenharmony_ci const std::string CLASSES = "classes"; 1842d4d9a4dSopenharmony_ci 1852d4d9a4dSopenharmony_ci const std::string EVENT_TYPES = "eventTypes"; 1862d4d9a4dSopenharmony_ci 1872d4d9a4dSopenharmony_ci const std::string EVENT_KEYS = "eventKeys"; 1882d4d9a4dSopenharmony_ci 1892d4d9a4dSopenharmony_ci const std::string ABS_TYPES = "absTypes"; 1902d4d9a4dSopenharmony_ci 1912d4d9a4dSopenharmony_ci const std::string ABS_INFOS = "absInfos"; 1922d4d9a4dSopenharmony_ci 1932d4d9a4dSopenharmony_ci const std::string REL_TYPES = "relTypes"; 1942d4d9a4dSopenharmony_ci 1952d4d9a4dSopenharmony_ci const std::string PROPERTIES = "properties"; 1962d4d9a4dSopenharmony_ci 1972d4d9a4dSopenharmony_ci const std::string MISCELLANEOUS = "miscellaneous"; 1982d4d9a4dSopenharmony_ci 1992d4d9a4dSopenharmony_ci const std::string LEDS = "leds"; 2002d4d9a4dSopenharmony_ci 2012d4d9a4dSopenharmony_ci const std::string REPEATS = "repeats"; 2022d4d9a4dSopenharmony_ci 2032d4d9a4dSopenharmony_ci const std::string SWITCHS = "switchs"; 2042d4d9a4dSopenharmony_ci 2052d4d9a4dSopenharmony_ci const std::string DH_TOUCH_PAD = "touchpad"; 2062d4d9a4dSopenharmony_ci 2072d4d9a4dSopenharmony_ci const std::string DINPUT_LOG_TITLE_TAG = "DINPUT"; 2082d4d9a4dSopenharmony_ci 2092d4d9a4dSopenharmony_ci constexpr const char* LATENCY_COUNT_THREAD_NAME = "latencyCount"; 2102d4d9a4dSopenharmony_ci 2112d4d9a4dSopenharmony_ci constexpr const char* EVENT_INJECT_THREAD_NAME = "eventInject"; 2122d4d9a4dSopenharmony_ci 2132d4d9a4dSopenharmony_ci constexpr const char* COLLECT_EVENT_THREAD_NAME = "collectEvents"; 2142d4d9a4dSopenharmony_ci 2152d4d9a4dSopenharmony_ci constexpr const char* CHECK_KEY_STATUS_THREAD_NAME = "checkKeyStatus"; 2162d4d9a4dSopenharmony_ci 2172d4d9a4dSopenharmony_ci constexpr int32_t LOG_MAX_LEN = 4096; 2182d4d9a4dSopenharmony_ci 2192d4d9a4dSopenharmony_ci constexpr uint32_t SCREEN_ID_DEFAULT = 0; 2202d4d9a4dSopenharmony_ci 2212d4d9a4dSopenharmony_ci constexpr uint32_t DEFAULT_VALUE = 0; 2222d4d9a4dSopenharmony_ci 2232d4d9a4dSopenharmony_ci constexpr int32_t UN_INIT_FD_VALUE = -1; 2242d4d9a4dSopenharmony_ci 2252d4d9a4dSopenharmony_ci constexpr int32_t SINK_SCREEN_INFO_SIZE = 4; 2262d4d9a4dSopenharmony_ci 2272d4d9a4dSopenharmony_ci constexpr int32_t MAX_LOG_TIMES = 20; 2282d4d9a4dSopenharmony_ci 2292d4d9a4dSopenharmony_ci enum class EHandlerMsgType { 2302d4d9a4dSopenharmony_ci DINPUT_SINK_EVENT_HANDLER_MSG = 1, 2312d4d9a4dSopenharmony_ci DINPUT_SOURCE_EVENT_HANDLER_MSG = 2 2322d4d9a4dSopenharmony_ci }; 2332d4d9a4dSopenharmony_ci 2342d4d9a4dSopenharmony_ci struct BusinessEvent { 2352d4d9a4dSopenharmony_ci std::vector<int32_t> pressedKeys; 2362d4d9a4dSopenharmony_ci int32_t keyCode; 2372d4d9a4dSopenharmony_ci int32_t keyAction; 2382d4d9a4dSopenharmony_ci }; 2392d4d9a4dSopenharmony_ci 2402d4d9a4dSopenharmony_ci struct TouchScreenEvent { 2412d4d9a4dSopenharmony_ci uint32_t absX; 2422d4d9a4dSopenharmony_ci uint32_t absY; 2432d4d9a4dSopenharmony_ci }; 2442d4d9a4dSopenharmony_ci 2452d4d9a4dSopenharmony_ci /* 2462d4d9a4dSopenharmony_ci * A raw event as retrieved from the input_event. 2472d4d9a4dSopenharmony_ci */ 2482d4d9a4dSopenharmony_ci struct RawEvent { 2492d4d9a4dSopenharmony_ci int64_t when; 2502d4d9a4dSopenharmony_ci uint32_t type; 2512d4d9a4dSopenharmony_ci uint32_t code; 2522d4d9a4dSopenharmony_ci int32_t value; 2532d4d9a4dSopenharmony_ci std::string descriptor; 2542d4d9a4dSopenharmony_ci std::string path; 2552d4d9a4dSopenharmony_ci 2562d4d9a4dSopenharmony_ci bool operator == (const RawEvent &e) 2572d4d9a4dSopenharmony_ci { 2582d4d9a4dSopenharmony_ci return this->type == e.type && this->code == e.code && 2592d4d9a4dSopenharmony_ci this->descriptor == e.descriptor && this->path == e.path; 2602d4d9a4dSopenharmony_ci } 2612d4d9a4dSopenharmony_ci }; 2622d4d9a4dSopenharmony_ci 2632d4d9a4dSopenharmony_ci /* 2642d4d9a4dSopenharmony_ci * Input device Info retrieved from the kernel. 2652d4d9a4dSopenharmony_ci */ 2662d4d9a4dSopenharmony_ci struct InputDevice { 2672d4d9a4dSopenharmony_ci inline InputDevice() : name(""), physicalPath(""), uniqueId(""), bus(0), vendor(0), product(0), 2682d4d9a4dSopenharmony_ci version(0), descriptor(""), classes(0) {} 2692d4d9a4dSopenharmony_ci std::string name; 2702d4d9a4dSopenharmony_ci std::string physicalPath; 2712d4d9a4dSopenharmony_ci std::string uniqueId; 2722d4d9a4dSopenharmony_ci uint16_t bus; 2732d4d9a4dSopenharmony_ci uint16_t vendor; 2742d4d9a4dSopenharmony_ci uint16_t product; 2752d4d9a4dSopenharmony_ci uint16_t version; 2762d4d9a4dSopenharmony_ci std::string descriptor; 2772d4d9a4dSopenharmony_ci uint32_t classes; 2782d4d9a4dSopenharmony_ci std::vector<uint32_t> eventTypes; 2792d4d9a4dSopenharmony_ci std::vector<uint32_t> eventKeys; 2802d4d9a4dSopenharmony_ci std::vector<uint32_t> absTypes; 2812d4d9a4dSopenharmony_ci std::map<uint32_t, std::vector<int32_t>> absInfos; 2822d4d9a4dSopenharmony_ci std::vector<uint32_t> relTypes; 2832d4d9a4dSopenharmony_ci std::vector<uint32_t> properties; 2842d4d9a4dSopenharmony_ci 2852d4d9a4dSopenharmony_ci std::vector<uint32_t> miscellaneous; 2862d4d9a4dSopenharmony_ci std::vector<uint32_t> leds; 2872d4d9a4dSopenharmony_ci std::vector<uint32_t> switchs; 2882d4d9a4dSopenharmony_ci std::vector<uint32_t> repeats; 2892d4d9a4dSopenharmony_ci }; 2902d4d9a4dSopenharmony_ci 2912d4d9a4dSopenharmony_ci /* 2922d4d9a4dSopenharmony_ci * Distributed Hardware Handle 2932d4d9a4dSopenharmony_ci */ 2942d4d9a4dSopenharmony_ci struct HardwareHandle { 2952d4d9a4dSopenharmony_ci // equipment ID 2962d4d9a4dSopenharmony_ci std::string eqId; 2972d4d9a4dSopenharmony_ci 2982d4d9a4dSopenharmony_ci // Hardware ID 2992d4d9a4dSopenharmony_ci std::string hhId; 3002d4d9a4dSopenharmony_ci 3012d4d9a4dSopenharmony_ci // Hardware detailed information 3022d4d9a4dSopenharmony_ci std::string hdInfo; 3032d4d9a4dSopenharmony_ci }; 3042d4d9a4dSopenharmony_ci 3052d4d9a4dSopenharmony_ci // Synthetic raw event type codes produced when devices are added or removed. 3062d4d9a4dSopenharmony_ci enum class DeviceType { 3072d4d9a4dSopenharmony_ci // Sent when a device is added. 3082d4d9a4dSopenharmony_ci DEVICE_ADDED = 0x10000000, 3092d4d9a4dSopenharmony_ci 3102d4d9a4dSopenharmony_ci // Sent when a device is removed. 3112d4d9a4dSopenharmony_ci DEVICE_REMOVED = 0x20000000, 3122d4d9a4dSopenharmony_ci 3132d4d9a4dSopenharmony_ci // Sent when all added/removed devices from the most recent scan have been reported. 3142d4d9a4dSopenharmony_ci // This event is always sent at least once. 3152d4d9a4dSopenharmony_ci FINISHED_DEVICE_SCAN = 0x30000000, 3162d4d9a4dSopenharmony_ci 3172d4d9a4dSopenharmony_ci FIRST_SYNTHETIC_EVENT = DEVICE_ADDED, 3182d4d9a4dSopenharmony_ci }; 3192d4d9a4dSopenharmony_ci 3202d4d9a4dSopenharmony_ci /* 3212d4d9a4dSopenharmony_ci * Input device connection status 3222d4d9a4dSopenharmony_ci */ 3232d4d9a4dSopenharmony_ci struct InputDeviceEvent { 3242d4d9a4dSopenharmony_ci DeviceType type; 3252d4d9a4dSopenharmony_ci InputDevice deviceInfo; 3262d4d9a4dSopenharmony_ci }; 3272d4d9a4dSopenharmony_ci 3282d4d9a4dSopenharmony_ci /* 3292d4d9a4dSopenharmony_ci * Device Type definitions 3302d4d9a4dSopenharmony_ci */ 3312d4d9a4dSopenharmony_ci enum class DInputServerType { 3322d4d9a4dSopenharmony_ci /* 3332d4d9a4dSopenharmony_ci * null server 3342d4d9a4dSopenharmony_ci */ 3352d4d9a4dSopenharmony_ci NULL_SERVER_TYPE = 0, 3362d4d9a4dSopenharmony_ci 3372d4d9a4dSopenharmony_ci /* 3382d4d9a4dSopenharmony_ci * source server 3392d4d9a4dSopenharmony_ci */ 3402d4d9a4dSopenharmony_ci SOURCE_SERVER_TYPE = 1, 3412d4d9a4dSopenharmony_ci 3422d4d9a4dSopenharmony_ci /* 3432d4d9a4dSopenharmony_ci * sink server. 3442d4d9a4dSopenharmony_ci */ 3452d4d9a4dSopenharmony_ci SINK_SERVER_TYPE = 2, 3462d4d9a4dSopenharmony_ci }; 3472d4d9a4dSopenharmony_ci 3482d4d9a4dSopenharmony_ci // Current Input Session Status 3492d4d9a4dSopenharmony_ci enum class SessionStatus : uint32_t { 3502d4d9a4dSopenharmony_ci CLOSED = 0x00, 3512d4d9a4dSopenharmony_ci OPENING = 0x01, 3522d4d9a4dSopenharmony_ci OPENED = 0x02, 3532d4d9a4dSopenharmony_ci CLOSING = 0x03, 3542d4d9a4dSopenharmony_ci }; 3552d4d9a4dSopenharmony_ci} // namespace DistributedInput 3562d4d9a4dSopenharmony_ci} // namespace DistributedHardware 3572d4d9a4dSopenharmony_ci} // namespace OHOS 3582d4d9a4dSopenharmony_ci 3592d4d9a4dSopenharmony_ci#endif // OHOS_DISTRIBUTED_INPUT_CONSTANTS_H 360