[PATCH weston 3/6] hmi-controller: load as weston module

Emre Ucan eucan at de.adit-jv.com
Wed Jan 3 15:09:18 UTC 2018


weston loads hmi-controller as a weston module.
IVI-shell does not need to load it explicitly.

Signed-off-by: Emre Ucan <eucan at de.adit-jv.com>
---
 ivi-shell/hmi-controller.c | 33 ++++++++++++++-------------------
 ivi-shell/weston.ini.in    |  2 +-
 2 files changed, 15 insertions(+), 20 deletions(-)

diff --git a/ivi-shell/hmi-controller.c b/ivi-shell/hmi-controller.c
index 34abc11..e6dd174 100644
--- a/ivi-shell/hmi-controller.c
+++ b/ivi-shell/hmi-controller.c
@@ -148,12 +148,6 @@ struct launcher_info {
 	int32_t index;
 };
 
-int
-controller_module_init(struct weston_compositor *ec,
-		       int *argc, char *argv[],
-		       const struct ivi_layout_interface *interface,
-		       size_t interface_version);
-
 /*****************************************************************************
  *  local functions
  ****************************************************************************/
@@ -766,16 +760,24 @@ hmi_controller_destroy(struct wl_listener *listener, void *data)
  * ivi_hmi_controller_home is requested.
  */
 static struct hmi_controller *
-hmi_controller_create(struct weston_compositor *ec,
-		      const struct ivi_layout_interface *interface)
+hmi_controller_create(struct weston_compositor *ec)
 {
 	struct link_layer *tmp_link_layer = NULL;
 	int32_t panel_height = 0;
-	struct hmi_controller *hmi_ctrl = MEM_ALLOC(sizeof(*hmi_ctrl));
+	struct hmi_controller *hmi_ctrl;
+	const struct ivi_layout_interface *interface;
 	struct hmi_controller_layer *base_layer = NULL;
 	struct hmi_controller_layer *application_layer = NULL;
 	struct weston_output *output;
 
+	interface = ivi_layout_get_api(ec);
+
+	if (!interface) {
+		weston_log("Cannot use ivi_layout_interface.\n");
+		return NULL;
+	}
+
+	hmi_ctrl = MEM_ALLOC(sizeof(*hmi_ctrl));
 	int32_t i = 0;
 
 	wl_array_init(&hmi_ctrl->ui_widgets);
@@ -1954,20 +1956,13 @@ launch_hmi_client_process(void *data)
  *  exported functions
  ****************************************************************************/
 WL_EXPORT int
-controller_module_init(struct weston_compositor *ec,
-		       int *argc, char *argv[],
-		       const struct ivi_layout_interface *interface,
-		       size_t interface_version)
+wet_module_init(struct weston_compositor *ec,
+		       int *argc, char *argv[])
 {
 	struct hmi_controller *hmi_ctrl = NULL;
 	struct wl_event_loop *loop = NULL;
 
-	if (interface_version < sizeof(struct ivi_layout_interface)) {
-		weston_log("ivi-shell: version mismatch of controller interface\n");
-		return -1;
-	}
-
-	hmi_ctrl = hmi_controller_create(ec, interface);
+	hmi_ctrl = hmi_controller_create(ec);
 	if (hmi_ctrl == NULL)
 		return -1;
 
diff --git a/ivi-shell/weston.ini.in b/ivi-shell/weston.ini.in
index 9b53691..3f11e1c 100644
--- a/ivi-shell/weston.ini.in
+++ b/ivi-shell/weston.ini.in
@@ -1,8 +1,8 @@
 [core]
 shell=@plugin_prefix at ivi-shell.so
+modules=@plugin_prefix at hmi-controller.so
 
 [ivi-shell]
-ivi-module=@plugin_prefix at hmi-controller.so
 ivi-shell-user-interface=@abs_top_builddir@/weston-ivi-shell-user-interface
 
 #developermode=true
-- 
2.7.4



More information about the wayland-devel mailing list