summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Zabel <philipp.zabel@gmail.com>2023-04-16 18:26:03 +0200
committerPhilipp Zabel <philipp.zabel@gmail.com>2023-04-17 09:40:52 +0200
commit0a1d77a72876042db742b73dd34ff3ba6c6a5878 (patch)
tree8a5662773bd7d8d83aa93fff8913ae0b7ce8a6b3
parent7d2112c713ffd504fa1e2e0c7053e52f4cdbf2a1 (diff)
downloadweston-0a1d77a72876042db742b73dd34ff3ba6c6a5878.tar.gz
backend-rdp: pass rdp_backend to rdp_head_create()
Pass the RDP backend to rdp_head_create(). That way the already known backend will not have to be found from the compositor. This is trivial now, but in the multi-backend case would entail iterating over all backends to find the correct one. Also remove the now unused to_rdp_backend() helper. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
-rw-r--r--libweston/backend-rdp/rdp.c7
-rw-r--r--libweston/backend-rdp/rdp.h8
-rw-r--r--libweston/backend-rdp/rdpdisp.c2
3 files changed, 5 insertions, 12 deletions
diff --git a/libweston/backend-rdp/rdp.c b/libweston/backend-rdp/rdp.c
index c4a1e248..915b7c02 100644
--- a/libweston/backend-rdp/rdp.c
+++ b/libweston/backend-rdp/rdp.c
@@ -575,9 +575,8 @@ rdp_output_create(struct weston_backend *backend, const char *name)
}
void
-rdp_head_create(struct weston_compositor *compositor, rdpMonitor *config)
+rdp_head_create(struct rdp_backend *backend, rdpMonitor *config)
{
- struct rdp_backend *backend = to_rdp_backend(compositor);
struct rdp_head *head;
char name[13] = {}; /* "rdp-" + 8 chars for hex uint32_t + NULL. */
@@ -609,7 +608,7 @@ rdp_head_create(struct weston_compositor *compositor, rdpMonitor *config)
head->base.backend = &backend->base;
weston_head_set_connection_status(&head->base, true);
- weston_compositor_add_head(compositor, &head->base);
+ weston_compositor_add_head(backend->compositor, &head->base);
}
void
@@ -1884,7 +1883,7 @@ rdp_backend_create(struct weston_compositor *compositor,
NULL) < 0)
goto err_compositor;
- rdp_head_create(compositor, NULL);
+ rdp_head_create(b, NULL);
compositor->capabilities |= WESTON_CAP_ARBITRARY_MODES;
diff --git a/libweston/backend-rdp/rdp.h b/libweston/backend-rdp/rdp.h
index 43ff2a57..11b12734 100644
--- a/libweston/backend-rdp/rdp.h
+++ b/libweston/backend-rdp/rdp.h
@@ -251,7 +251,7 @@ rdp_clipboard_destroy(RdpPeerContext *peerCtx);
/* rdp.c */
void
-rdp_head_create(struct weston_compositor *compositor, rdpMonitor *config);
+rdp_head_create(struct rdp_backend *backend, rdpMonitor *config);
void
rdp_destroy(struct weston_backend *backend);
@@ -278,10 +278,4 @@ to_rdp_output(struct weston_output *base)
return container_of(base, struct rdp_output, base);
}
-static inline struct rdp_backend *
-to_rdp_backend(struct weston_compositor *base)
-{
- return container_of(base->backend, struct rdp_backend, base);
-}
-
#endif
diff --git a/libweston/backend-rdp/rdpdisp.c b/libweston/backend-rdp/rdpdisp.c
index 3ad55423..3e2ee210 100644
--- a/libweston/backend-rdp/rdpdisp.c
+++ b/libweston/backend-rdp/rdpdisp.c
@@ -213,7 +213,7 @@ disp_layout_change(freerdp_peer *client, rdpMonitor *config, UINT32 monitorCount
/* Create new heads for any without matches */
if (!(done & (1 << i)))
- rdp_head_create(b->compositor, &config[i]);
+ rdp_head_create(b, &config[i]);
}
peerCtx->desktop_left = desktop.extents.x1;
peerCtx->desktop_top = desktop.extents.y1;