[PATCH weston 4/8] ivi-shell: remove ivi_layout_get_screens API

Ucan, Emre (ADITG/SW1) eucan at de.adit-jv.com
Thu Mar 17 15:30:39 UTC 2016


The compositor data struct already has a list of weston outputs.
Therefore, this API is not required.

Signed-off-by: Emre Ucan <eucan at de.adit-jv.com>
---
 ivi-shell/hmi-controller.c       |   27 ++-----------------
 ivi-shell/ivi-layout-export.h    |    8 ------
 ivi-shell/ivi-layout.c           |   34 ------------------------
 tests/ivi_layout-internal-test.c |   53 +++++---------------------------------
 4 files changed, 8 insertions(+), 114 deletions(-)

diff --git a/ivi-shell/hmi-controller.c b/ivi-shell/hmi-controller.c
index 45beb4c..dbd498f 100644
--- a/ivi-shell/hmi-controller.c
+++ b/ivi-shell/hmi-controller.c
@@ -131,7 +131,6 @@ struct hmi_controller {
 	struct ui_setting                   ui_setting;
 
 	int32_t				    screen_num;
-	struct ivi_layout_screen	  **pp_screen;
 };
 
 struct launcher_info {
@@ -521,22 +520,6 @@ switch_mode(struct hmi_controller *hmi_ctrl,
 	free(pp_surface);
 }
 
-/**
- * Internal method to get screens from weston core
- * TODO: shall support hotplug of screens
- */
-static int32_t
-get_screens(struct hmi_controller *hmi_ctrl)
-{
-	hmi_ctrl->pp_screen = NULL;
-	hmi_ctrl->screen_num = 0;
-	ivi_layout_interface->get_screens(&hmi_ctrl->screen_num, &hmi_ctrl->pp_screen);
-
-	if (hmi_ctrl->pp_screen == NULL)
-		return -1;
-	else
-		return 0;
-}
 
 /**
  * Internal method to get ivi_layout_screen
@@ -549,7 +532,7 @@ get_screen(int32_t screen_idx, struct hmi_controller *hmi_ctrl)
 	if (screen_idx > hmi_ctrl->screen_num - 1)
 		weston_log("Invalid index. Return NULL\n");
 	else
-		iviscrn = hmi_ctrl->pp_screen[screen_idx];
+		iviscrn = ivi_layout_interface->get_screen_from_id(screen_idx);
 
 	return iviscrn;
 }
@@ -767,7 +750,6 @@ hmi_controller_destroy(struct wl_listener *listener, void *data)
 
 	wl_array_release(&hmi_ctrl->ui_widgets);
 	free(hmi_ctrl->hmi_setting);
-	free(hmi_ctrl->pp_screen);
 	free(hmi_ctrl);
 }
 
@@ -803,14 +785,9 @@ hmi_controller_create(struct weston_compositor *ec)
 	hmi_ctrl->layout_mode = IVI_HMI_CONTROLLER_LAYOUT_MODE_TILING;
 	hmi_ctrl->hmi_setting = hmi_server_setting_create(ec);
 	hmi_ctrl->compositor = ec;
+	hmi_ctrl->screen_num = wl_list_length(&ec->output_list);
 
 	/* TODO: shall support hotplug of screens */
-	if (get_screens(hmi_ctrl) < 0) {
-		weston_log("ivi-shell: Failed to get screens\n");
-		hmi_ctrl = NULL;
-		return hmi_ctrl;
-	}
-
 	iviscrn = get_screen(0, hmi_ctrl);
 
 	/* init base ivi_layer*/
diff --git a/ivi-shell/ivi-layout-export.h b/ivi-shell/ivi-layout-export.h
index 79cad5c..dade418 100644
--- a/ivi-shell/ivi-layout-export.h
+++ b/ivi-shell/ivi-layout-export.h
@@ -568,14 +568,6 @@ struct ivi_layout_interface {
 		(*get_screen_from_id)(uint32_t id_screen);
 
 	/**
-	 * \brief Get the ivi_screens
-	 *
-	 * \return IVI_SUCCEEDED if the method call was successful
-	 * \return IVI_FAILED if the method call was failed
-	 */
-	int32_t (*get_screens)(int32_t *pLength, struct ivi_layout_screen ***ppArray);
-
-	/**
 	 * \brief Get the ivi_screens under the given ivi_layer
 	 *
 	 * \return IVI_SUCCEEDED if the method call was successful
diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c
index aa36f4f..1bbb7c2 100644
--- a/ivi-shell/ivi-layout.c
+++ b/ivi-shell/ivi-layout.c
@@ -1410,39 +1410,6 @@ ivi_layout_get_properties_of_layer(struct ivi_layout_layer *ivilayer)
 }
 
 static int32_t
-ivi_layout_get_screens(int32_t *pLength, struct ivi_layout_screen ***ppArray)
-{
-	struct ivi_layout *layout = get_instance();
-	struct ivi_layout_screen *iviscrn = NULL;
-	int32_t length = 0;
-	int32_t n = 0;
-
-	if (pLength == NULL || ppArray == NULL) {
-		weston_log("ivi_layout_get_screens: invalid argument\n");
-		return IVI_FAILED;
-	}
-
-	length = wl_list_length(&layout->screen_list);
-
-	if (length != 0) {
-		/* the Array must be free by module which called this function */
-		*ppArray = calloc(length, sizeof(struct ivi_layout_screen *));
-		if (*ppArray == NULL) {
-			weston_log("fails to allocate memory\n");
-			return IVI_FAILED;
-		}
-
-		wl_list_for_each(iviscrn, &layout->screen_list, link) {
-			(*ppArray)[n++] = iviscrn;
-		}
-	}
-
-	*pLength = length;
-
-	return IVI_SUCCEEDED;
-}
-
-static int32_t
 ivi_layout_get_screens_under_layer(struct ivi_layout_layer *ivilayer,
 				   int32_t *pLength,
 				   struct ivi_layout_screen ***ppArray)
