Modified to create xid using Window handle passed by app 82/49382/2
authorTaewan, Kim <taewan79.kim@samsung.com>
Fri, 2 Oct 2015 04:17:21 +0000 (13:17 +0900)
committerhj kim <backto.kim@samsung.com>
Tue, 13 Oct 2015 10:47:37 +0000 (03:47 -0700)
Change-Id: If4524ca3a61518a57efb4c9247fdd75f2ae5746f
Signed-off-by: Taewan, Kim <taewan79.kim@samsung.com>
configure.ac
packaging/libmm-wfd.spec
sink/Makefile.am
sink/mm_wfd_sink_priv.c

index 1b3319b..741b105 100755 (executable)
@@ -81,6 +81,14 @@ PKG_CHECK_MODULES(DLOG, dlog)
 AC_SUBST(DLOG_CFLAGS)
 AC_SUBST(DLOG_LIBS)
 
+PKG_CHECK_MODULES(ELEMENTARY, elementary)
+AC_SUBST(ELEMENTARY_CFLAGS)
+AC_SUBST(ELEMENTARY_LIBS)
+
+PKG_CHECK_MODULES(EVAS, evas)
+AC_SUBST(EVAS_CFLAGS)
+AC_SUBST(EVAS_LIBS)
+
 # for testsuite
 
 AC_ARG_ENABLE(sdk, AC_HELP_STRING([--enable-sdk], [sdk build]),
index 6ec39dc..13838cd 100755 (executable)
@@ -15,6 +15,8 @@ BuildRequires: pkgconfig(gstreamer-app-1.0)
 BuildRequires: pkgconfig(iniparser)
 BuildRequires: pkgconfig(capi-network-wifi-direct)
 BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(evas)
 
 BuildRoot:  %{_tmppath}/%{name}-%{version}-build
 
index ca5a516..d652c28 100755 (executable)
@@ -13,6 +13,8 @@ libmmfwfdsink_la_SOURCES = mm_wfd_sink_util.c \
 libmmfwfdsink_la_CFLAGS =  -I$(srcdir)/include \
                        $(MMCOMMON_CFLAGS) \
                        $(GST_CFLAGS) \
+                       $(EVAS_CFLAGS) \
+                       $(ELEMENTARY_CFLAGS) \
                        $(GST_PLUGINS_BASE_CFLAGS) \
                        $(GST_VIDEO_CFLAGS) \
                        $(MM_WFD_COMMON_CFLAGS) \
@@ -29,6 +31,8 @@ noinst_HEADERS = include/mm_wfd_sink_priv.h \
 libmmfwfdsink_la_LIBADD = $(GST_LIBS) \
                        $(GST_PLUGINS_BASE_LIBS) \
                        $(GST_BASE_LIBS) \
+                       $(ELEMENTARY_LIBS) \
+                       $(EVAS_LIBS) \
                        $(top_builddir)/common/libwfdcommon.la \
                        $(MMCOMMON_LIBS) \
                        $(MM_WFD_COMMON_LIBS) \
index 8f0a3dc..cc3f3fe 100755 (executable)
@@ -22,6 +22,7 @@
 
 #include <gst/gst.h>
 #include <gst/video/videooverlay.h>
+#include <Elementary.h>
 
 #include "mm_wfd_sink_util.h"
 #include "mm_wfd_sink_priv.h"
@@ -2938,17 +2939,26 @@ static int __mm_wfd_sink_prepare_videosink(mm_wfd_sink_t *wfd_sink, GstElement *
 
                case MM_DISPLAY_SURFACE_X: {
                                int *object = NULL;
+                               Evas_Object *obj = NULL;
+                               const char *object_type = NULL;
+                               unsigned int g_xwin = 0;
 
                                /* x surface */
-                               mm_attrs_get_data_by_name(wfd_sink->attrs, "display_overlay", (void **)&object);
-                               if (object) {
-                                       xid = *object;
-                                       wfd_sink_debug("xid = %lu", xid);
-                                       gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(video_sink), xid);
-                               } else {
-                                       wfd_sink_warning("Handle is NULL. Set xid as 0.. but, it's not recommended.");
-                                       gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(video_sink), 0);
+                               mm_attrs_get_data_by_name(wfd_sink->attrs, "display_overlay", &object);
+
+                               if(object != NULL) {
+                                       obj = (Evas_Object *)object;
+                                       object_type = evas_object_type_get(obj);
+
+                                       wfd_sink_debug("window object type : %s", object_type);
+                                       
+                                       if (!strcmp(object_type, "elm_win"))
+                                               g_xwin = elm_win_xwindow_get(obj);
                                }
+
+                               wfd_sink_debug("xid = %lu", g_xwin);
+                               gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(video_sink), g_xwin);
+
                        }
                        break;