f44786a369cde9d747d39aea7616f58079031dd9
[AGL/meta-agl-demo.git] / recipes-graphics / wayland / wayland-ivi-extension / 0002-ivi-controller-load-id-agent-module.patch
1 From 26f2f7ce78ba2002809048b227ad9c35921a9cd8 Mon Sep 17 00:00:00 2001
2 From: Emre Ucan <eucan@de.adit-jv.com>
3 Date: Fri, 24 Nov 2017 16:27:01 +0100
4 Subject: [PATCH 2/2] ivi-controller: load id-agent module
5
6 Signed-off-by: Emre Ucan <eucan@de.adit-jv.com>
7 ---
8  weston-ivi-shell/src/ivi-controller.c | 39 +++++++++++++++++++++++++++++++++++
9  1 file changed, 39 insertions(+)
10
11 diff --git a/weston-ivi-shell/src/ivi-controller.c b/weston-ivi-shell/src/ivi-controller.c
12 index 312a978..47b6de2 100644
13 --- a/weston-ivi-shell/src/ivi-controller.c
14 +++ b/weston-ivi-shell/src/ivi-controller.c
15 @@ -1518,6 +1518,40 @@ load_input_module(struct weston_compositor *ec,
16      return 0;
17  }
18  
19 +static int load_id_agent_module(struct weston_compositor *ec,
20 +                  const struct ivi_layout_interface *interface,
21 +                  size_t interface_version)
22 +{
23 +    struct weston_config *config = wet_get_config(ec);
24 +    struct weston_config_section *section;
25 +    char *id_agent_module = NULL;
26 +
27 +    int (*id_agent_module_init)(struct weston_compositor *ec,
28 +                             const struct ivi_layout_interface *interface,
29 +                             size_t interface_version);
30 +
31 +    section = weston_config_get_section(config, "ivi-shell", NULL, NULL);
32 +
33 +    if (weston_config_section_get_string(section, "id-agent-module",
34 +                                         &id_agent_module, NULL) < 0) {
35 +        weston_log("ivi-controller: No id-agent-module set\n");
36 +        return 0;
37 +    }
38 +
39 +    id_agent_module_init = wet_load_module_entrypoint(id_agent_module, "id_agent_module_init");
40 +    if (!id_agent_module_init)
41 +        return -1;
42 +
43 +    if (id_agent_module_init(ec, interface,
44 +                             sizeof(struct ivi_layout_interface)) != 0) {
45 +        weston_log("ivi-controller: Initialization of id agent module fails\n");
46 +        return -1;
47 +    }
48 +
49 +    free(id_agent_module);
50 +    return 0;
51 +}
52 +
53  WL_EXPORT int
54  controller_module_init(struct weston_compositor *compositor,
55                        int *argc, char *argv[],
56 @@ -1555,5 +1589,10 @@ controller_module_init(struct weston_compositor *compositor,
57          return -1;
58      }
59  
60 +    if (load_id_agent_module(compositor, interface, interface_version) < 0) {
61 +        free(shell);
62 +        return -1;
63 +    }
64 +
65      return 0;
66  }
67 -- 
68 2.13.6
69