diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2022-10-10 17:03:15 +0300 |
---|---|---|
committer | Marius Vlad <marius.vlad@collabora.com> | 2022-12-05 15:27:26 +0200 |
commit | 05bb0384732480a9f24a8d9093ac2da20081e307 (patch) | |
tree | c19334fcf20c0f02d51b0b1e7bfac3b8d021687a | |
parent | 14a1292a393774727fb85662d98d8cbe4bc6e5cd (diff) |
compositor: Allow to start other clients
This introduces shell-client-ext as a new section entry to add to allow
starting the gRPC server helper client.
Bug-AGL: SPEC-4503
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: I41d62c932648699aa21837afc2de5103912c370d
-rw-r--r-- | src/compositor.c | 7 | ||||
-rw-r--r-- | src/ivi-compositor.h | 3 | ||||
-rw-r--r-- | src/shell.c | 14 |
3 files changed, 14 insertions, 10 deletions
diff --git a/src/compositor.c b/src/compositor.c index 15fd42a..7e89926 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -1829,7 +1829,12 @@ int wet_main(int argc, char *argv[], const struct weston_testsuite_data *test_da weston_compositor_wake(ivi.compositor); ivi_shell_create_global(&ivi); - ivi_launch_shell_client(&ivi); + + ivi_launch_shell_client(&ivi, "shell-client", + &ivi.shell_client.client); + ivi_launch_shell_client(&ivi, "shell-client-ext", + &ivi.shell_client_ext.client); + if (debug) ivi_screenshooter_create(&ivi); ivi_agl_systemd_notify(&ivi); diff --git a/src/ivi-compositor.h b/src/ivi-compositor.h index 5a0f66c..1d03747 100644 --- a/src/ivi-compositor.h +++ b/src/ivi-compositor.h @@ -94,6 +94,7 @@ struct ivi_compositor { } shell_client; struct { + struct wl_client *client; struct wl_resource *resource; bool doas_requested; enum agl_shell_bound_status status; @@ -361,7 +362,7 @@ int ivi_shell_create_global(struct ivi_compositor *ivi); int -ivi_launch_shell_client(struct ivi_compositor *ivi); +ivi_launch_shell_client(struct ivi_compositor *ivi, const char *cmd_section, struct wl_client **client); int ivi_desktop_init(struct ivi_compositor *ivi); diff --git a/src/shell.c b/src/shell.c index ad62a27..ab74f69 100644 --- a/src/shell.c +++ b/src/shell.c @@ -996,17 +996,16 @@ process_handle_sigchld(struct weston_process *process, int status) } int -ivi_launch_shell_client(struct ivi_compositor *ivi) +ivi_launch_shell_client(struct ivi_compositor *ivi, const char *cmd_section, + struct wl_client **client) { struct process_info *pinfo; struct weston_config_section *section; char *command = NULL; - section = weston_config_get_section(ivi->config, "shell-client", - NULL, NULL); + section = weston_config_get_section(ivi->config, cmd_section, NULL, NULL); if (section) - weston_config_section_get_string(section, "command", - &command, NULL); + weston_config_section_get_string(section, "command", &command, NULL); if (!command) return -1; @@ -1019,9 +1018,8 @@ ivi_launch_shell_client(struct ivi_compositor *ivi) if (!pinfo->path) goto out_free; - ivi->shell_client.client = client_launch(ivi->compositor, &pinfo->proc, - command, process_handle_sigchld); - if (!ivi->shell_client.client) + *client = client_launch(ivi->compositor, &pinfo->proc, command, process_handle_sigchld); + if (!*client) goto out_str; return 0; |