Commit Graph

175 Commits

Author SHA1 Message Date
Armin Novak 5e11f0da28 Reorganized UWAC headers 2022-03-03 11:26:48 +01:00
Armin Novak cb27338bf4 Set required C standard to C99 with extensions 2022-02-24 12:31:58 +01:00
Armin Novak fd027d1bf0 Removed BUILTIN_CHANNELS
Building client channels out of tree does not work reliable as the
dependencies can not be easily split. (exceptions may be simple ones
as echo channel)
It does complicate the build system and code though, so remove this
for maintainability reasons.
2022-02-23 10:43:46 +01:00
Sumir Jha 3d77496fbb memory grows over time in wlfreerdp with /gfx:AVC44 fixed. 2022-02-15 10:58:41 +00:00
akallabeth 8cc6582044
Unify struct definitions (#7633)
* Unified enum/struct definitions, fixed include issues

* Fixed mac compilation issues

* Added missing include

* Fixed windows server build warnings

* Fixed VS2010 build issue

* Removed unnecessary library linking

* Fixed ThreadPool WinXP compatibility

* Fixed pr review remarks
2022-02-14 14:59:22 +01:00
Kshitij Kadam 628c465d38 uwac-window: Make ivi surface-id configurable
The ivi surface-id is made configurable by fetching it from the
environment variables. An environment variable IVI_SURFACE_ID needs to
be set to the required surface-id. In case it is not set then the code
will take 1 as the default surface-id.

Signed-off-by: Kshitij Kadam <Kshitij.Kadam@ifm.com>
2022-02-01 09:26:22 +01:00
Kshitij Kadam 8728f52f34 uwac-window: Change protocol selection order
The current order of protocol selection is xdg_base followed by
ivi_application followed by fullscreen_shell. As a result xdg_base
protocol will be selected even if ivi_application protocol is needed.

The order is now changed to ivi_application followed by fullscreen_shell
followed by xdg_base. It is now possible to select any one of the three
protocols by appropriately defining BUILD_IVI and BUILD_FULLSCREEN_SHELL
macro.

Signed-off-by: Kshitij Kadam <Kshitij.Kadam@ifm.com>
2022-02-01 09:26:22 +01:00
dance cbc6b666ae wayland: fixed memory corruption issue (write to free'd memory)
pass window and buffer index to buffer_release listener, so that it
fetches actual pointer to released buffer by wayland, instead of
directly passing a pointer to the UwacBuffer, which could result in
heap-use-after-free
2022-01-27 10:52:02 +01:00
akallabeth 7dedfbb0b0 Added support for getpwuid_r, replaced duplicate code
* Use GetUserNameExA to get current user name when required.
* Add support for getpwuid_r if available
2022-01-25 15:33:04 +01:00
akallabeth f1e6c6b131 Fix #7570: Limit mouse events to positive values
Wayland API might report mouse events slightly outside the window,
clamp the values to that negative coordinates are skipped.
2022-01-24 11:57:22 +01:00
Armin Novak 4b719df371 Fixed #7521: Ensure '\0' termination of clipboard strings 2022-01-10 11:19:28 +01:00
Marek Vasut c1f44721c5 uwac: Fix connection between mouse-less devices
In case the seat has no default_cursor, which happens on client device with
no mouse attached (e.g. tablets), freerdp would fail to connect because it
won't be able to set cursor image. Check for this condition and skip setting
the cursor image.

Signed-off-by: Marek Vasut <marex@denx.de>
2021-11-29 15:47:23 +01:00
Guillaume Démurgé 8e334d3bfd Added app_id on wayland client 2021-11-12 15:58:39 +01:00
Armin Novak e821c93cc4 Removed duplicate HAVE_PIXMAN_REGION definition 2021-10-14 13:04:59 +02:00
Armin Novak 673fb46836 Fixed uninitialized warnings 2021-09-10 08:16:25 +02:00
Armin Novak 0fe1e2359e Fixed all reserved-id-macro warnings 2021-09-10 08:16:25 +02:00
Armin Novak f515bd4560 Fixed shadowing and type errors 2021-08-24 10:45:57 +02:00
Armin Novak 610396e197 Fixed compilation warnings
Try to get the number of warnings down
2021-08-02 10:28:06 +02:00
Armin Novak ed7e3761f1 Fixed include paths for uwac 2021-06-28 15:06:30 +02:00
Armin Novak 2e42df9515 Fixed HAVE_PTHREAD_MUTEX_TIMEDLOCK 2021-06-28 15:06:30 +02:00
Armin Novak fd08c77f7f Fixed definition of config.h symbols 2021-06-28 15:06:30 +02:00
Armin Novak b11ea98772 Fixed standalone issues with cmake 2021-06-22 09:43:23 +02:00
Armin Novak 8ef57bf296 Replaced CMAKE_[SOURCE|BINARY]_DIR with PROJECT_[SOURCE|BINARY]_DIR
Thanks @Pollux42 for the hint in #7096
2021-06-22 08:54:18 +02:00
akallabeth b453d5e40e Fixed rdtk, uwac and winpr standalone builds 2021-06-22 08:54:18 +02:00
Armin Novak cbb39709b9 uwac: Fixed warnings, added assertions 2021-06-18 11:32:16 +02:00
akallabeth 8d82adb28a Fixed warnings 2021-06-17 10:35:22 +02:00
Max Roncace e2920d7259 Wayland client: Disable shortcut inhibition on rctrl press 2021-04-08 09:23:58 +02:00
akallabeth 7f0774c6f9 Increased UWAC version 2021-03-03 11:49:24 +01:00
akallabeth b6b6a81187 Added pointer source events 2021-03-03 11:49:24 +01:00
akallabeth 9ea7f88753 Added pointer frame events 2021-03-03 11:49:24 +01:00
sss 6574fdf6e4 reverted changes from clang-format 2021-02-25 14:05:40 +01:00
Gluzskiy Alexandr bee2e1526d allow to use in single threaded mode
(some client side channels and all server side channels still need to be
ported to new api)

server: build fix, do not disable threads for rfx encoder

cliprdr client channel: implemented support for DisableThreads option
looks like thread does not make sense at all for this channel

do not initialize disabled image codecs (respect settings)

channels: client: rail: added support for DisableThreads setting

changed "BOOL DisableThreads" to "UINT32 ThreadingFlags"
dropped unnecessary apu changes

draft implementation of threading settings aware message handling api
for addins/channels

rail: use new messaging api

fixed memory leak

msgs handlers external api changes (as requested)

msgs_handlers: init fix

fixed memory leak

logic fix

resolved problems appeared after rebase to master, dropped unnecessary
changes

git clang-format origin/master

fixed TestFreeRDPCodecRemoteFX.c

"formatting, run `clang-format` please"

properly use new "rfx_context_new(BOOL, UINT32)" everywhere

passed Threading Flags to "rfx_context_new" where available

in older C standarts veriables declaration must be done before any code

requested changes

clang-format as requested

use broken signatures of standert C functions for m$ s**tos

clang-format

requested changes

requested changes

moved ThreadingFlags to stable api zone

define type for channel msg handler

typo fix

clang-format

build fix

us ThreadingFlags from server settings

git clang-format origin/master

clang-format
2021-02-25 14:05:40 +01:00
akallabeth 43311130a2 Fixed CodeQL warnings 2021-02-19 11:19:49 +01:00
akallabeth 25ab8c8b9c Added wayland discrete axis events for mouse wheel
the discrete axis event gives changes in steps just like the
xfreerdp version uses. This way scrolling can be implemented
consistent with the behaviour of xfreerdp
2021-02-04 21:21:57 +01:00
0140454 522c0cb3ad libuwac: Fix code format 2021-02-04 21:21:27 +01:00
0140454 aaefe18f98 libuwac: Add UwacKeyboardModifiersEvent 2021-02-04 21:21:27 +01:00
0140454 30233a4c74 Dont' commit surface in configure handler 2021-02-04 09:15:38 +01:00
0140454 712c5fee97 Fix key repeat in Wayland 2021-01-27 01:22:52 +08:00
Martin Fleisz 152bf0cda4
Merge pull request #6284 from akallabeth/wayland
Lock wayland buffer updates
2020-06-19 11:44:28 +02:00
akallabeth c902f583d0 Fixed missing lock during buffer submit. 2020-06-18 08:42:24 +02:00
akallabeth 1bc48b058f Fixed double free for uwac buffers 2020-06-16 14:26:38 +02:00
Kyle Evans 1b5e234135 uwac: don't try to use O_TMPFILE on FreeBSD
Currently, this sets an invalid open flag and attempts to open(), which
will fail.  Instead of doing that, don't try to define O_TMPFILE where
such a definition can't exist and force the fallback rather than making
an always-fail open() call.
2020-06-08 08:17:25 +02:00
akallabeth 94e38f7285 Increased uwac library version. 2020-05-08 11:04:03 +02:00
akallabeth 9900e52073 Fixed UwacDisplayGetOutput and UwacOutputGetResolution checks
return proper error conditions if arguments are invalid.
2020-05-05 10:29:25 +02:00
Sascha Wessel ff618f53f7 libuwac/input: Fix memory leak
`create_pointer_buffer()` allocates memory with `mmap` and never frees it.

Adding a corresponding `munmap` fixes this issue.
2020-04-29 22:31:02 +02:00
Sascha Wessel 11facf8909 libuwac/window: Fix memory leak / SIGBUS
`UwacWindowShmAllocBuffers()` allocates memory with `mmap` and never frees it
resulting in SIGBUS errors and running out of memory after some time.

Adding a corresponding `munmap` fixes this issue.
2020-04-26 19:19:31 +02:00
David Fort 1fec2f9498 uwac, wlfreerdp: corrected API for UwacOutput and added monitor listing 2020-04-21 08:12:31 +02:00
Fabrice Fontaine 3929226830 src/libuwac/uwac-os.c: fix build with uclibc
O_TMPFILE is used since version 2.0.0 and
52ef8079ea

However, this will result in the following build failure on uclibc or
uclibc-ng:

/home/fabrice/buildroot/output/build/freerdp-2.0.0/uwac/libuwac/uwac-os.c:228:18: error: ‘O_TMPFILE’ undeclared (first use in this function); did you mean ‘EMFILE’?
  fd = open(path, O_TMPFILE | O_RDWR | O_EXCL, 0600);
                  ^~~~~~~~~
                  EMFILE

To fix this build failure, define O_TMPFILE if needed

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2020-04-10 10:29:28 +02:00
akallabeth 56deba7562 Enforce coding style. 2020-04-09 13:49:10 +02:00
Julian Albrecht 7824f0cee9 Moves variable declaration to beginning of scope 2020-04-09 13:49:10 +02:00
Julian Christian Albrecht 3029e3b2cf Check return value if already a listener is registered 2020-04-09 13:49:10 +02:00
Julian Albrecht 7ecce5acbe Adds touch support to wlfreerdp 2020-03-27 14:16:18 +01:00
Armin Novak 87f5b768a9 Silenced warning due to missing debug define guard. 2020-03-10 14:04:53 +01:00
Armin Novak 7c243da6e1 Remove symbols exported by accident. 2019-12-02 10:57:31 +01:00
Armin Novak 72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Kenny Levinsen 3c18555693 uwac: Only submit dirty buffers 2019-07-30 09:46:57 +02:00
Kenny Levinsen 2548fd4aae uwac: Make damage tracking more readable 2019-07-30 09:46:57 +02:00
Kenny Levinsen 49674d57f6 uwac: Re-enable damage tracking 2019-07-30 09:46:57 +02:00
Kenny Levinsen 4df57d915d uwac: Do not unconditionally set pendingBuffer on configure
If pendingBuffer is set when it was otherwise NULL, then
UwacWindowSubmitBuffer will forever bail early, waiting for a frame
callback that will never come.
2019-07-30 09:46:57 +02:00
Kenny Levinsen 7dda8362e7 uwac: Acknowledge xdg_surface configure messages
This is necessary for the surface to have its role configured.
2019-07-30 09:46:57 +02:00
Armin Novak d91d1edd0c Fixed dead store warnings 2019-04-05 09:14:35 +02:00
Armin Novak de69dd3942 Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak 1a46ef2a82 Fixed unused variable warnings. 2019-04-05 09:13:24 +02:00
David Fort cfbf22348e
Merge pull request #5251 from akallabeth/wayland_cursor_handling_fix
Moved wayland cursor handling to seat.
2019-04-04 18:05:28 +02:00
Armin Novak cbeabfa47e Fixed xrealloc argument type
Using a void* as arugment instead of char* removes warnings when
allocating something beside a string.
2019-02-21 11:43:59 +01:00
Armin Novak 073c54a368 Use safe iteration for seat removal. 2019-02-19 09:29:17 +01:00
Armin Novak b0ab577474 Moved wayland cursor handling to seat. 2019-02-13 09:02:15 +01:00
Armin Novak 0d389d09a3 Fix 5243: Allocate buffers zero in uwac. 2019-02-11 11:54:19 +01:00
Armin Novak ce2f2012ae Destroying released cursor buffers. 2019-02-08 15:22:06 +01:00
Armin Novak db3bcffd03 Don't destroy wayland buffer attached to a surface. 2019-02-08 13:42:45 +01:00
Armin Novak b3ffdbbde1 Fixed missing initializer. 2019-02-08 12:08:30 +01:00
Armin Novak 32d539b706 Removed debug messages. 2019-01-29 13:34:27 +01:00
Armin Novak f64db12a2e Fixed uninitialized value. 2019-01-29 11:07:44 +01:00
Armin Novak 2418c43cac Fixed pointer image update. 2019-01-29 09:34:30 +01:00
Armin Novak 52ef8079ea Added O_TMPFILE support for uwac tempfile generation. 2019-01-29 09:34:30 +01:00
Armin Novak 34adfd5714 Added UWAC_EVENT_OUTPUT_GEOMETRY event 2019-01-29 09:34:30 +01:00
Armin Novak 23fa6b9182 Added mouse cursor callback stubs. 2019-01-29 09:34:30 +01:00
Armin Novak b1e6e232ee Fixed buffer submit and callback cleanup.
* Buffer submit now ignores duplicate buffer submit again.
* Frame callback is cleaned up in the callback function now.
* Damage region is currently ignored as there are screen artifacts otherwise.
2019-01-25 10:50:07 +01:00
Armin Novak 823411c2f3 Fixed wayland buffer updates
The wayland buffer size always matches the current window size.
That might be different from the actual remote framebuffer size,
to when copying always use the correct strides to avoid distorted
screen content.
2019-01-25 10:49:03 +01:00
Armin Novak 0fd27e0e38 Fixed wayland clipboard registration, retry if seat is detected before. 2019-01-25 10:49:03 +01:00
David Fort 713e9cd5a7 uwac: fix initialization of data_device_manager
Depending on how global objects are announced (seats then ddm), we could fail to initialize
the data device manager of seats.
2019-01-24 10:34:16 +01:00
Armin Novak c8e85338b7 Fixed missing return. 2019-01-23 15:56:11 +01:00
Armin Novak ceeccd34e8 Added assert 2019-01-23 15:56:11 +01:00
Armin Novak 68b5d47d9a Removed internal checks. 2019-01-23 15:56:11 +01:00
Armin Novak 9eb897ea6b Fixed a log message. 2019-01-23 15:56:11 +01:00
Armin Novak 9cdddb7722 Fixed some log messages / missing asserts. 2019-01-23 15:56:11 +01:00
Armin Novak 0cba9edc99 Implemented UWAC clipboard handling. 2019-01-23 15:54:05 +01:00
David Fort 4c465e7f16
Merge pull request #5209 from akallabeth/wayland_protocol_update_and_keyboard_inhibit
Wayland protocol update and keyboard inhibit support
2019-01-23 10:02:07 +01:00
Armin Novak 9a0c8a5c53 Removed unused label. 2019-01-22 18:09:53 +01:00
Armin Novak 3cd3490fd1 Fixed initialization of window decorations. 2019-01-22 17:21:09 +01:00
Armin Novak 5c422b7c93 Added KDE server side window decoration interface as fallback. 2019-01-22 17:10:32 +01:00
Armin Novak f2fd785128 Fixed comment. 2019-01-22 16:55:46 +01:00
Armin Novak afd4baf4dd Added wayland server side decorations. 2019-01-22 15:45:15 +01:00
Armin Novak 81f1fb934c Implemented keyboard shortcut inhibit support. 2019-01-22 14:27:12 +01:00
Armin Novak 0ef64f8a84 Updated fullscreen shell to current protocol level. 2019-01-22 13:09:59 +01:00
Armin Novak 7f158b97be Update to xdg-shell stable. 2019-01-22 13:05:46 +01:00
Armin Novak a5cee1751f Resubmit buffer if necessary. 2019-01-18 14:39:14 +01:00
Ondrej Holy 24cdcbccc7 uwac: Do not return destroyed UwacSeat
This is needed to fix the following defects reported by Covscan:
use_after_free: Using freed pointer "seat".
warning: Value stored to 'seat' is never read

This is follow up for https://github.com/FreeRDP/FreeRDP/pull/4970

https://github.com/FreeRDP/FreeRDP/issues/4820
2018-12-13 09:53:59 +01:00
David Fort b9ceb13058 uwac: handle wl_seat with version >= 7
Starting at version 7, the wayland client is supposed to mmap the keymap as MAP_PRIVATE
to prevent accidental or intentional modifications.
2018-12-05 15:21:00 +01:00
David Fort 0b2ea08f74 uwac: change seat API to not reference disposed UwacSeat
This is a false positive returned by covscan, but that doesn't hurt to fix it.
2018-10-25 15:24:29 +02:00