Update and improve DVC(dynamic virtual channel) in xrdp. DVC is implemented over the static virtual channel drdynvc. MSDN doc MS-RDPEDYC
https://msdn.microsoft.com/en-us/library/cc241215.aspx
Future improvements to RDP is usually in dynamic channels. We need an easy to use and fast DVC API for internal use inside xrdp and chansrv. The GFX graphics pipeline is a DVC, video redirection and dynamic monitors are both DVCs.
All channels in drdynvc must be opened from the server, as the document states.
Using drdynvc in xrdp, these function are in libxrdp.h
libxrdp_drdynvc_open (Pass callbacks in struct xrdp_drdynvc)libxrdp_drdynvc_data_firstlibxrdp_drdynvc_datalibxrdp_drdynvc_closelibxrdp_drdynvc_closeUsing drdynvc in chansrv, these functions are in chansrv.h
chansrv_drdynvc_open (Pass callbacks in struct chansrv_drdynvc)chansrv_drdynvc_data_firstchansrv_drdynvc_datachansrv_drdynvc_closechansrv_drdynvc_closebranch is here
https://github.com/jsorg71/xrdp/tree/drdynvc1
Yeeees! Ping @jterry75 and @cwilhit.
PR is here #1224
merged, until we start using it, hard to know what doesn't work. Let's create new issues when found.
Many thanks @jsorg71! I will get to this sometime in the near future and will update you what I find.
Awesome! Let me give it a test run today/tomorrow :)
Note, this does not mean dynamic monitors work, just that it should be easier to implement now.
To show how to use the new internal API, I'll add Mic support which is a Dynamic Virtual channel in chansrv and another one in xrdp, maybe dynamic monitors.
Most helpful comment
branch is here
https://github.com/jsorg71/xrdp/tree/drdynvc1