Commit Graph

276 Commits

Author SHA1 Message Date
Armin Novak
0cd774d2c0 [client,sdl] fix cleanup order
destroy SDL_Renderer before SDL_Window
2023-07-25 09:11:11 +02:00
Armin Novak
4816a7d2a5 [cmake] require freetype for sdl2ttf 2023-07-24 10:49:38 +02:00
Armin Novak
315acc6aa9 [client,sdl] fix std::vector initialization
MSVC 2013 does not like too large vector initialization, work around
with https://stackoverflow.com/questions/31028941/how-to-avoid-compiler-limit-compiler-stack-overflow-with-large-vector-inits/31029335#31029335
2023-07-24 10:49:38 +02:00
Armin Novak
f00e73cec4 [client,sdl] fix constructor, initialize pointers
some initialization might fail, so initialize them beforehand.
2023-07-24 10:49:38 +02:00
akallabeth
80091cba6a [client,sdl] add MSVC macro for missing noexcept 2023-07-21 14:53:19 +02:00
akallabeth
33d8e8e41b [client,sdl] replace memset with c++ string iteration 2023-07-21 14:53:19 +02:00
akallabeth
9eb80ffb19 [client,sdl] add dialog paste support 2023-07-21 14:53:19 +02:00
akallabeth
6be08815e5 [client,sdl] add OpenSans license and ttf font 2023-07-21 09:50:02 +02:00
Armin Novak
b28521d2d9 [client,sdl] use TTF_OpenFontRW
In combination with SDL_RWFromConstMem the font can be embedded without
using an intermediate file to load it from.
2023-07-21 09:50:02 +02:00
akallabeth
b259545bbb [client,sdl] update AAD/AVC callback handling 2023-07-21 09:14:54 +02:00
Armin Novak
1b79b60634 added webview scheme handler 2023-07-21 09:14:54 +02:00
akallabeth
8b0f4ca106 [client,sdl] move webview to static lib
* move to static lib aad-view
* add support for https://github.com/webview/webview (e.g. use native
  webview if available)
2023-07-21 09:14:54 +02:00
Armin Novak
06fd58264e [client,sdl] add a simple test for dialogs 2023-07-20 14:25:08 +02:00
Armin Novak
1a62103a08 [client,sdl] add support for win32 executables
Allow building with support for console or WinMain applications
2023-07-20 14:25:08 +02:00
akallabeth
97415f0d52 [client,sdl] add user dialogs 2023-07-20 14:25:08 +02:00
akallabeth
734117351d [aad,avc] unify callbacks to GetAccessToken
The AAD and AVD authentication mechanisms both need an OAuth2 token.
They only differ in the provided arguments, so unify the callbacks into
a single one with variable argument lists.
2023-07-20 14:20:28 +02:00
fifthdegree
d309fcd6e8 Restructure Azure AD related stuff
- Move responsibility for obtaining access tokens to clients
- Add function for getting access tokens for AVD
- Get correct server hostname during AVD setup
- Add utility function for doing http requests
2023-07-20 14:20:28 +02:00
Martin Fleisz
622a2a8df0 misc: More int to BOOL conversion fixes
This is a follow up to #9129.

