From 341a74812f6c9a96b4971033b772db69f4070593 Mon Sep 17 00:00:00 2001 From: hellohyh001 Date: Sat, 7 Sep 2024 11:35:49 +0000 Subject: [PATCH] 11 Signed-off-by: hellohyh001 --- .../kits/c/input/oh_input_manager.h | 241 ++++++++++++++++++ multimodalinput/kits/c/ohinput.ndk.json | 60 +++++ 2 files changed, 301 insertions(+) diff --git a/multimodalinput/kits/c/input/oh_input_manager.h b/multimodalinput/kits/c/input/oh_input_manager.h index 1e6c0dd85..8ab10be18 100644 --- a/multimodalinput/kits/c/input/oh_input_manager.h +++ b/multimodalinput/kits/c/input/oh_input_manager.h @@ -146,6 +146,26 @@ typedef enum Input_TouchEventAction { TOUCH_ACTION_UP = 3, } Input_TouchEventAction; +/** + * @brief Enumerates keyboard types. + * + * @since 13 + */ +typedef enum Input_KeyboardType { + /** Keyboard without keys */ + KEYBOARD_TYPE_NONE = 0, + /** Keyboard with unknown keys */ + KEYBOARD_TYPE_UNKNOWN = 1, + /** Full keyboard */ + KEYBOARD_TYPE_ALPHABETIC = 2, + /** Digital keyboard */ + KEYBOARD_TYPE_DIGITAL = 3, + /** Stylus */ + KEYBOARD_TYPE_STYLUS = 4, + /** Remote control */ + KEYBOARD_TYPE_REMOTE_CONTROL = 5, +} Input_KeyboardType; + /** * @brief Enumerates event source types. * @@ -260,6 +280,20 @@ typedef void (*Input_TouchEventCallback)(const Input_TouchEvent* touchEvent); */ typedef void (*Input_AxisEventCallback)(const Input_AxisEvent* axisEvent); +/** + * @brief Defines the callback for device addition events. + * @param deviceId Device ID. + * @since 13 + */ +typedef void (*Input_DeviceAddedCallback)(int32_t deviceId); + +/** + * @brief Defines the callback for device removal events. + * @param deviceId Device ID. + * @since 13 + */ +typedef void (*Input_DeviceRemovedCallback)(int32_t deviceId); + /** * @brief Defines the structure for the interceptor of event callbacks, * including mouseCallback, touchCallback, and axisCallback. @@ -275,12 +309,30 @@ typedef struct Input_InterceptorEventCallback { Input_AxisEventCallback axisCallback; } Input_InterceptorEventCallback; +/** + * @brief Defines a listener for device insertion and removal events. + * @since 13 + */ +typedef struct Input_DeviceListener { + /** Callback for device addition events */ + Input_DeviceAddedCallback deviceAddedCallback; + /** Callback for device removal events */ + Input_DeviceRemovedCallback deviceRemovedCallback; +} Input_DeviceListener; + /** * @brief Defines event interceptor options. * @since 12 */ typedef struct Input_InterceptorOptions Input_InterceptorOptions; +/** + * @brief Represents information about the input device. + * + * @since 13 + */ +typedef struct Input_DeviceInfo Input_DeviceInfo; + /** * @brief Queries the key state. * @@ -1201,6 +1253,195 @@ Input_Result OH_Input_RemoveKeyEventInterceptor(); * @since 12 */ Input_Result OH_Input_RemoveInputEventInterceptor(); + +/** + * @brief Registers a listener for device hot swap events. + * + * @param listener Pointer to an {@Link Input_DeviceListener} object. + * + * @return OH_Input_RegisterDeviceListener status code, specifically, + * {@link INPUT_SUCCESS} if the operation is successful;\n + * {@link INPUT_PARAMETER_ERROR} if listener is NULL; + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_Result OH_Input_RegisterDeviceListener(Input_DeviceListener* listener); + +/** + * @brief Unregisters the listener for device hot swap events. + * + * @param listener Pointer to the listener for device hot swap events. For details, see {@Link Input_DeviceListener}. + * + * @return OH_Input_UnregisterDeviceListener status code, specifically, + * {@link INPUT_SUCCESS} if the operation is successful;\n + * {@link INPUT_PARAMETER_ERROR} if listener is NULL or no listener is registered; + * {@link INPUT_SERVICE_EXCEPTION} if the service is abnormal. + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_Result OH_Input_UnregisterDeviceListener(Input_DeviceListener* listener); + +/** + * @brief Unregisters the listener for all device hot swap events. + * + * @return OH_Input_UnregisterDeviceListener status code, specifically, + * {@link INPUT_SUCCESS} if the operation is successful;\n + * {@link INPUT_SERVICE_EXCEPTION} if the service is abnormal. + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_Result OH_Input_UnregisterDeviceListeners(); + +/** + * @brief Obtains the IDs of all input devices. + * + * @param deviceIds Array of input device IDs. + * @param inSize Size of the array of input device IDs. + * @param outSize Length of the list of input device IDs. The value cannot be greater than the value of inSize. + * @return OH_Input_GetDeviceIds result code, specifically, + * {@link INPUT_SUCCESS} if the operation is successful; + * {@link INPUT_PARAMETER_ERROR} if deviceIds or outSize is a null pointer or inSize is less than 0. + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_Result OH_Input_GetDeviceIds(int32_t *deviceIds, int32_t inSize, int32_t *outSize); + +/** + * @brief Obtains the information about an input device. + * + * @param deviceId Device ID. + * @param deviceInfo Pointer to an {@Link Input_DeviceInfo} object. + * @return OH_Input_GetDevice result code, specifically, + * {@link INPUT_SUCCESS} if the operation is successful; + * {@link INPUT_PARAMETER_ERROR} if the deviceInfo is a null pointer or the deviceId is invalid. + * You can use the {@Link OH_Input_GetDeviceIds} interface to query the device IDs supported by the system. + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_Result OH_Input_GetDevice(int32_t deviceId, Input_DeviceInfo **deviceInfo); + +/** + * @brief Creates a deviceInfo object. + * + * @return Pointer to an {@Link Input_DeviceInfo} object if the operation is successful; + * a null pointer otherwise (possibly because of a memory allocation failure). + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_DeviceInfo* OH_Input_CreateDeviceInfo(void); + +/** + * @brief Destroys a deviceInfo object. + * + * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}. + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +void OH_Input_DestroyDeviceInfo(Input_DeviceInfo **deviceInfo); + +/** + * @brief Obtains the keyboard type of an input device. + * + * @param deviceId Device ID. + * @param keyboardType Pointer to the keyboard type of the input device. + * @return OH_Input_GetKeyboardType result code, specifically, + * {@link INPUT_SUCCESS} if the operation is successful; + * {@link INPUT_PARAMETER_ERROR} if the device ID is invalid or keyboardType is a null pointer. + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_Result OH_Input_GetKeyboardType(int32_t deviceId, int32_t *keyboardType); + +/** + * @brief Obtains the ID of an input device. + * + * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}. + * @param id Pointer to the ID of the input device. + * @return OH_Input_GetDeviceId result code, specifically, + * {@link INPUT_SUCCESS} if the operation is successful; + * {@link INPUT_PARAMETER_ERROR} if deviceInfo or id is a null pointer. + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_Result OH_Input_GetDeviceId(Input_DeviceInfo *deviceInfo, int32_t *id); + +/** + * @brief Obtains the name of an input device. + * + * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}. + * @param name Pointer to the name of the input device. + * @return OH_Input_GetDeviceName result code, specifically, + * {@link INPUT_SUCCESS} if the operation is successful; + * {@link INPUT_PARAMETER_ERROR} if deviceInfo or name is a null pointer. + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_Result OH_Input_GetDeviceName(Input_DeviceInfo *deviceInfo, char **name); + +/** + * @brief Obtains the capabilities of an input device, for example, a touchscreen, touchpad, or keyboard. + * + * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}. + * @param capabilities Pointer to the capabilities of the input device. + * @return OH_Input_GetCapabilities result code, specifically, + * {@link INPUT_SUCCESS} if the operation is successful; + * {@link INPUT_PARAMETER_ERROR} if deviceInfo or capabilities is a null pointer. + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_Result OH_Input_GetCapabilities(Input_DeviceInfo *deviceInfo, int32_t *capabilities); + +/** + * @brief Obtains the version information of an input device. + * + * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}. + * @param version Pointer to the version information of the input device. + * @return OH_Input_GetDeviceVersion result code, specifically, + * {@link INPUT_SUCCESS} if the operation is successful; + * {@link INPUT_PARAMETER_ERROR} if deviceInfo or version is a null pointer. + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_Result OH_Input_GetDeviceVersion(Input_DeviceInfo *deviceInfo, int32_t *version); + +/** + * @brief Obtains the product information of an input device. + * + * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}. + * @param product Pointer to the product information of the input device. + * @return OH_Input_GetDeviceProduct result code, specifically, + * {@link INPUT_SUCCESS} if the operation is successful; + * {@link INPUT_PARAMETER_ERROR} if deviceInfo or product is a null pointer. + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_Result OH_Input_GetDeviceProduct(Input_DeviceInfo *deviceInfo, int32_t *product); + +/** + * @brief Obtains the vendor information of an input device. + * + * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}. + * @param vendor Pointer to the vendor information of the input device. + * @return OH_Input_GetDeviceVendor result code, specifically, + * {@link INPUT_SUCCESS} if the operation is successful; + * {@link INPUT_PARAMETER_ERROR} if deviceInfo or vendor is a null pointer. + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_Result OH_Input_GetDeviceVendor(Input_DeviceInfo *deviceInfo, int32_t *vendor); + +/** + * @brief Obtains the physical address of an input device. + * + * @param deviceInfo information object. For details, see {@Link Input_DeviceInfo}. + * @param address Pointer to the physical address of the input device. + * @return OH_Input_GetDeviceAddress result code, specifically, + * {@link INPUT_SUCCESS} if the operation is successful; + * {@link INPUT_PARAMETER_ERROR} if deviceInfo or address is a null pointer. + * @syscap SystemCapability.MultimodalInput.Input.Core + * @since 13 + */ +Input_Result OH_Input_GetDeviceAddress(Input_DeviceInfo *deviceInfo, char **address); #ifdef __cplusplus } #endif diff --git a/multimodalinput/kits/c/ohinput.ndk.json b/multimodalinput/kits/c/ohinput.ndk.json index cfbe993ae..0e4f25e48 100644 --- a/multimodalinput/kits/c/ohinput.ndk.json +++ b/multimodalinput/kits/c/ohinput.ndk.json @@ -314,5 +314,65 @@ { "first_introduced": "12", "name": "OH_Input_RemoveInputEventInterceptor" + }, + { + "first_introduced": "13", + "name": "OH_Input_GetDeviceIds" + }, + { + "first_introduced": "13", + "name": "OH_Input_GetDevice" + }, + { + "first_introduced": "13", + "name": "OH_Input_CreateDeviceInfo" + }, + { + "first_introduced": "13", + "name": "OH_Input_DestroyDeviceInfo" + }, + { + "first_introduced": "13", + "name": "OH_Input_GetKeyboardType" + }, + { + "first_introduced": "13", + "name": "OH_Input_GetDeviceId" + }, + { + "first_introduced": "13", + "name": "OH_Input_GetDeviceName" + }, + { + "first_introduced": "13", + "name": "OH_Input_GetCapabilities" + }, + { + "first_introduced": "13", + "name": "OH_Input_GetDeviceVersion" + }, + { + "first_introduced": "13", + "name": "OH_Input_GetDeviceProduct" + }, + { + "first_introduced": "13", + "name": "OH_Input_GetDeviceVendor" + }, + { + "first_introduced": "13", + "name": "OH_Input_GetDeviceAddress" + }, + { + "first_introduced": "13", + "name": "OH_Input_RegisterDeviceListener" + }, + { + "first_introduced": "13", + "name": "OH_Input_UnregisterDeviceListener" + }, + { + "first_introduced": "13", + "name": "OH_Input_UnregisterDeviceListeners" } ] \ No newline at end of file -- Gitee