Timidger
4478cf1ddc
Fixes #575
2018-01-21 14:57:24 -05:00
Johannes Schramm
e37ebf6869
style: add comment to empty while loop in logind.c
2018-01-21 17:00:15 +01:00
Johannes Schramm
dcc743047b
style: include brackets for if/while/for, even if it's a single statement
2018-01-21 16:28:21 +01:00
emersion
0365b587f0
output: add damage tracking via buffer age
2018-01-21 00:06:35 +01:00
emersion
78c13ead16
backend/x11: force rendering the whole output
2018-01-20 18:10:11 +01:00
emersion
4ca38b84ed
backend/drm: fix hardware cursors not moving
...
This adds back `wlr_output::needs_swap`. This allows a backend to
request buffer swaps even if the output isn't damaged. This is
needed by the DRM backend to trigger pageflips when the cursor
moves.
2018-01-20 16:43:14 +01:00
emersion
584f06ad2f
backend/drm: do not try a pageflip is another one is in pending
2018-01-19 23:46:40 +01:00
emersion
f0f97280a0
backend/drm: fix retry pageflip
2018-01-19 23:35:23 +01:00
emersion
bde255933e
output: add wlr_output::damage, fixes #572
2018-01-18 19:47:21 +01:00
emersion
6fa0a91ee2
backend/wayland: fix segfault in wlr_wl_output_destroy
2018-01-18 13:06:57 +01:00
Drew DeVault
b331c5c2c5
Merge pull request #549 from emersion/output-enabled
...
Add wlr_output::enabled
2018-01-15 20:53:13 -05:00
emersion
0eebaf98d0
drm: do not pageflip when enabling output
2018-01-15 21:49:37 +01:00
Guido Günther
3101c300b1
Don't crash if crtc->cursor is NULL
...
Same as what atomic_crtc_set_cursor does
Core was generated by `_build/rootston/rootston'.
Program terminated with signal SIGSEGV, Segmentation fault.
0 0xb6f28a1c in atomic_crtc_move_cursor (drm=0x1ebc8e8, crtc=0x1ead498, x=0, y=0) at ../backend/drm/atomic.c:170
170 if (!crtc || !crtc->cursor) {
(gdb) bt
0 0xb6f28a1c in atomic_crtc_move_cursor (drm=0x1ebc8e8, crtc=0x1ead498, x=0, y=0) at ../backend/drm/atomic.c:170
1 0xb6f2a856 in wlr_drm_connector_move_cursor (output=0x2242b28, x=0, y=0) at ../backend/drm/drm.c:634
2 0xb6f3cea0 in wlr_output_cursor_set_image (cursor=0x21a0338, pixels=0x22e1290 "", stride=24, width=24, height=24, hotspot_x=4, hotspot_y=4) at ../types/wlr_output.c:516
3 0xb6f39da2 in wlr_cursor_set_image (cur=0x22cfc90, pixels=0x22e1290 "", stride=24, width=24, height=24, hotspot_x=4, hotspot_y=4, scale=1) at ../types/wlr_cursor.c:310
4 0xb6f44d2a in wlr_xcursor_manager_set_cursor_image (manager=0x22cfd10, name=0x434420 "left_ptr", cursor=0x22cfc90) at ../types/wlr_xcursor_manager.c:80
5 0x00431c0a in roots_seat_configure_xcursor (seat=0x22cef08) at ../rootston/seat.c:515
6 0x0043137c in roots_seat_init_cursor (seat=0x22cef08) at ../rootston/seat.c:210
7 0x004315ec in roots_seat_create (input=0x218d220, name=0x434594 "seat0") at ../rootston/seat.c:289
8 0x0042ecba in input_get_seat (input=0x218d220, name=0x434594 "seat0") at ../rootston/input.c:39
9 0x0042ed04 in input_add_notify (listener=0x218d228, data=0x218d3b0) at ../rootston/input.c:54
10 0xb6f2f2e6 in wl_signal_emit (signal=0x1ea548c, data=0x218d3b0) at /usr/include/wayland-server-core.h:387
11 0xb6f2f572 in input_add_reemit (listener=0x1ea9990, data=0x218d3b0) at ../backend/multi/backend.c:101
12 0xb6f2db7e in wl_signal_emit (signal=0x1ea992c, data=0x218d3b0) at /usr/include/wayland-server-core.h:387
13 0xb6f2ddaa in handle_device_added (backend=0x1ea9920, libinput_dev=0x2292598) at ../backend/libinput/events.c:87
14 0xb6f2e164 in wlr_libinput_event (backend=0x1ea9920, event=0x2292b78) at ../backend/libinput/events.c:198
15 0xb6f2d678 in wlr_libinput_readable (fd=23, mask=1, _backend=0x1ea9920) at ../backend/libinput/backend.c:28
16 0xb6f2d7c0 in wlr_libinput_backend_start (_backend=0x1ea9920) at ../backend/libinput/backend.c:74
17 0xb6f27170 in wlr_backend_start (backend=0x1ea9920) at ../backend/backend.c:30
18 0xb6f2f320 in multi_backend_start (wlr_backend=0x1ea5480) at ../backend/multi/backend.c:22
19 0xb6f27170 in wlr_backend_start (backend=0x1ea5480) at ../backend/backend.c:30
20 0x0042fbc6 in main (argc=1, argv=0xbe89dd04) at ../rootston/main.c:60
2018-01-15 13:37:53 +01:00
Markus Ongyerth
c00e9d1416
adds remote argument to wayland backend create
...
Add a remote display name argument to wlr_wl_backend_create.
If NULL is passed to the wayland backend at all times, creating a
wayland backend *after* the compositor was started up, would require
changing the WAYLAND_DISPLAY environment variable.
2018-01-13 21:20:15 +01:00
emersion
53ba9b4eec
Fix output enable in DRM backend
2018-01-07 00:28:21 +01:00
emersion
771263380c
Add wlr_output::enabled
2018-01-04 12:46:15 +01:00
PoroCYon
7574e27c6a
fix build without systemd
2018-01-02 16:39:58 +01:00
Timidger
1478ef3202
Remove display_destroy on multi-backend destroy
2017-12-28 10:54:30 -06:00
Drew DeVault
bb24895a2b
Merge pull request #533 from martinetd/wl_array_add
...
ENOMEM checks: consistently check wl_array_add return
2017-12-28 07:44:21 -08:00
Dominique Martinet
8e24aaa3c6
style: fix sizeof() calls without parentheses
2017-12-28 16:28:19 +01:00
emersion
1e6566e6cd
Fixes for multiple outputs
...
* Fixes output positions in screenshots
* Fixes Wayland backend pointer events when output layout doesn't start at (0, 0)
2017-12-28 15:09:57 +01:00
Björn Esser
ff13849624
config: Avoid clash with other config-headers
2017-12-27 17:13:58 +01:00
Tony Crisci
6c2242e66b
Merge pull request #522 from emersion/fix-drm-output-transform-cursor
...
Fix cursor on transformed output with DRM backend
2017-12-27 05:48:45 -05:00
Björn Esser
57a09c8ca4
config: Put all defines into config.h
2017-12-26 18:51:27 +01:00
emersion
e737f65e38
Fix cursor on transformed output with DRM backend
2017-12-26 18:16:37 +01:00
Michael Weiss
e457967e3f
Add libdrm as a dependency of wlr_backend
...
Without this patch I'm getting the following build error when building
with Nix:
FAILED: backend/wlr_backend@sta/session_direct-ipc.c.o
In file included from ../backend/session/direct-ipc.c:20:0:
/nix/store/9ac27wk5vh47p28gladbdfafpidrx9rh-libdrm-2.4.88-dev/include/xf86drm.h:40:17: fatal error: drm.h: No such file or directory
#include <drm.h>
^
compilation terminated.
2017-12-23 22:49:41 +01:00
Tony Crisci
4cec7f54e2
only add first backend to multi autocreate
2017-12-21 18:38:58 -05:00
Tony Crisci
b4159c52d5
autocreate backend returns null instead of empty
2017-12-21 08:33:34 -05:00
Tony Crisci
d1dce19253
handle display destroy
2017-12-21 08:17:35 -05:00
Tony Crisci
6c8fd6017e
backend add and remove events
2017-12-20 05:54:41 -05:00
Tony Crisci
ee39dff1e7
rootston: handle backend creation failed
2017-12-20 05:51:23 -05:00
Tony Crisci
ca6a0ef1bb
always return multibakend from autocreate
2017-12-19 19:07:33 -05:00
Tony Crisci
58e69c9ce1
multibackend remove subbackend
2017-12-19 18:49:00 -05:00
Tony Crisci
6c75a184e7
subbackend state destroy
2017-12-19 18:40:27 -05:00
Tony Crisci
a937016e38
remove session from multibackend
2017-12-19 18:25:46 -05:00
Tony Crisci
4e804ef40f
add backend destroy event
2017-12-19 18:14:47 -05:00
Dominique Martinet
fcd7062542
x11 backend: add wlr_input_device_is_x11
2017-12-19 20:40:36 +01:00
Dominique Martinet
169bc9fa10
wl backend: add wlr_input_device_is_wl
2017-12-19 20:20:32 +01:00
Dominique Martinet
d9eaca6c9f
headless backend: add wlr_output_is_headless
2017-12-19 20:17:47 +01:00
Dominique Martinet
995383b049
headless backend: add wlr_input_device_is_headless
2017-12-19 20:16:12 +01:00
Dominique Martinet
be95147385
drm backend: add wlr_output_is_drm
2017-12-19 20:13:49 +01:00
Dominique Martinet
dabfe159de
wl backend: add wlr_output_is_wl
2017-12-19 20:13:49 +01:00
Dominique Martinet
f83b16bc17
x11 backend: add wlr_output_is_x11
2017-12-19 20:13:49 +01:00
Dominique Martinet
3e228b0b2a
libinput backend: add wlr_input_device_is_libinput
2017-12-19 20:13:49 +01:00
emersion
4a36ba4bdd
Destroy multi backend on display destroy
2017-12-19 18:28:47 +01:00
Tony Crisci
b5686355f3
add some input device cleanup to x11 backend
2017-12-18 15:54:49 -05:00
emersion
b99d1f4fcc
Refactor wlr_egl_init to accept config_attribs
2017-12-17 23:51:04 +01:00
emersion
bc5bdb7793
Add headless input devices
2017-12-17 18:49:20 +01:00
emersion
0256de0002
Add full refresh rate support to custom modes
2017-12-17 18:02:55 +01:00
emersion
b852fb9a2b
Minimal working headless output
2017-12-17 13:35:07 +01:00
emersion
3970264ccf
Initialize headless backend
2017-12-17 12:56:42 +01:00
emersion
51bbcc0fbf
Fix rootston input on HiDPI outputs in wayland backend
2017-12-15 16:28:04 +01:00
emersion
51db087210
Introduce fractional scaling
2017-12-15 01:00:03 +01:00
Drew DeVault
23fb663ea4
Merge pull request #453 from emersion/surface-transform
...
Add surface transforms support
2017-12-14 14:43:04 -05:00
emersion
466e86b7b2
Merge branch 'master' into surface-transform
2017-12-14 20:31:18 +01:00
emersion
75ef7860bb
Merge branch 'master' into display-destroy
2017-12-14 20:29:30 +01:00
emersion
a1302cc4a5
Fix pointer events with multiple outputs in wayland backend
2017-12-13 22:32:22 +01:00
emersion
257559d890
Remove output instead of terminating display when a wayland backend view closed
2017-12-13 21:48:59 +01:00
emersion
3b4b8953d9
Update output layout when scale or transform changes
2017-12-12 21:58:00 +01:00
emersion
c67a5824b8
Merge branch 'master' into display-destroy
2017-12-11 16:14:03 +01:00
emersion
529675b7b0
Add wlr_output_set_custom_mode
2017-12-11 12:14:23 +01:00
emersion
6001235b04
Listen to display destroy in session
...
It's not the backend's responsibility to destroy the session anymore.
2017-12-08 11:17:56 +01:00
emersion
18eb1eee3f
Listen to display destroy in xwayland, rename wlr_egl_free
2017-12-08 00:59:37 +01:00
emersion
9d43adaafa
Listen to display destroy in backends
2017-12-07 23:44:59 +01:00
emersion
91d72040e5
Configure outputs with make, model, serial in rootston
...
Added fallbacks in DRM backend in case EDID extension data for model and serial is missing.
Updates #403
2017-12-07 13:59:19 +01:00
emersion
8af779fae6
Fix segfault when moving hardware cursor
2017-12-05 22:23:01 +01:00
n3rdopolis
8a2d54c24a
Fix style and string comparison
2017-12-02 12:37:28 -05:00
n3rdopolis
a8d8a63fe0
Attempt to fix #454
...
With logind, only seat0 can use TTYs
2017-12-02 10:50:00 -05:00
emersion
6a69b4419f
Make wlr_output_transform_* functions public, refactoring
2017-12-01 09:15:33 +01:00
Moritz
cef6d75491
Moved os-compatibility and added header
...
* Moved os-compatibility.c to util
* Added header under util
* Removed static since it isn't needed (i think so)
* Adjusted meson.build to include lib_wlr
Improved some codestyle
* Added guard to os-compatibility.h
* Fixed typo in include statment
Adjusted Guard
* Changed guard to _WLR_UTIL_OS_COMPATIBILITY
2017-11-30 18:01:13 +01:00
Scott Anderson
bc113c16aa
Use correct include path for glapi.h
2017-11-30 10:32:55 +13:00
Drew DeVault
57a304c750
Merge pull request #447 from ascent12/os-compat
...
Remove unneeded linux include
2017-11-26 18:18:12 -05:00
Scott Anderson
87ea76e037
Remove unneeded linux include
2017-11-27 12:15:38 +13:00
Greg V
1ae944c071
Use SIGUSR2 for vt switching instead of SIGUSR1
...
Xwayland uses SIGUSR1 to signal readiness.
With direct(-freebsd) session and Xwayland, wlroots was confusing the
Xwayland readiness signal with a vt switch signal, freezing the desktop.
Same problem was found in Weston in 2014:
https://phabricator.freedesktop.org/T7080
2017-11-22 16:29:31 +03:00
emersion
016744ef4d
Refactor wlr_list inside wlroots
2017-11-19 00:17:40 +01:00
Tony Crisci
f61986e8db
rename touch slot to touch id
2017-11-16 17:53:52 -05:00
Tony Crisci
900d9dc05e
Merge pull request #422 from emersion/scan-build-fixes
...
Fix a bunch of mistakes detected with scan-build
2017-11-16 06:54:49 -05:00
emersion
bb79ada49f
Fix a bunch of mistakes detected with scan-build
2017-11-16 10:30:54 +01:00
emersion
7d847efe40
Terminate local display on remote X11 server error
2017-11-16 09:38:24 +01:00
emersion
73c48f2f35
Terminate local display on remote Wayland display error
2017-11-16 09:33:47 +01:00
emersion
09279b90a6
Add wlr_output.serial
2017-11-11 19:09:34 +01:00
Stefano Ragni
f092a37955
Fix typos
2017-11-11 00:45:52 +01:00
Drew DeVault
5f3b27347c
Merge pull request #404 from emolitor/CPP-Compatibility
...
Remove VLA from session.h
2017-11-10 10:18:43 -05:00
Eric Molitor
5be11a5c95
Remove VLA from session.h
...
VLAs are optional C11 features and not supported by C++.
2017-11-10 15:12:00 +00:00
Drew DeVault
66587eb430
Merge remote-tracking branch 'origin/master' into hidpi
2017-11-09 08:36:27 -05:00
emersion
1cee782fec
Fix pointer axis delta in Wayland backend
2017-11-05 13:00:27 +01:00
Drew DeVault
2f6cfe4057
Fix software cursors on scaled outputs
...
There was an issue where it would only work within the boundaries of the
unscaled resolution.
2017-11-04 11:47:34 -04:00
Drew DeVault
6d8e1abfc0
Improve input sensitivity
...
We now use doubles until the last minute, which makes it so we can move
the pointer more precisely. This also includes a fix for tablet tools,
which move absolutely and sometimes do not update the X or Y axis.
2017-11-04 01:35:12 -04:00
Dominique Martinet
b53db8c39e
libinput backend destroy: fix small leak
2017-11-01 21:14:23 +01:00
Dominique Martinet
844b166c1b
multi_backend_destroy: fix trivial use-after-free
2017-11-01 21:14:23 +01:00
Dominique Martinet
43cd3c7aea
Indentation fix
...
Some space sneaked in. tabtabtab.
2017-11-01 20:14:52 +01:00
Dominique Martinet
e3ee2cd9c7
rootston exit: fix libinput destroy
...
The wlr_list -> wl_list rework changed 'wlr_devices' to
wl_list, but missed its use on destroy.
2017-11-01 19:37:35 +01:00
Dominique Martinet
f451ea3639
rootston exit: fix drm destroy
...
wlr_drm_connector were being freed without removing them
from the drm->outputs list, segfaulting on destroy
2017-11-01 19:37:35 +01:00
emersion
a15b35aa10
Remove mysterious hotspot switch in DRM backend
2017-11-01 14:36:58 +01:00
emersion
60c018c017
Fix hidden software cursors, fix cursor transformations on DRM backend
2017-11-01 14:25:41 +01:00
emersion
0beae99188
Apply output transformation to pointer events in Wayland backend
2017-11-01 11:00:27 +01:00
emersion
ec22fe7134
Make wlr_output_interface.enable optional
2017-10-31 15:19:55 +01:00
emersion
2c63aa2056
Destroy x11 output with backend
2017-10-31 14:21:12 +01:00
emersion
c3b09f73da
Fix cursor hotspot with rotated outputs on DRM backend
2017-10-31 12:30:57 +01:00
emersion
95566c6bdf
Transform cursor hotspot, fix wayland cursor hotspot
2017-10-31 12:30:56 +01:00
emersion
6656e25fd4
Transform cursor hotspot
2017-10-31 12:30:56 +01:00
emersion
1b6c729360
Add wlr_output_cursor
2017-10-31 12:30:03 +01:00
Tony Crisci
9cc5166905
bug: free x11 backend output in destroy
2017-10-30 19:23:24 -04:00
Tony Crisci
875a5b446f
remove time usec
2017-10-30 15:43:06 -04:00
Tony Crisci
a224e74fad
refactor input time_sec to time_msec
2017-10-30 06:40:06 -04:00
Drew DeVault
fa9c6ecc53
Fix segfault in DRM cursor
2017-10-28 15:09:38 -04:00
emersion
9d587d759f
Do not set hw cursor if disabled when switching VT
2017-10-26 18:58:44 +02:00
emersion
eea532911a
Send output current mode when changed
2017-10-23 21:03:00 +02:00
Scott Anderson
75f0a6c998
Merge pull request #286 from versusvoid/update-connector-crtc-bindings
...
Update Connector-CRTC bindings after resume in DRM backend
2017-10-23 20:25:40 +13:00
Versus Void
3ed3271b98
Rescan connectors on DRM resume
2017-10-22 21:44:24 +00:00
Versus Void
549777ca19
Set crtc field when scanning for DRM connectors
...
and always use it when matching CRTCs with connectors.
Fix deactivated monitors check.
2017-10-22 21:38:30 +00:00
Versus Void
3c31209a97
Reinitialize only changed DRM outputs after setting mode on one
2017-10-22 21:34:56 +00:00
Versus Void
ecb2a2b0d3
Emit output resolution event only when resolution changes
2017-10-22 21:34:56 +00:00
emersion
1cc8f21d8e
Cleanup wlr_gamma_control
2017-10-22 23:11:26 +02:00
emersion
e1d213fccd
Create globals only for enabled outputs in DRM backend
2017-10-22 22:21:23 +02:00
Drew DeVault
c5fff08f8a
Forgot to rename these
2017-10-22 10:56:40 -04:00
Versus Void
2ab080e79a
Fix index computation in DRM output scan and CRTC match
2017-10-22 10:54:09 +00:00
Drew DeVault
16f35ecbea
Merge branch 'master' into heghe/wl_list
2017-10-21 22:03:48 -04:00
Drew DeVault
169b68b17c
Rename remaining refs to wlr_list
2017-10-21 22:02:36 -04:00
Drew DeVault
24ae081001
Merge pull request #308 from ascent12/render-fixups
...
Render fixups
2017-10-21 18:08:58 -04:00
Scott Anderson
bdeffad7e5
Remove drm field from wlr_drm_connector
2017-10-22 10:36:07 +13:00
Scott Anderson
822a9f65a4
Add pointer to backend inside wlr_output
2017-10-22 10:36:07 +13:00
Scott Anderson
4ea84c5765
Remove unnecesary wlr_renderers
2017-10-22 10:36:07 +13:00
Scott Anderson
9b984253e2
Move egl.h to render/egl.h
2017-10-22 10:36:07 +13:00
emersion
c8570d0e42
Remove wl_list_init when using wl_signal_add
2017-10-21 12:35:51 +02:00
Heghedus Razvan
d3f0878d71
Replace list_t with wl_list in wlr_wl_backend
...
Now wlr_backend->outputs is a list of wlr_wl_backend_output instead of
wlr_output.
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 19:44:59 +03:00
Heghedus Razvan
e1f196a3e9
Replace list_t with wl_list for wlr_input_device
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 11:50:43 +03:00
Heghedus Razvan
1d716241af
Replace list_t with wl_list in wlr_output
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 11:46:09 +03:00
Heghedus Razvan
c03e774636
Replace list_t with wl_list in wlr_drm_backend
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 11:46:03 +03:00
Heghedus Razvan
bde25fe020
Replace list_t with wl_list in wlr_multi_backend
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 11:45:31 +03:00
emersion
8c5a110d4c
Fix hidden cursor on wayland backend
2017-10-18 19:14:16 +02:00
Drew DeVault
62371a9974
Merge pull request #257 from emersion/fix-client-cursors
...
[WIP] Fix client cursors
2017-10-17 09:22:43 -04:00
D.B
7cdc19d57f
Fix duplicated pointer axis events
...
In pointer.c, some axis event was emitted even if the event pointer did not have
current axis.
In X11 backend pointer scroll events seem to be composed of both BUTTON_PRESS
and BUTTON_RELEASE. Therefore we should skip one of them (RELEASE) to avoid
event duplication.
2017-10-14 07:29:23 +02:00
emersion
19860c03f7
Better handling of hidden cursors in wayland backend, add TODOs
2017-10-12 13:25:29 +02:00
emersion
92daa790bb
Allow to update the cursor hotspot without its pixels
2017-10-12 09:40:51 +02:00
Greg V
a5fe9aa736
Add FreeBSD compatibility
2017-10-11 00:07:21 +03:00
emersion
9b83caa658
Add wlr_output_set_cursor_surface
2017-10-08 21:21:06 +02:00
Drew DeVault
1908d88fab
Merge pull request #236 from ascent12/gl-loader
...
Add GL/EGL extension loader generator
2017-10-08 10:04:33 -04:00
Drew DeVault
2f36e78de1
Merge pull request #240 from acrisci/feature/x11-backend-axis
...
x11-backend: axis events
2017-10-08 10:01:22 -04:00
Tony Crisci
2f2392c39e
x11-backend: create wlr output global
2017-10-08 09:53:53 -04:00
Tony Crisci
6d9b4f330e
x11-backend: axis events
2017-10-08 09:28:23 -04:00
Scott Anderson
c0e5feea37
Add GL/EGL extension loader generator
2017-10-08 13:23:41 +13:00
Tony Crisci
4f848000af
Merge branch 'master' into feature/xdg-popup
2017-10-07 13:04:04 -04:00
Drew DeVault
08ccc7f653
Merge pull request #221 from versusvoid/wayland-xkb_state_update_mask
...
Use xkb_state_update_mask() with Wayland backend
2017-10-06 15:16:10 -04:00
Versus Void
568b270cdf
Use xkb_state_update_mask() with Wayland backend
...
Fix #158
2017-10-06 22:02:29 +00:00
Tony Crisci
4657f10dd2
Merge branch 'master' into feature/xdg-popup
2017-10-06 07:04:27 -04:00
Versus Void
641d08ce7e
Transform hotspot with cursor
...
Fix #188
2017-10-06 09:07:08 +03:00
Tony Crisci
7b697fe841
bug: fix x11 event time
2017-10-05 14:38:12 -04:00
Versus Void
c5df6ca900
Fix memory leaks
2017-10-05 20:01:56 +00:00
Scott Anderson
9ec9edc40d
Check for fd failure properly
2017-10-02 22:01:09 +13:00