CARVIEW |
Navigation Menu
-
Notifications
You must be signed in to change notification settings - Fork 15.1k
FreeRDP3 migration notes
This page collects migration notes to port your code from FreeRDP 2 to FreeRDP 3.
The following CMake
options are available to control compiling in deprecated functionality:
WITH_FREERDP_DEPRECATED
WITH_FREERDP_DEPRECATED_COMMANDLINE
WITH_WINPR_DEPRECATED
They default to OFF
but for compatibility with older software building on FreeRDP
it might be useful to turn (some) to ON
- After #8046 replace your usage of
RdpKeyFile
AndRdpKeyContent
byPrivateKeyFile
andPrivateKeyContent
xPos
has been renamed to hotSpotX
and yPos
has been renamed to hotSpotY
;
We´ve corrected the const
correctness of most function arguments, so some local variables might need adjustment accordingly
KEYCODE_TYPE_EVDEV
has been renamed to KEYCODE_TYPE_XKB
, as it previously actually handled XKB
keycodes, instead of evdev
keycodes.
If you use GetVirtualKeyCodeFromKeycode()
or GetKeycodeFromVirtualKeyCode()
in your FreeRDP2 code and used KEYCODE_TYPE_EVDEV
for translation between virtual keycodes and XKB keycodes and wish to do that further, change the used keyboard type from KEYCODE_TYPE_EVDEV
to KEYCODE_TYPE_XKB
.
Additionally, FreeRDP3 now supports actual translation between evdev
keycodes and virtual keycodes. If you want to use that translation, use the keyboard type KEYCODE_TYPE_EVDEV
.
-
rdpSettings* settings
get copied during connection sequence and reset before redirect/reconnect now, so all settings that should survice a reconnect must be set inPreConnect
- Channel loading has been moved from
PreConnect
toLoadChannels
. This has a default implementation inclient/common
and only step required is removing calls tofreerdp_client_load_addins
- channel loading and common client related tasks have now a default implementation in
include/freerdp/client.h
this allows deprecating lots of setup code that was previously required for this the client should create a context containingrdpClientContext
with aClientNew
implementation - A new
AuthenticateEx
callback unifies all possible authentication related callbacks replacing and extending the older ones. - Removed context related pointers from
freerdp* instance
, likerdpSettings* settings
,rdpInput* input
, ... - Removed
async-input
and related settings
Much common client code has been moved to a client common module. For existing clients, you should:
- base your custom struct fields on
rdpClientContext
instead ofrdpContext
- use the
freerdp_client_context_new
andfreerdp_client_context_free
which already set up client common context internally - call
freerdp_client_OnChannelConnectedEventHandler
andfreerdp_client_OnChannelDisconnectedEventHandler
for channels you don´t handle in your client yourself. - Remove channel setup code for channels handled in
freerdp_client_OnChannelConnectedEventHandler
in your own handler