Adds a --no-input option to the rpi backend so weston can be started without any input device attached. This is useful for display boxes without any keyboard/mouse attached
Signed-off-by: Fernando Herrera <[email protected]> --- src/compositor-rpi.c | 29 ++++++++++++++++++----------- src/compositor.c | 1 + 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/compositor-rpi.c b/src/compositor-rpi.c index 287451d..f39152d 100644 --- a/src/compositor-rpi.c +++ b/src/compositor-rpi.c @@ -488,7 +488,8 @@ struct rpi_parameters { static struct weston_compositor * rpi_compositor_create(struct wl_display *display, int *argc, char *argv[], struct weston_config *config, - struct rpi_parameters *param) + struct rpi_parameters *param, + int no_input) { struct rpi_compositor *compositor; uint32_t key; @@ -503,10 +504,12 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[], config) < 0) goto out_free; - compositor->udev = udev_new(); - if (compositor->udev == NULL) { - weston_log("Failed to initialize udev context.\n"); - goto out_compositor; + if (!no_input) { + compositor->udev = udev_new(); + if (compositor->udev == NULL) { + weston_log("Failed to initialize udev context.\n"); + goto out_compositor; + } } compositor->session_listener.notify = session_notify; @@ -548,11 +551,13 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[], if (rpi_output_create(compositor, param->output_transform) < 0) goto out_renderer; - if (udev_input_init(&compositor->input, - &compositor->base, - compositor->udev, "seat0") != 0) { - weston_log("Failed to initialize udev input.\n"); - goto out_renderer; + if (!no_input) { + if (udev_input_init(&compositor->input, + &compositor->base, + compositor->udev, "seat0") != 0) { + weston_log("Failed to initialize udev input.\n"); + goto out_renderer; + } } return &compositor->base; @@ -581,6 +586,7 @@ backend_init(struct wl_display *display, int *argc, char *argv[], struct weston_config *config) { const char *transform = "normal"; + int no_input; int ret; struct rpi_parameters param = { @@ -597,6 +603,7 @@ backend_init(struct wl_display *display, int *argc, char *argv[], { WESTON_OPTION_STRING, "transform", 0, &transform }, { WESTON_OPTION_BOOLEAN, "opaque-regions", 0, ¶m.renderer.opaque_regions }, + { WESTON_OPTION_BOOLEAN, "no-input", 0, &no_input }, }; parse_options(rpi_options, ARRAY_LENGTH(rpi_options), argc, argv); @@ -607,5 +614,5 @@ backend_init(struct wl_display *display, int *argc, char *argv[], else param.output_transform = ret; - return rpi_compositor_create(display, argc, argv, config, ¶m); + return rpi_compositor_create(display, argc, argv, config, ¶m, no_input); } diff --git a/src/compositor.c b/src/compositor.c index 7c29d51..723a4f5 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -3964,6 +3964,7 @@ usage(int error_code) "\tnormal 90 180 270 flipped flipped-90 flipped-180 flipped-270\n" " --opaque-regions\tEnable support for opaque regions, can be " "very slow without support in the GPU firmware.\n" + " --no-input\t\tDont create input devices\n" "\n"); #endif -- 1.7.10.4 _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
