diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2024-04-04 17:07:07 +0300 |
---|---|---|
committer | Marius Vlad <marius.vlad@collabora.com> | 2024-04-05 11:39:11 +0300 |
commit | e7767c546108d4fdde835991d95f41609a0f6781 (patch) | |
tree | 1f5892c6dfda9e12df61c2808e176fd9284f514a | |
parent | 162451962f03e9a897ed489db4d1e54badf1dceb (diff) |
compositor: Fix RDP loading codesandbox/mvlad/next-fix-rdp-backend
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I411c825c098a4201a0d017856da3d979f5d9f6ff
-rw-r--r-- | src/compositor.c | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/src/compositor.c b/src/compositor.c index abc7daa..277a63b 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -1358,14 +1358,19 @@ weston_rdp_backend_config_init(struct weston_rdp_backend_config *config) config->base.struct_version = WESTON_RDP_BACKEND_CONFIG_VERSION; config->base.struct_size = sizeof(struct weston_rdp_backend_config); + config->renderer = WESTON_RENDERER_AUTO; config->bind_address = NULL; config->port = 3389; config->rdp_key = NULL; config->server_cert = NULL; config->server_key = NULL; config->env_socket = 0; - config->no_clients_resize = 1; + config->external_listener_fd = -1; + config->no_clients_resize = 0; config->force_no_compression = 0; + config->remotefx_codec = true; + config->refresh_rate = RDP_DEFAULT_FREQ; + } static int @@ -1421,6 +1426,8 @@ rdp_backend_output_configure(struct weston_output *output) new_mode.width = width; new_mode.height = height; + weston_log("Setting modeline to %dx%d\n", width, height); + api->output_set_mode(output, &new_mode); weston_output_set_transform(output, transform); @@ -1428,10 +1435,12 @@ rdp_backend_output_configure(struct weston_output *output) } static int -load_rdp_backend(struct ivi_compositor *ivi, int *argc, char **argv) +load_rdp_backend(struct ivi_compositor *ivi, int *argc, char **argv, + enum weston_renderer_type renderer) { struct weston_rdp_backend_config config = {}; struct weston_config_section *section; + bool no_remotefx_codec = false; struct ivi_output_config *parsed_options = ivi_init_parsed_options(ivi->compositor); if (!parsed_options) @@ -1441,21 +1450,28 @@ load_rdp_backend(struct ivi_compositor *ivi, int *argc, char **argv) const struct weston_option rdp_options[] = { { WESTON_OPTION_BOOLEAN, "env-socket", 0, &config.env_socket }, + { WESTON_OPTION_INTEGER, "external-listener-fd", 0, &config.external_listener_fd }, { WESTON_OPTION_INTEGER, "width", 0, &parsed_options->width }, { WESTON_OPTION_INTEGER, "height", 0, &parsed_options->height }, - { WESTON_OPTION_INTEGER, "transform", 0, &parsed_options->transform }, - { WESTON_OPTION_INTEGER, "scale", 0, &parsed_options->scale }, { WESTON_OPTION_STRING, "address", 0, &config.bind_address }, { WESTON_OPTION_INTEGER, "port", 0, &config.port }, { WESTON_OPTION_BOOLEAN, "no-clients-resize", 0, &config.no_clients_resize }, { WESTON_OPTION_STRING, "rdp4-key", 0, &config.rdp_key }, { WESTON_OPTION_STRING, "rdp-tls-cert", 0, &config.server_cert }, { WESTON_OPTION_STRING, "rdp-tls-key", 0, &config.server_key }, + { WESTON_OPTION_INTEGER, "scale", 0, &parsed_options->scale }, { WESTON_OPTION_BOOLEAN, "force-no-compression", 0, &config.force_no_compression }, + { WESTON_OPTION_BOOLEAN, "no-remotefx-codec", 0, &no_remotefx_codec }, }; + config.remotefx_codec = !no_remotefx_codec; + config.renderer = renderer; + section = weston_config_get_section(ivi->config, "rdp", NULL, NULL); + weston_config_section_get_int(section, "refresh-rate", + &config.refresh_rate, RDP_DEFAULT_FREQ); + weston_config_section_get_string(section, "tls-cert", &config.server_cert, config.server_cert); @@ -1464,6 +1480,7 @@ load_rdp_backend(struct ivi_compositor *ivi, int *argc, char **argv) parse_options(rdp_options, ARRAY_LENGTH(rdp_options), argc, argv); + weston_log("No clients resize: %d\n", config.no_clients_resize); ivi->simple_output_configure = rdp_backend_output_configure; @@ -1514,7 +1531,7 @@ load_backend(struct ivi_compositor *ivi, int *argc, char **argv, case WESTON_BACKEND_DRM: return load_drm_backend(ivi, argc, argv, renderer); case WESTON_BACKEND_RDP: - return load_rdp_backend(ivi, argc, argv); + return load_rdp_backend(ivi, argc, argv, renderer); case WESTON_BACKEND_WAYLAND: return load_wayland_backend(ivi, argc, argv, renderer); case WESTON_BACKEND_X11: |