@@ -2457,7 +2424,6 @@ static struct ivi_layout_interface ivi_layout_interface = {
 	 * screen controller interfaces part1
 	 */
 	.get_screen_from_id		= ivi_layout_get_screen_from_id,
-	.get_screens			= ivi_layout_get_screens,
 	.get_screens_under_layer	= ivi_layout_get_screens_under_layer,
 	.screen_add_layer		= ivi_layout_screen_add_layer,
 	.screen_set_render_order	= ivi_layout_screen_set_render_order,
diff --git a/tests/ivi_layout-internal-test.c b/tests/ivi_layout-internal-test.c
index 6b7ca20..2dfe486 100644
--- a/tests/ivi_layout-internal-test.c
+++ b/tests/ivi_layout-internal-test.c
@@ -544,46 +544,20 @@ test_get_layer_after_destory_layer(struct test_context *ctx)
 }
 
 static void
-test_screen_id(struct test_context *ctx)
-{
-	const struct ivi_layout_interface *lyt = ctx->layout_interface;
-	struct ivi_layout_screen **iviscrns;
-	struct weston_output *output;
-	int32_t screen_length = 0;
-	int32_t i;
-
-	iassert(lyt->get_screens(&screen_length, &iviscrns) == IVI_SUCCEEDED);
-	iassert(screen_length > 0);
-
-	for (i = 0; i < screen_length; ++i) {
-		output = lyt->screen_get_output(iviscrns[i]);
-		iassert(lyt->get_screen_from_id(output->id) == iviscrns[i]);
-	}
-
-	if (screen_length > 0)
-		free(iviscrns);
-}
-
-static void
 test_screen_render_order(struct test_context *ctx)
 {
 #define LAYER_NUM (3)
 	const struct ivi_layout_interface *lyt = ctx->layout_interface;
-	struct ivi_layout_screen **iviscrns;
-	int32_t screen_length = 0;
 	struct ivi_layout_screen *iviscrn;
 	struct ivi_layout_layer *ivilayers[LAYER_NUM] = {};
 	struct ivi_layout_layer **array;
 	int32_t length = 0;
 	uint32_t i;
 
-	iassert(lyt->get_screens(&screen_length, &iviscrns) == IVI_SUCCEEDED);
-	iassert(screen_length > 0);
-
-	if (screen_length <= 0)
+	if (wl_list_empty(&ctx->compositor->output_list))
 		return;
 
-	iviscrn = iviscrns[0];
+	iviscrn = lyt->get_screen_from_id(0);
 
 	for (i = 0; i < LAYER_NUM; i++)
 		ivilayers[i] = lyt->layer_create_with_dimension(IVI_TEST_LAYER_ID(i), 200, 300);
@@ -612,7 +586,6 @@ test_screen_render_order(struct test_context *ctx)
 	for (i = 0; i < LAYER_NUM; i++)
 		lyt->layer_destroy(ivilayers[i]);
 
-	free(iviscrns);
 #undef LAYER_NUM
 }
 