This PR fixes some problematic `int` to `BOOL` conversions that might
cause overflows when checking for bit flags.
2023-07-04 09:45:20 +02:00
fifthdegree
5dd1363b8e Fix format issue in building url for sdl webview 2023-06-19 08:42:33 +02:00
Dan Holliday
f2ae9c00be Added the ability to quite the RDP session by pressing "r-ctrl + shift + D". The reason for this is when in full screen I have no way to exit from xrdp if I don't want to close my session. 2023-06-14 08:49:21 +02:00
Dan Holliday
72b614262f Fixed some incorrect key mappings with. I found that the "+/=" key on a UK keyboard didn't do anything. I also found that the "+" key on the keypad acted as if it was the "+/=" key. I've corrected some of the keycodes and confirmed that they keyboard functions as expected. 2023-06-14 08:49:21 +02:00
Armin Novak
a0fd9cf957 [client,sdl] encapsulate c++ context
to properly initialize c++ us a heap allocated wrapper class
2023-06-05 14:15:03 +02:00
Armin Novak
da7c3b688f [client,sdl] use unique_ptr for SDL_Surface et al 2023-05-31 11:29:21 +02:00
Armin Novak
68995ddffb [client,sdl] wrap WinPR event in class 2023-05-31 11:29:21 +02:00
Armin Novak
ccbcc4cb65 [client,sdl] wrap critical section in class 2023-05-31 11:29:21 +02:00
Armin Novak
63ed6dc771 [client,sdl] use std::thread 2023-05-31 11:29:21 +02:00
Armin Novak
16cbe8882d [client,sdl] unique_ptr for input 2023-05-31 11:29:21 +02:00
Armin Novak
1a74d832de [client,sdl] unique_ptr for display channel 2023-05-31 11:29:21 +02:00
Armin Novak
324e8c7813 [client,sdl] use SDL_WaitEvent 2023-05-31 11:29:21 +02:00
Armin Novak
481ba1581c [client,sdl] fixed warning in webview 2023-05-30 15:42:39 +02:00
akallabeth
f941a1ec8e [cmake] unify RPATH settings and client deps detection 2023-05-26 11:38:32 +02:00
akallabeth
b8f7b59fff [warnings] fix casts and return 2023-05-24 08:24:32 +02:00
akallabeth
9f2d22c975 [client,sdl] refactor webview 2023-05-24 08:24:32 +02:00
akallabeth
9b112be058 [warnings] fix -Wold-style-cast 2023-05-24 08:24:32 +02:00
akallabeth
b598386928 [warnings] fix -Wnewline-eof 2023-05-24 08:24:32 +02:00
akallabeth
3ff34c03a0 [warnings] fix -Wwritable-strings 2023-05-24 08:24:32 +02:00
akallabeth
df76b59da7 [warnings] fix -Wshadow 2023-05-24 08:24:32 +02:00
akallabeth
9f1b13cf0a [warnings] fix -Wsuggest-override 2023-05-24 08:24:32 +02:00
akallabeth
18cde293e8 [warnings] fix -Wmissing-field-initializers 2023-05-24 08:24:32 +02:00
akallabeth
c355b2656b [warnings] fix -Wextra-semi 2023-05-24 08:24:32 +02:00
akallabeth
8e51463a7e [warnings] fix -Wzero-as-null-pointer-constant 2023-05-24 08:24:32 +02:00
akallabeth
2ec4601669 [cmake,sdl] use option instead of set 2023-05-23 08:51:18 +02:00
Armin Novak
a8476b8688 [cmake] fix qt5 find_package and linking 2023-05-23 06:04:55 +02:00
fifthdegree
449b96adb2 Use popup browser for AAD auth in SDL client
Optionally build the SDL client with Qt WebEngine to create a popup
browser for authentication to AAD. Also change the URL output on the
command line to use the "nativeclient" redirect for easier copy/pasting
of the authorization code.
2023-05-23 06:04:55 +02:00
akallabeth
a78182c425 [client,sdl] unify primary surface cleanup 2023-05-12 14:41:28 +02:00
akallabeth
1b28ed7c9c [client,sdl] fix blend mode
override blend mode on initial fill
2023-05-12 14:41:28 +02:00
akallabeth
dd57de8e19 [client,sdl] add function to context 2023-04-19 11:04:13 +02:00
akallabeth
0627baa939 [client,sdl] move functions to proper place 2023-04-19 11:04:13 +02:00
akallabeth
01293f4c3f [client,sdl] migrate sdl_kbd to class 2023-04-19 11:04:13 +02:00
akallabeth
63606b3c7c [client,sdl] migrate display channel to class 2023-04-19 11:04:13 +02:00
akallabeth
05a2291861 [client,sdl] split sdl_freerdp.hpp 2023-04-19 11:04:13 +02:00
Armin Novak
26ee0590d6 [client,sdl] use CriticalSectionLock
use c++ RAII to lock critical sections
2023-04-19 11:04:13 +02:00
Armin Novak
86470103c4 [client,sdl] rename c++ headers to hpp 2023-04-19 11:04:13 +02:00
akallabeth
c35b41c05d [client,sdl] rename update trigger helper class 2023-04-19 11:04:13 +02:00
Armin Novak
f5453aa952 [client,sdl] standalone build
* move to c++
* build out of tree
2023-04-19 11:04:13 +02:00
Armin Novak
7a283a140a [client,sdl] improve mouse scroll speed 2023-04-13 13:20:38 +02:00
akallabeth
a360f1ca8c [build] fix a few compiler warnings 2023-03-13 13:04:45 +01:00
akallabeth
151baa9ae5 [client,sdl] fix va_arg casts to match void* size 2023-03-09 11:17:37 +01:00
akallabeth
387dcd4001 [client,sdl] fix missing type cast 2023-03-09 11:17:37 +01:00
Armin Novak
af23e8f9a0 [client,sdl] lock updates
use a critical section to lock SDL related data updates
2023-03-07 07:51:36 +01:00
Armin Novak
ffc4d419db [client,sdl] fix uninitialized variable cleanup 2023-03-01 13:45:13 +01:00
Armin Novak
8af35bd42a [client] add deprecation/experimental warnings 2023-03-01 13:45:13 +01:00
akallabeth
a91b2f4999 [client,sdl] fixed error code mapping 2023-02-21 14:38:34 +01:00
akallabeth
f807af6f8e [client,sdl] do not wait for SDL to complete
when updating the window surface in sdl_end_paint do not wait for
completion of the operation. The check is done in sdl_begin_paint, so
the RDP stack can continue processing other data on queue until a
graphic operation needs to be processed.
2023-02-21 14:38:34 +01:00
akallabeth
82a0eab71f [client,sdl] add debug options 2023-02-21 14:38:34 +01:00
akallabeth
e3a7eaf39a [client,sdl] run sdl in main thread. 2023-02-21 14:38:34 +01:00
Armin Novak
641022b795 [logging] remove __FUNCTION__ from actual message
prefer the log formatter to provide that information.
2023-01-25 16:26:39 +01:00
Armin Novak
05f933398c [client,sdl] print number of monitors before listing 2023-01-25 14:27:15 +01:00
Armin Novak
aee9f68f7d fixed SDL utils. 2023-01-25 14:27:15 +01:00
Armin Novak
56df6177e1 [client,sdl] Add WSAStartup
Windows requires WSAStartup to be called for the client to work.
2023-01-25 14:27:15 +01:00
Armin Novak
d2b50a06b5 [client,sdl] only call freerdp_disconnect if connected 2023-01-24 10:16:55 +01:00
Armin Novak
4b3133b138 [client,sdl] use dynamic logger instance 2023-01-18 09:32:41 +01:00
Armin Novak
a1b764019d [client,sdl] add log functions 2023-01-18 09:32:41 +01:00
Armin Novak
defa74b94b [build] continue if SDL2 is requested but not found 2023-01-18 09:32:41 +01:00
akallabeth
1f7bcd4a1a [client,sdl] print experimental warning 2023-01-10 17:38:00 +01:00
Armin Novak
070353bf90 added SDL2 client 2023-01-10 17:38:00 +01:00