libinput/src/libinput.sym

360 lines
12 KiB
Text
Raw Normal View History

/* in alphabetical order! */
LIBINPUT_0.12.0 {
global:
libinput_config_status_to_str;
libinput_device_config_accel_get_default_speed;
libinput_device_config_accel_get_speed;
libinput_device_config_accel_is_available;
libinput_device_config_accel_set_speed;
libinput_device_config_calibration_get_default_matrix;
libinput_device_config_calibration_get_matrix;
libinput_device_config_calibration_has_matrix;
libinput_device_config_calibration_set_matrix;
libinput_device_config_click_get_default_method;
libinput_device_config_click_get_method;
libinput_device_config_click_get_methods;
libinput_device_config_click_set_method;
libinput_device_config_left_handed_get;
libinput_device_config_left_handed_get_default;
libinput_device_config_left_handed_is_available;
libinput_device_config_left_handed_set;
libinput_device_config_scroll_get_button;
libinput_device_config_scroll_get_default_button;
libinput_device_config_scroll_get_default_method;
libinput_device_config_scroll_get_default_natural_scroll_enabled;
libinput_device_config_scroll_get_method;
libinput_device_config_scroll_get_methods;
libinput_device_config_scroll_get_natural_scroll_enabled;
libinput_device_config_scroll_has_natural_scroll;
libinput_device_config_scroll_set_button;
libinput_device_config_scroll_set_method;
libinput_device_config_scroll_set_natural_scroll_enabled;
libinput_device_config_send_events_get_default_mode;
libinput_device_config_send_events_get_mode;
libinput_device_config_send_events_get_modes;
libinput_device_config_send_events_set_mode;
libinput_device_config_tap_get_default_enabled;
libinput_device_config_tap_get_enabled;
libinput_device_config_tap_get_finger_count;
libinput_device_config_tap_set_enabled;
libinput_device_get_context;
libinput_device_get_device_group;
libinput_device_get_id_product;
libinput_device_get_id_vendor;
libinput_device_get_name;
libinput_device_get_output_name;
libinput_device_get_seat;
libinput_device_get_size;
libinput_device_get_sysname;
libinput_device_get_udev_device;
libinput_device_get_user_data;
libinput_device_group_get_user_data;
libinput_device_group_ref;
libinput_device_group_set_user_data;
libinput_device_group_unref;
libinput_device_has_capability;
libinput_device_led_update;
libinput_device_pointer_has_button;
libinput_device_ref;
libinput_device_set_seat_logical_name;
libinput_device_set_user_data;
libinput_device_unref;
libinput_dispatch;
libinput_event_destroy;
libinput_event_device_notify_get_base_event;
libinput_event_get_context;
libinput_event_get_device;
libinput_event_get_device_notify_event;
libinput_event_get_keyboard_event;
libinput_event_get_pointer_event;
libinput_event_get_touch_event;
libinput_event_get_type;
libinput_event_keyboard_get_base_event;
libinput_event_keyboard_get_key;
libinput_event_keyboard_get_key_state;
libinput_event_keyboard_get_seat_key_count;
libinput_event_keyboard_get_time;
libinput_event_pointer_get_absolute_x;
libinput_event_pointer_get_absolute_x_transformed;
libinput_event_pointer_get_absolute_y;
libinput_event_pointer_get_absolute_y_transformed;
Add pointer axis sources to the API For a caller to implement/provide kinetic scrolling ("inertial scrolling", "fling scrolling"), it needs to know how the scrolling motion was implemented, and what to expect in the future. Add this information to the pointer axis event. The three scroll sources we have are: * wheels: scrolling is in discreet steps, you don't know when it ends, the wheel will just stop sending events * fingers: scrolling is continuous coordinate space, we know when it stops and we can tell the caller * continuous: scrolling is in continuous coordinate space but we may or may not know when it stops. if scroll lock is used, the device may never technically get out of scroll mode even if it doesn't send events at any given moment Use case: trackpoint/trackball scroll emulation on button press The stop event is now codified in the API documentation, so callers can use that for kinetic scrolling. libinput does not implement kinetic scrolling itself. Not covered by this patch: * The wheel event is currently defined as "typical mouse wheel step", this is different to Qt where the step value is 1/8 of a degree. Some better definition here may help. * It is unclear how an absolute device would map into relative motion if the device itself is not controlling absolute motion. * For diagonal scrolling, the vertical/horizontal terminator events would come in separately. The caller would have to deal with that somehow. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Original patch, before the rebase onto today's master: Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2014-11-05 16:22:07 +10:00
libinput_event_pointer_get_axis_source;
libinput_event_pointer_get_axis_value;
libinput_event_pointer_get_axis_value_discrete;
libinput_event_pointer_get_base_event;
libinput_event_pointer_get_button;
libinput_event_pointer_get_button_state;
libinput_event_pointer_get_dx;
libinput_event_pointer_get_dx_unaccelerated;
libinput_event_pointer_get_dy;
libinput_event_pointer_get_dy_unaccelerated;
libinput_event_pointer_get_seat_button_count;
libinput_event_pointer_get_time;
libinput_event_pointer_has_axis;
libinput_event_touch_get_base_event;
libinput_event_touch_get_seat_slot;
libinput_event_touch_get_slot;
libinput_event_touch_get_time;
libinput_event_touch_get_x;
libinput_event_touch_get_x_transformed;
libinput_event_touch_get_y;
libinput_event_touch_get_y_transformed;
libinput_get_event;
libinput_get_fd;
libinput_get_user_data;
libinput_log_get_priority;
libinput_log_set_handler;
libinput_log_set_priority;
libinput_next_event_type;
libinput_path_add_device;
libinput_path_create_context;
libinput_path_remove_device;
libinput_ref;
libinput_resume;
libinput_seat_get_context;
libinput_seat_get_logical_name;
libinput_seat_get_physical_name;
libinput_seat_get_user_data;
libinput_seat_ref;
libinput_seat_set_user_data;
libinput_seat_unref;
libinput_set_user_data;
libinput_suspend;
libinput_udev_assign_seat;
libinput_udev_create_context;
libinput_unref;
local:
*;
};
LIBINPUT_0.14.0 {
global:
libinput_device_config_middle_emulation_get_default_enabled;
libinput_device_config_middle_emulation_get_enabled;
libinput_device_config_middle_emulation_is_available;
libinput_device_config_middle_emulation_set_enabled;
} LIBINPUT_0.12.0;
LIBINPUT_0.15.0 {
global:
libinput_device_keyboard_has_key;
} LIBINPUT_0.14.0;
LIBINPUT_0.19.0 {
global:
libinput_device_config_tap_set_drag_lock_enabled;
libinput_device_config_tap_get_drag_lock_enabled;
libinput_device_config_tap_get_default_drag_lock_enabled;
} LIBINPUT_0.15.0;
LIBINPUT_0.20.0 {
libinput_event_gesture_get_angle_delta;
2015-01-22 16:41:50 +01:00
libinput_event_gesture_get_base_event;
libinput_event_gesture_get_cancelled;
2015-01-22 16:41:50 +01:00
libinput_event_gesture_get_dx;
libinput_event_gesture_get_dx_unaccelerated;
libinput_event_gesture_get_dy;
libinput_event_gesture_get_dy_unaccelerated;
libinput_event_gesture_get_finger_count;
libinput_event_gesture_get_scale;
2015-01-22 16:41:50 +01:00
libinput_event_gesture_get_time;
libinput_event_get_gesture_event;
} LIBINPUT_0.19.0;
LIBINPUT_0.21.0 {
libinput_device_config_dwt_is_available;
libinput_device_config_dwt_set_enabled;
libinput_device_config_dwt_get_enabled;
libinput_device_config_dwt_get_default_enabled;
libinput_event_gesture_get_time_usec;
libinput_event_keyboard_get_time_usec;
libinput_event_pointer_get_time_usec;
libinput_event_touch_get_time_usec;
} LIBINPUT_0.20.0;
LIBINPUT_1.1 {
libinput_device_config_accel_get_profile;
libinput_device_config_accel_get_profiles;
libinput_device_config_accel_get_default_profile;
libinput_device_config_accel_set_profile;
} LIBINPUT_0.21.0;
LIBINPUT_1.2 {
libinput_device_config_tap_get_drag_enabled;
libinput_device_config_tap_get_default_drag_enabled;
libinput_device_config_tap_set_drag_enabled;
libinput_event_get_tablet_tool_event;
libinput_event_tablet_tool_x_has_changed;
libinput_event_tablet_tool_y_has_changed;
libinput_event_tablet_tool_pressure_has_changed;
libinput_event_tablet_tool_distance_has_changed;
libinput_event_tablet_tool_rotation_has_changed;
libinput_event_tablet_tool_tilt_x_has_changed;
libinput_event_tablet_tool_tilt_y_has_changed;
libinput_event_tablet_tool_wheel_has_changed;
libinput_event_tablet_tool_slider_has_changed;
libinput_event_tablet_tool_get_dx;
libinput_event_tablet_tool_get_dy;
libinput_event_tablet_tool_get_x;
libinput_event_tablet_tool_get_y;
libinput_event_tablet_tool_get_pressure;
libinput_event_tablet_tool_get_distance;
libinput_event_tablet_tool_get_tilt_x;
libinput_event_tablet_tool_get_tilt_y;
libinput_event_tablet_tool_get_rotation;
libinput_event_tablet_tool_get_slider_position;
libinput_event_tablet_tool_get_wheel_delta;
libinput_event_tablet_tool_get_wheel_delta_discrete;
libinput_event_tablet_tool_get_base_event;
libinput_event_tablet_tool_get_button;
libinput_event_tablet_tool_get_button_state;
libinput_event_tablet_tool_get_proximity_state;
libinput_event_tablet_tool_get_seat_button_count;
libinput_event_tablet_tool_get_time;
libinput_event_tablet_tool_get_tip_state;
libinput_event_tablet_tool_get_tool;
libinput_event_tablet_tool_get_x_transformed;
libinput_event_tablet_tool_get_y_transformed;
libinput_event_tablet_tool_get_time_usec;
libinput_tablet_tool_get_serial;
libinput_tablet_tool_get_tool_id;
libinput_tablet_tool_get_type;
libinput_tablet_tool_get_user_data;
libinput_tablet_tool_has_pressure;
libinput_tablet_tool_has_distance;
libinput_tablet_tool_has_rotation;
libinput_tablet_tool_has_tilt;
libinput_tablet_tool_has_wheel;
libinput_tablet_tool_has_slider;
libinput_tablet_tool_has_button;
libinput_tablet_tool_is_unique;
libinput_tablet_tool_ref;
libinput_tablet_tool_set_user_data;
libinput_tablet_tool_unref;
} LIBINPUT_1.1;
2016-04-18 13:31:46 +10:00
LIBINPUT_1.3 {
libinput_device_tablet_pad_get_num_buttons;
libinput_device_tablet_pad_get_num_rings;
libinput_device_tablet_pad_get_num_strips;
libinput_event_get_tablet_pad_event;
libinput_event_tablet_pad_get_base_event;
libinput_event_tablet_pad_get_button_number;
libinput_event_tablet_pad_get_button_state;
libinput_event_tablet_pad_get_ring_position;
libinput_event_tablet_pad_get_ring_number;
libinput_event_tablet_pad_get_ring_source;
libinput_event_tablet_pad_get_strip_position;
libinput_event_tablet_pad_get_strip_number;
libinput_event_tablet_pad_get_strip_source;
libinput_event_tablet_pad_get_time;
libinput_event_tablet_pad_get_time_usec;
} LIBINPUT_1.2;
LIBINPUT_1.4 {
libinput_device_config_rotation_get_angle;
libinput_device_config_rotation_get_default_angle;
libinput_device_config_rotation_is_available;
libinput_device_config_rotation_set_angle;
libinput_device_tablet_pad_get_mode_group;
libinput_device_tablet_pad_get_num_mode_groups;
libinput_event_tablet_pad_get_mode;
libinput_event_tablet_pad_get_mode_group;
libinput_tablet_pad_mode_group_button_is_toggle;
libinput_tablet_pad_mode_group_get_index;
libinput_tablet_pad_mode_group_get_mode;
libinput_tablet_pad_mode_group_get_num_modes;
libinput_tablet_pad_mode_group_get_user_data;
libinput_tablet_pad_mode_group_has_button;
libinput_tablet_pad_mode_group_has_strip;
libinput_tablet_pad_mode_group_has_ring;
libinput_tablet_pad_mode_group_ref;
libinput_tablet_pad_mode_group_set_user_data;
libinput_tablet_pad_mode_group_unref;
} LIBINPUT_1.3;
LIBINPUT_1.5 {
libinput_device_config_tap_get_button_map;
libinput_device_config_tap_get_default_button_map;
libinput_device_config_tap_set_button_map;
} LIBINPUT_1.4;
LIBINPUT_1.7 {
libinput_event_get_switch_event;
libinput_event_switch_get_base_event;
libinput_event_switch_get_switch_state;
libinput_event_switch_get_switch;
libinput_event_switch_get_time;
libinput_event_switch_get_time_usec;
} LIBINPUT_1.5;
LIBINPUT_1.9 {
libinput_device_switch_has_switch;
} LIBINPUT_1.7;
LIBINPUT_1.11 {
libinput_device_touch_get_touch_count;
} LIBINPUT_1.9;
LIBINPUT_1.14 {
libinput_tablet_tool_has_size;
libinput_event_tablet_tool_get_size_major;
libinput_event_tablet_tool_get_size_minor;
libinput_event_tablet_tool_size_major_has_changed;
libinput_event_tablet_tool_size_minor_has_changed;
} LIBINPUT_1.11;
LIBINPUT_1.15 {
libinput_device_config_scroll_set_button_lock;
libinput_device_config_scroll_get_button_lock;
libinput_device_config_scroll_get_default_button_lock;
libinput_device_tablet_pad_has_key;
libinput_event_tablet_pad_get_key;
libinput_event_tablet_pad_get_key_state;
} LIBINPUT_1.14;
High-resolution scroll wheel support Starting with kernel v5.0 two new axes are available for high-resolution wheel scrolling: REL_WHEEL_HI_RES and REL_HWHEEL_HI_RES. Both axes send data in fractions of 120 where each multiple of 120 amounts to one logical scroll event. Fractions of 120 indicate a wheel movement less than one detent. This commit adds a new API for scroll events. Three new event types that encode the axis source in the event type name and a new API to get a normalized-to-120 value that also used by Windows and the kernel (each multiple of 120 represents a logical scroll click). This addresses a main shortcoming with the existing API - it was unreliable to calculate the click angle based on the axis value+discrete events and thus any caller using the axis value alone would be left with some ambiguity. With the v120 API it's now possible to (usually) calculate the click angle, but more importantly it provides the simplest hw-independent way of scrolling by a click or a fraction of a click. A new event type is required, the only way to integrate the v120 value otherwise was to start sending events with a discrete value of 0. This would break existing xf86-input-libinput (divide by zero, fixed in 0.28.2) and weston (general confusion). mutter, kwin are unaffected. With the new API, the old POINTER_AXIS event are deprecated - callers should use the new API where available and discard any POINTER_AXIS events. Notable: REL_WHEEL/REL_HWHEEL are emulated by the kernel but there's no guarantee that they'll come every accumulated 120 values, e.g. Logitech mice often send events that don't add up to 120 per detent. We use the kernel's wheel click emulation instead of doing our own. libinput guarantees high-resolution events even on pre-5.0 kernels. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: José Expósito <jose.exposito89@gmail.com>
2018-11-22 10:24:54 +10:00
LIBINPUT_1.19 {
libinput_event_pointer_get_scroll_value_v120;
libinput_event_pointer_get_scroll_value;
} LIBINPUT_1.15;
LIBINPUT_1.21 {
libinput_device_config_dwtp_is_available;
libinput_device_config_dwtp_set_enabled;
libinput_device_config_dwtp_get_enabled;
libinput_device_config_dwtp_get_default_enabled;
} LIBINPUT_1.19;
Introduce custom acceleration profile The custom acceleration profile allow the user to define custom acceleration functions for each movement type per device, giving full control over accelerations behavior at different speeds. This commit introduces 2 movement types which corresponds to the 2 profiles currently in use by libinput. regular filter is Motion type. constant filter is Fallback type. This allows possible expansion of new movement types for the different devices. The custom pointer acceleration profile gives the user full control over the acceleration behavior at different speeds. The user needs to provide a custom acceleration function f(x) where the x-axis is the device speed and the y-axis is the pointer speed. The user should take into account the native device dpi and screen dpi in order to achieve the desired behavior/feel of the acceleration. The custom acceleration function is defined using n points which are spaced uniformly along the x-axis, starting from 0 and continuing in constant steps. There by the points defining the custom function are: (0 * step, f[0]), (1 * step, f[1]), ..., ((n-1) * step, f[n-1]) where f is a list of n unitless values defining the acceleration factor for each velocity. When a velocity value does not lie exactly on those points, a linear interpolation of the two closest points will be calculated. When a velocity value is greater than the max point defined, a linear extrapolation of the two biggest points will be calculated. Signed-off-by: Yinon Burgansky <51504-Yinon@users.noreply.gitlab.freedesktop.org> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-12-13 00:23:59 +02:00
LIBINPUT_1.23 {
libinput_config_accel_create;
libinput_config_accel_destroy;
libinput_device_config_accel_apply;
libinput_config_accel_set_points;
} LIBINPUT_1.21;
LIBINPUT_1.26 {
libinput_device_config_click_set_clickfinger_button_map;
libinput_device_config_click_get_default_clickfinger_button_map;
libinput_device_config_click_get_clickfinger_button_map;
libinput_device_get_id_bustype;
libinput_device_tablet_pad_get_num_dials;
libinput_event_tablet_pad_get_dial_delta_v120;
libinput_event_tablet_pad_get_dial_number;
libinput_tablet_pad_mode_group_has_dial;
libinput_tablet_tool_config_pressure_range_is_available;
libinput_tablet_tool_config_pressure_range_set;
libinput_tablet_tool_config_pressure_range_get_minimum;
libinput_tablet_tool_config_pressure_range_get_maximum;
libinput_tablet_tool_config_pressure_range_get_default_minimum;
libinput_tablet_tool_config_pressure_range_get_default_maximum;
} LIBINPUT_1.23;
LIBINPUT_1.27 {
libinput_device_config_area_has_rectangle;
libinput_device_config_area_set_rectangle;
libinput_device_config_area_get_rectangle;
libinput_device_config_area_get_default_rectangle;
} LIBINPUT_1.26;