@@ -621,21 +594,16 @@ test_screen_bad_render_order(struct test_context *ctx)
 {
 #define LAYER_NUM (3)
 	const struct ivi_layout_interface *lyt = ctx->layout_interface;
-	struct ivi_layout_screen **iviscrns;
-	int32_t screen_length;
 	struct ivi_layout_screen *iviscrn;
 	struct ivi_layout_layer *ivilayers[LAYER_NUM] = {};
 	struct ivi_layout_layer **array;
 	int32_t length = 0;
 	uint32_t i;
 
-	iassert(lyt->get_screens(&screen_length, &iviscrns) == IVI_SUCCEEDED);
-	iassert(screen_length > 0);
-
-	if (screen_length <= 0)
+	if (wl_list_empty(&ctx->compositor->output_list))
 		return;
 
-	iviscrn = iviscrns[0];
+	iviscrn = lyt->get_screen_from_id(0);
 
 	for (i = 0; i < LAYER_NUM; i++)
 		ivilayers[i] = lyt->layer_create_with_dimension(IVI_TEST_LAYER_ID(i), 200, 300);
@@ -651,7 +619,6 @@ test_screen_bad_render_order(struct test_context *ctx)
 	for (i = 0; i < LAYER_NUM; i++)
 		lyt->layer_destroy(ivilayers[i]);
 
-	free(iviscrns);
 #undef LAYER_NUM
 }
 
@@ -661,19 +628,14 @@ test_commit_changes_after_render_order_set_layer_destroy(
 {
 #define LAYER_NUM (3)
 	const struct ivi_layout_interface *lyt = ctx->layout_interface;
-	struct ivi_layout_screen **iviscrns;
-	int32_t screen_length;
 	struct ivi_layout_screen *iviscrn;
 	struct ivi_layout_layer *ivilayers[LAYER_NUM] = {};
 	uint32_t i;
 
-	iassert(lyt->get_screens(&screen_length, &iviscrns) == IVI_SUCCEEDED);
-	iassert(screen_length > 0);
-
-	if (screen_length <= 0)
+	if (wl_list_empty(&ctx->compositor->output_list))
 		return;
 
-	iviscrn = iviscrns[0];
+	iviscrn = lyt->get_screen_from_id(0);
 
 	for (i = 0; i < LAYER_NUM; i++)
 		ivilayers[i] = lyt->layer_create_with_dimension(IVI_TEST_LAYER_ID(i), 200, 300);
@@ -686,8 +648,6 @@ test_commit_changes_after_render_order_set_layer_destroy(
 
 	lyt->layer_destroy(ivilayers[0]);
 	lyt->layer_destroy(ivilayers[2]);
-
-	free(iviscrns);
 #undef LAYER_NUM
 }
 
@@ -938,7 +898,6 @@ run_internal_tests(void *data)
 	test_layer_create_duplicate(ctx);
 	test_get_layer_after_destory_layer(ctx);
 
-	test_screen_id(ctx);
 	test_screen_render_order(ctx);
 	test_screen_bad_render_order(ctx);
 	test_commit_changes_after_render_order_set_layer_destroy(ctx);
-- 
1.7.9.5



More information about the wayland-devel mailing list