<p>Initialize the screen mirroring sink for use.</p>
</li>
<li><a href="#prepare">Preparing the Screen Mirroring Sink</a>
- <p>Set specific information, and prepare the screen mirroring sink.</p>
+ <p>Set specific information, Set display object, and prepare the screen mirroring sink.</p>
</li>
<li><a href="#connect">Connecting and Starting the Screen Mirroring Sink</a>
<p>Connect and start the screen mirroring sink.</p>
return;
}
-static int prepare_scmirroring_sink(scmirroring_display_type_e display_type, Evas_Object* display_object)
+static int prepare_scmirroring_sink(scmirroring_display_type_e display_type)
{
ret = scmirroring_sink_set_state_changed_cb(g_scmirroring, scmirroring_state_callback, NULL);
if (ret != SCMIRRORING_ERROR_NONE)
</pre>
</li>
<li>Set a display object using the <span style="font-family: Courier New,Courier,monospace">scmirroring_sink_set_display()</span> function before calling the <span style="font-family: Courier New,Courier,monospace">scmirroring_sink_prepare()</span> function.
- <pre class="prettyprint">
- ret = scmirroring_sink_set_display(g_scmirroring, display_type, display_object);
- if (ret != SCMIRRORING_ERROR_NONE)
+<pre class="prettyprint">
+ switch (display_type)
{
- dlog_print(DLOG_ERROR, LOG_TAG, "scmirroring_sink_set_display fail [%d]", ret);
-
- return FALSE;
+ case SCMIRRORING_DISPLAY_TYPE_EVAS:
+ if (g_eo == NULL)
+ {
+ dlog_print(DLOG_ERROR, LOG_TAG, "g_eo is NULL");
+ return FALSE;
+ }
+ ret = scmirroring_sink_set_display(g_scmirroring, SCMIRRORING_DISPLAY_TYPE_EVAS, (void*)g_eo);
+ if (ret != SCMIRRORING_ERROR_NONE)
+ {
+ dlog_print(DLOG_ERROR, LOG_TAG, "scmirroring_sink_set_display fail [%d], display type [%d]", ret, display_type);
+ return FALSE;
+ }
+ break;
+ case SCMIRRORING_DISPLAY_TYPE_OVERLAY:
+ if (g_win == NULL)
+ {
+ dlog_print(DLOG_ERROR, LOG_TAG, "g_win is NULL");
+ return FALSE;
+ }
+ ret = scmirroring_sink_set_display(g_scmirroring, SCMIRRORING_DISPLAY_TYPE_OVERLAY, (void*)g_win);
+ if (ret != SCMIRRORING_ERROR_NONE)
+ {
+ dlog_print(DLOG_ERROR, LOG_TAG, "scmirroring_sink_set_display fail [%d], display type [%d]", ret, display_type);
+ return FALSE;
+ }
+ break;
+ default:
+ dlog_print(DLOG_ERROR, LOG_TAG, "Invalid display type [%d].", display_type);
+ return FALSE;
}</pre>
+<ul><li>Example: Create the display object according to <span style="font-family: Courier New,Courier,monospace">scmirroring_display_type_e</span> :</ul>
+<pre class="prettyprint">
+#define PACKAGE_NAME "SCREEN_MIRRORING_SINK_APP"
+#define WINDOW_WIDTH 800
+#define WINDOW_HEIGHT 1200
+
+static Evas_Object *g_win = NULL;
+static Evas_Object *g_evas = NULL;
+static Evas_Object *g_eo = NULL;
+static Evas_Object *g_rect = NULL;
+
+static void create_base_gui (scmirroring_display_type_e display_type)
+{
+ g_win = elm_win_add(NULL, PACKAGE_NAME, ELM_WIN_BASIC);
+
+ evas_object_resize(g_win, WINDOW_WIDTH, WINDOW_HEIGHT);
+ evas_object_move(g_win, 0, 0);
+ elm_win_autodel_set(g_win, EINA_TRUE);
+
+ switch (display_type)
+ {
+ case SCMIRRORING_DISPLAY_TYPE_EVAS:
+ g_evas = evas_object_evas_get(g_win);
+ // Set Evas image object for drawing
+ g_eo = evas_object_image_add(g_evas);
+ evas_object_image_size_set(g_eo, WINDOW_WIDTH, WINDOW_HEIGHT);
+ evas_object_image_fill_set(g_eo, 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);
+ evas_object_resize(g_eo, WINDOW_WIDTH, WINDOW_HEIGHT);
+ // Show the window after the base GUI is set up
+ evas_object_show(g_eo);
+ evas_object_show(g_win);
+ break;
+
+ case SCMIRRORING_DISPLAY_TYPE_OVERLAY:
+ g_rect = evas_object_rectangle_add(g_evas);
+ evas_object_resize(g_rect, WINDOW_WIDTH, WINDOW_HEIGHT);
+ evas_object_move(g_rect, 0, 0);
+ evas_object_color_set(g_rect, 0, 0, 0, 0);
+ evas_object_render_op_set(g_rect, EVAS_RENDER_COPY);
+ evas_object_size_hint_weight_set(g_rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ // Show the window after the base GUI is set up
+ evas_object_show(g_win);
+ break;
+ default:
+ break;
+ }
+}</pre>
</li>
<li>Prepare the screen mirroring sink using the <span style="font-family: Courier New,Courier,monospace">scmirroring_sink_prepare()</span> function. The screen mirroring state immediately becomes <span style="font-family: Courier New,Courier,monospace">SCMIRRORING_STATE_PREPARED</span>.