This patchset changes libweston to consistently use struct timespec for time values.
struct timespec is the standard way to represent time on Linux and allows for an improved range and accuracy compared to the millisecond based uint32_t values currently used in throughout the codebase. This change provides to users of libweston timestamps with higher accuracy, and will also allow libweston to more easily support future wayland interfaces that may require such high-accuracy timestamps. Note that this patchset breaks the libweston ABI, so we will need to bump the ABI version at some point. Patches (1) and (2) add more functionality to the timespec utilities to support the new uses cases introduced in the commits that follow. Patches (3) to (12) gradually transition libweston to use struct timespec. To make the changes more reviewable, each patch deals with only a specific aspect of the codebase. In order to limit the scope of each commit, some commits include temporary time value conversions to accommodate existing internal APIs. These temporary conversions are later removed as the internal APIs are also changed to used struct timespec. Alexandros Frantzis (12): shared: Add timespec_is_zero helper shared: Add helpers to convert between various time units and timespec libweston: Use struct timespec for animations libweston: Use struct timespec for the output presentation timestamp libweston: Use struct timespec for motion events libweston: Use struct timespec for button events libweston: Use struct timespec for axis events libweston: Use struct timespec for key events libweston: Use struct timespec for touch down events libweston: Use struct timespec for touch up events libweston: Use struct timespec for touch motion events libweston: Use struct timespec for compositor time compositor/screen-share.c | 24 +++++-- compositor/text-backend.c | 24 +++++-- compositor/weston-screenshooter.c | 6 +- desktop-shell/exposay.c | 14 ++-- desktop-shell/shell.c | 134 +++++++++++++++++++++----------------- desktop-shell/shell.h | 4 +- ivi-shell/hmi-controller.c | 18 +++-- ivi-shell/ivi-shell.c | 8 ++- libweston-desktop/seat.c | 23 ++++--- libweston/animation.c | 29 +++++---- libweston/bindings.c | 32 +++++---- libweston/compositor-drm.c | 16 ++--- libweston/compositor-rdp.c | 22 +++++-- libweston/compositor-wayland.c | 42 +++++++++--- libweston/compositor-x11.c | 45 +++++++------ libweston/compositor.c | 24 +++---- libweston/compositor.h | 99 ++++++++++++++++------------ libweston/data-device.c | 34 ++++++---- libweston/gl-renderer.c | 6 +- libweston/input.c | 117 ++++++++++++++++++++------------- libweston/launcher-util.c | 2 +- libweston/libinput-device.c | 59 ++++++++++------- libweston/pixman-renderer.c | 4 +- libweston/screenshooter.c | 3 +- libweston/spring-tool.c | 13 ++-- libweston/zoom.c | 7 +- shared/timespec-util.h | 59 +++++++++++++++++ tests/surface-screenshot.c | 4 +- tests/timespec-test.c | 83 +++++++++++++++++++++++ tests/weston-test.c | 17 ++++- 30 files changed, 647 insertions(+), 325 deletions(-) -- 2.14.1 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel