input_generator: Add a new API for initialize
[platform/core/api/efl-util.git] / include / efl_util.h.in
index 80acd47..258648f 100644 (file)
@@ -191,9 +191,6 @@ API int efl_util_set_window_opaque_state(Evas_Object *window, int opaque);
  * @privilege %http://tizen.org/privilege/display
  * @remarks This API needs the privilege.
  *          If the application which is not get the privilege use this API, the window manager generates the permission deny error.
- $TZ_CFG_KEEP_BEGIN$
- *          The application can notice this error if it set the callback function using the efl_util_set_window_screen_mode_error_cb().
- $TZ_CFG_KEEP_END$
  * @param[in] window The EFL window
  * @param[in] mode The screen mode
  * @return @c 0 on success, otherwise a negative error value
@@ -214,7 +211,6 @@ API int efl_util_set_window_screen_mode(Evas_Object *window, efl_util_screen_mod
  */
 API int efl_util_get_window_screen_mode(Evas_Object *window, efl_util_screen_mode_e *mode);
 
-$TZ_CFG_KEEP_BEGIN$
 /**
  * @deprecated Deprecated since 3.0.
  * @brief Called when an error occurs for setting window's screen mode
@@ -258,7 +254,6 @@ API int efl_util_set_window_screen_mode_error_cb(Evas_Object *window, efl_util_w
  * @see efl_util_set_window_screen_mode_error_cb()
  */
 API int efl_util_unset_window_screen_mode_error_cb(Evas_Object *window) TIZEN_DEPRECATED_API;
-$TZ_CFG_KEEP_END$
 
 /**
  * @brief Sets the user's preferred brightness of the specified window.
@@ -320,12 +315,13 @@ API int efl_util_get_window_brightness(Evas_Object *window, int *brightness);
  */
 typedef enum
 {
-   EFL_UTIL_INPUT_DEVTYPE_NONE = 0x0,
+   EFL_UTIL_INPUT_DEVTYPE_NONE = 0x0, /**< (Deprecated since 3.0.) */
    EFL_UTIL_INPUT_DEVTYPE_TOUCHSCREEN = (1 << 0), /**< Touch Screen device */
    EFL_UTIL_INPUT_DEVTYPE_KEYBOARD = (1 << 1), /**< Keyboard device */
+   EFL_UTIL_INPUT_DEVTYPE_POINTER = (1 << 2), /**< Mouse device (Since 3.0) */
    EFL_UTIL_INPUT_DEVTYPE_ALL = EFL_UTIL_INPUT_DEVTYPE_TOUCHSCREEN |
-                                EFL_UTIL_INPUT_DEVTYPE_KEYBOARD, /**< Both of touch screen and keyboard device */
-   EFL_UTIL_INPUT_DEVTYPE_MAX = (1 << 10)
+                                EFL_UTIL_INPUT_DEVTYPE_KEYBOARD, /**< Both of touch screen and keyboard device (Deprecated since 3.0. Check all enumerations using OR operand instead) */
+   EFL_UTIL_INPUT_DEVTYPE_MAX = (1 << 10) /**< (Deprecated since 3.0.) */
 } efl_util_input_device_type_e;
 
 /**
@@ -335,21 +331,55 @@ typedef enum
  */
 typedef enum
 {
-   EFL_UTIL_INPUT_TOUCH_NONE,
+   EFL_UTIL_INPUT_TOUCH_NONE, /**< (Deprecated since 3.0.) */
    EFL_UTIL_INPUT_TOUCH_BEGIN, /**< Finger press. It is same a behavior put your finger on touch screen */
    EFL_UTIL_INPUT_TOUCH_UPDATE, /**< Finger move. It is same a behavior move your finger on touch screen */
    EFL_UTIL_INPUT_TOUCH_END, /**< Finger release. It is same a behavior release your finger on touch screen */
-   EFL_UTIL_INPUT_TOUCH_MAX = 10
+   EFL_UTIL_INPUT_TOUCH_MAX = 10 /**< (Deprecated since 3.0.) */
 } efl_util_input_touch_type_e;
 
 /**
+ * @platform
+ * @brief Enumeration of pointer event types.
+ * @since_tizen 3.0
+ */
+typedef enum
+{
+   EFL_UTIL_INPUT_POINTER_BUTTON_DOWN, /**< Mouse button press. */
+   EFL_UTIL_INPUT_POINTER_BUTTON_UP, /**< Mouse move. */
+   EFL_UTIL_INPUT_POINTER_MOVE, /**< Mouse button release. */
+} efl_util_input_pointer_type_e;
+
+/**
    * @platform
    * @brief Initializes system and check input generate functions are supported, open devices generated events.
    * @since_tizen $TZ_CFG_VER_24_OR_30$
    * @privlevel platform
    * @privilege %http://tizen.org/privilege/inputgenerator
    * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
-   * @param[in] dev_type The device type want to generate events (ex> #EFL_UTIL_INPUT_DEVTYPE_TOUCHSCREEN, #EFL_UTIL_INPUT_DEVTYPE_KEYBOARD, #EFL_UTIL_INPUT_DEVTYPE_ALL)
+   * @remarks The dev_type is changed into the unsigned int to perform bitwise operations. (Since 3.0)
+   * @param[in] dev_type The device type want to generate events (ex> #EFL_UTIL_INPUT_DEVTYPE_TOUCHSCREEN | #EFL_UTIL_INPUT_DEVTYPE_KEYBOARD)
+   * @return #efl_util_inputgen_h on success, otherwise @c NULL
+   * @retval #efl_util_inputgen_h The input generator handle
+   * @exception #EFL_UTIL_ERROR_NONE Successful
+   * @exception #EFL_UTIL_ERROR_INVALID_PARAMETER Invalid parameter
+   * @exception #EFL_UTIL_ERROR_NO_SUCH_DEVICE No such device or address
+   * @exception #EFL_UTIL_ERROR_INVALID_OPERATION Function not implemented
+   * @exception #EFL_UTIL_ERROR_OUT_OF_MEMORY Memory allocation failure
+   * @see efl_util_input_deinitialize_generator()
+   */
+API efl_util_inputgen_h efl_util_input_initialize_generator(unsigned int dev_type);
+
+/**
+   * @platform
+   * @brief Initializes system, check input generate functions are supported and then open events generator devices with given name.
+   * @since_tizen 4.0
+   * @privlevel platform
+   * @privilege %http://tizen.org/privilege/inputgenerator
+   * @remarks The specific error code can be obtained using the get_last_result() method. Error codes are described in Exception section.
+   * @remarks The dev_type is changed into the unsigned int to perform bitwise operations.
+   * @param[in] dev_type The device type want to generate events (ex> #EFL_UTIL_INPUT_DEVTYPE_TOUCHSCREEN | #EFL_UTIL_INPUT_DEVTYPE_KEYBOARD)
+   * @param[in] name The device name (maximum 31 characters)
    * @return #efl_util_inputgen_h on success, otherwise @c NULL
    * @retval #efl_util_inputgen_h The input generator handle
    * @exception #EFL_UTIL_ERROR_NONE Successful
@@ -359,7 +389,7 @@ typedef enum
    * @exception #EFL_UTIL_ERROR_OUT_OF_MEMORY Memory allocation failure
    * @see efl_util_input_deinitialize_generator()
    */
-API efl_util_inputgen_h efl_util_input_initialize_generator(efl_util_input_device_type_e dev_type);
+API efl_util_inputgen_h efl_util_input_initialize_generator_with_name(unsigned int dev_type, const char *name);
 
 /**
    * @platform
@@ -410,6 +440,26 @@ API int efl_util_input_generate_key(efl_util_inputgen_h inputgen_h, const char *
 API int efl_util_input_generate_touch(efl_util_inputgen_h inputgen_h, int idx, efl_util_input_touch_type_e touch_type, int x, int y);
 
 /**
+   * @platform
+   * @brief Generate a pointer event using a opened device.
+   * @since_tizen 3.0
+   * @privlevel platform
+   * @privilege %http://tizen.org/privilege/inputgenerator
+   * @param[in] inputgen_h The #efl_util_inputgen_h handle
+   * @param[in] buttons The number of button
+   * @param[in] pointer_type The pointer type (ex> EFL_UTIL_INPUT_POINTER_BUTTON_PRESS, EFL_UTIL_INPUT_POINTER_BUTTON_UP, EFL_UTIL_INPUT_POINTER_MOVE)
+   * @param[in] x x coordination to move
+   * @param[in] y y coordination to move
+   * @return @c 0 on success, otherwise a negative error value
+   * @retval #EFL_UTIL_ERROR_NONE Successful
+   * @retval #EFL_UTIL_ERROR_INVALID_PARAMETER Invalid parameter
+   * @retval #EFL_UTIL_ERROR_PERMISSION_DENIED Has no permission to generate pointer
+   * @retval #EFL_UTIL_ERROR_NO_SUCH_DEVICE No such device or address
+   * @retval #EFL_UTIL_ERROR_OUT_OF_MEMORY Memory allocation failure
+   */
+API int efl_util_input_generate_pointer(efl_util_inputgen_h inputgen_h, int buttons, efl_util_input_pointer_type_e pointer_type, int x, int y);
+
+/**
  * @}
  */
 
@@ -452,7 +502,7 @@ API efl_util_screenshot_h efl_util_screenshot_initialize(int width, int height);
  * @privlevel platform
  * @privilege %http://tizen.org/privilege/screenshot
  * @remarks The specific error code can be obtained using the get_last_result()
- *          The tbm_surface_h must be free by caller
+ *          The #tbm_surface_h must be free by caller
  * @param[in] screenshot efl_util_screenshot_h handle
  * @return #tbm_surface_h on success, otherwise @c NULL
  * @retval #tbm_surface_h The TBM surface handle