From: Hyunsoo Park Date: Fri, 15 May 2020 08:13:40 +0000 (+0900) Subject: [ITC][UTC][screen-mirroring] Update display related tc X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F42%2F233542%2F1;p=test%2Ftct%2Fnative%2Fapi.git [ITC][UTC][screen-mirroring] Update display related tc Change-Id: I25cfdb0c771c88ec43a5c6ad745a3e474cde13ca Signed-off-by: Hyunsoo Park --- diff --git a/src/itc/screen-mirroring/ITs-screen-mirroring-common.h b/src/itc/screen-mirroring/ITs-screen-mirroring-common.h index 5997c4502..b2e6c7c08 100755 --- a/src/itc/screen-mirroring/ITs-screen-mirroring-common.h +++ b/src/itc/screen-mirroring/ITs-screen-mirroring-common.h @@ -23,6 +23,7 @@ #include #include #include +#include /** @addtogroup itc-screen-mirroring * @ingroup itc diff --git a/src/itc/screen-mirroring/ITs-screen-mirroring.c b/src/itc/screen-mirroring/ITs-screen-mirroring.c index d670a0915..955ba57dd 100755 --- a/src/itc/screen-mirroring/ITs-screen-mirroring.c +++ b/src/itc/screen-mirroring/ITs-screen-mirroring.c @@ -15,6 +15,8 @@ // #include "ITs-screen-mirroring-common.h" +#define PACKAGE "screen_mirroring_sink_test" + /** @addtogroup itc-screen-mirroring * @ingroup itc * @{ @@ -22,6 +24,73 @@ scmirroring_sink_h g_hScMirroringSink = NULL; +static Evas_Object* g_evas; +static Evas_Object* _create_win(const char *name); +static void create_win(); +static void _win_del(void *data, Evas_Object *obj, void *event); +static void create_render_rect_and_bg(Evas_Object *win); + +static void create_win() +{ + Evas_Object *win = NULL; + /* create window */ + win = _create_win(PACKAGE); + g_evas = win; + create_render_rect_and_bg(g_evas); + + elm_win_activate(win); + evas_object_show(win); +} + +void create_render_rect_and_bg(Evas_Object *win) +{ + if (!win) { + g_print("no win"); + return; + } + Evas_Object *bg, *rect; + + bg = elm_bg_add(win); + elm_win_resize_object_add(win, bg); + evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(bg); + + rect = evas_object_rectangle_add(evas_object_evas_get(win)); + if (!rect) { + g_print("no rect"); + return; + } + evas_object_color_set(rect, 0, 0, 0, 0); + evas_object_render_op_set(rect, EVAS_RENDER_COPY); + + elm_win_resize_object_add(win, rect); + evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(rect); + evas_object_show(win); +} + +static Evas_Object* _create_win(const char *name) +{ + Evas_Object *eo = NULL; + int w = 0; + int h = 0; + + eo = elm_win_add(NULL, name, ELM_WIN_BASIC); + if (eo) { + elm_win_title_set(eo, name); + elm_win_borderless_set(eo, EINA_TRUE); + evas_object_smart_callback_add(eo, "delete,request", _win_del, NULL); + elm_win_autodel_set(eo, EINA_TRUE); + elm_win_screen_size_get(eo, NULL, NULL, &w, &h); + elm_win_alpha_set(eo, EINA_TRUE); + } + return eo; +} + +static void _win_del(void *data, Evas_Object *obj, void *event) +{ + elm_exit(); +} /** * @function scmirroring_state_sink_callback * @description Callback function to indicate sink state @@ -196,8 +265,10 @@ int ITc_scmirroring_sink_set_display_p(void) nRet = scmirroring_sink_create(&hSkMirroring); PRINT_RESULT(SCMIRRORING_ERROR_NONE, nRet, "scmirroring_sink_create", ScreenMirroringInfoGetError(nRet)); CHECK_HANDLE(hSkMirroring, "scmirroring_sink_create"); - - nRet = scmirroring_sink_set_display(hSkMirroring, setDisp[enum_counter], "display_sureface"); + create_win(); + evas_object_show(g_evas); + + nRet = scmirroring_sink_set_display(hSkMirroring, setDisp[enum_counter], (void *)g_evas); if ( nRet != SCMIRRORING_ERROR_NONE ) { FPRINTF("[Line : %d][%s] scmirroring_sink_set_display failed for Display Type = %s, error returned = %s [%d]\\n", __LINE__, API_NAMESPACE, ScreenMirroringInfoDisplayType(setDisp[enum_counter]), ScreenMirroringInfoGetError(nRet), nRet); diff --git a/src/utc/screen-mirroring/utc-media-screen-mirroring-sink.c b/src/utc/screen-mirroring/utc-media-screen-mirroring-sink.c index ff1b8c3ab..c0ed00999 100755 --- a/src/utc/screen-mirroring/utc-media-screen-mirroring-sink.c +++ b/src/utc/screen-mirroring/utc-media-screen-mirroring-sink.c @@ -17,8 +17,10 @@ #include #include #include +#include //& set: ScreenMirroringSink +#define PACKAGE "screen_mirroring_tc" #define WFD_SINK_TEST_PORT "1122" #define WFD_SINK_TEST_IP "192.168.0.1" @@ -28,6 +30,12 @@ static bool _is_broken = false; static bool _is_pass = false; static int _start_ret; static GMainLoop *g_mainloop = NULL; +static Evas_Object* g_evas; + +static Evas_Object* _create_win(const char *name); +static void create_win(); +static void _win_del(void *data, Evas_Object *obj, void *event); +static void create_render_rect_and_bg(Evas_Object *win); static gboolean timeout_func(gpointer data) { @@ -50,7 +58,67 @@ static void screen_mirroring_sink_state_cb(scmirroring_error_e error, scmirrorin _is_pass = true; } +static void create_win() +{ + Evas_Object *win = NULL; + /* create window */ + win = _create_win(PACKAGE); + g_evas = win; + create_render_rect_and_bg(g_evas); + + elm_win_activate(win); + evas_object_show(win); +} +void create_render_rect_and_bg(Evas_Object *win) +{ + if (!win) { + g_print("no win"); + return; + } + Evas_Object *bg, *rect; + + bg = elm_bg_add(win); + elm_win_resize_object_add(win, bg); + evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(bg); + + rect = evas_object_rectangle_add(evas_object_evas_get(win)); + if (!rect) { + g_print("no rect"); + return; + } + evas_object_color_set(rect, 0, 0, 0, 0); + evas_object_render_op_set(rect, EVAS_RENDER_COPY); + + elm_win_resize_object_add(win, rect); + evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(rect); + evas_object_show(win); +} + +static Evas_Object* _create_win(const char *name) +{ + Evas_Object *eo = NULL; + int w = 0; + int h = 0; + + eo = elm_win_add(NULL, name, ELM_WIN_BASIC); + if (eo) { + elm_win_title_set(eo, name); + elm_win_borderless_set(eo, EINA_TRUE); + evas_object_smart_callback_add(eo, "delete,request", _win_del, NULL); + elm_win_autodel_set(eo, EINA_TRUE); + elm_win_screen_size_get(eo, NULL, NULL, &w, &h); + elm_win_alpha_set(eo, EINA_TRUE); + } + return eo; +} + +static void _win_del(void *data, Evas_Object *obj, void *event) +{ + elm_exit(); +} /** * @function utc_media_screen_mirroring_sink_startup * @description Called before each test @@ -410,9 +478,11 @@ int utc_media_scmirroring_sink_set_display_p1(void) } assert(!_is_broken); int ret; - int test_display=0; + ret = create_win(); + assert_eq(ret, SCMIRRORING_ERROR_NONE); + evas_object_show(g_evas); - ret = scmirroring_sink_set_display(scmirroring_sink, SCMIRRORING_DISPLAY_TYPE_OVERLAY, &test_display); + ret = scmirroring_sink_set_display(scmirroring_sink, SCMIRRORING_DISPLAY_TYPE_OVERLAY, (void *)g_evas); assert_eq(ret, SCMIRRORING_ERROR_NONE); return 0; @@ -432,9 +502,11 @@ int utc_media_scmirroring_sink_set_display_p2(void) } assert(!_is_broken); int ret; - int test_display=0; + ret = create_win(); + assert_eq(ret, SCMIRRORING_ERROR_NONE); + evas_object_show(g_evas); - ret = scmirroring_sink_set_display(scmirroring_sink, SCMIRRORING_DISPLAY_TYPE_EVAS, &test_display); + ret = scmirroring_sink_set_display(scmirroring_sink, SCMIRRORING_DISPLAY_TYPE_EVAS, (void *)g_evas); assert_eq(ret, SCMIRRORING_ERROR_NONE); return 0;