[Xfce4-commits] [apps/parole] 01/01: Make clutter optional, default disabled

noreply at xfce.org noreply at xfce.org
Fri Jun 20 05:04:19 CEST 2014


This is an automated email from the git hooks/post-receive script.

bluesabre pushed a commit to branch master
in repository apps/parole.

commit 26e7b9c159ec8efc121314d3a301584cbce7e3de
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Thu Jun 19 23:04:00 2014 -0400

    Make clutter optional, default disabled
---
 configure.ac.in      |   17 +++++++++++++++--
 src/Makefile.am      |   42 ++++++++++++++++++++++++------------------
 src/gst/parole-gst.c |   10 ++++++++++
 src/parole-player.c  |   24 ++++++++++++++++++++++--
 4 files changed, 71 insertions(+), 22 deletions(-)

diff --git a/configure.ac.in b/configure.ac.in
index adcc998..70c2e2d 100644
--- a/configure.ac.in
+++ b/configure.ac.in
@@ -135,8 +135,6 @@ dnl *** Compile against GTK3 ***
 dnl ************************************
 XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-2], [libxfce4ui_minimum_version])
 XDT_CHECK_PACKAGE([GTK], [gtk+-3.0], [gtk_minimum_version])
-XDT_CHECK_PACKAGE([CLUTTER], [clutter-1.0], [clutter_minimum_version])
-XDT_CHECK_PACKAGE([CLUTTERGTK], [clutter-gtk-1.0], [cluttergtk_minimum_version])
 
 XDT_CHECK_PACKAGE([GST], [gstreamer-${gstreamer_api_version}], [${gstreamer_minimum_version}])
 XDT_CHECK_PACKAGE([GST_BASE], [gstreamer-base-${gstreamer_api_version}], [${gstreamer_minimum_version}])
@@ -179,6 +177,20 @@ if test "x${ac_cv_have_decl_XF86XK_AudioPlay}" != "xno"; then
 fi
 
 # ===================================================== #
+#                   Clutter support                     #
+# ===================================================== #
+AC_ARG_ENABLE([clutter], AC_HELP_STRING([--enable-clutter], [Include clutter backend]),
+  [ac_clutter=$enableval], [ac_clutter=no])
+AC_MSG_CHECKING([whether to build the clutter backend])
+AM_CONDITIONAL([PAROLE_CLUTTER_BACKEND], [test x"$ac_clutter" = x"yes"])
+AC_MSG_RESULT([$ac_clutter])
+if test x"$ac_clutter" = x"yes"; then
+    XDT_CHECK_PACKAGE([CLUTTER], [clutter-1.0], [clutter_minimum_version])
+    XDT_CHECK_PACKAGE([CLUTTERGTK], [clutter-gtk-1.0], [cluttergtk_minimum_version])
+    AC_DEFINE([HAVE_CLUTTER], [1], [Define to 1 if clutter is found])
+fi
+
+# ===================================================== #
 #                   TagLib support                      #
 # ===================================================== #
 TAGLIB_FOUND="no"
@@ -295,6 +307,7 @@ echo "
 
         Optional dependencies:
         ======================
+        Clutter Backend:                ${ac_clutter}
         Taglib:                         $TAGLIB_FOUND
 
         Plugins to build:
diff --git a/src/Makefile.am b/src/Makefile.am
index a0955f7..7d20013 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -4,7 +4,7 @@ SUBDIRS = 					\
 	common					\
 	gst					\
 	dbus					\
-	plugins					
+	plugins
 
 INCLUDES =					\
 	-I$(top_srcdir)				\
@@ -20,18 +20,16 @@ INCLUDES =					\
 	-DPAROLE_PLUGINS_DIR=\"$(libdir)/parole-$(PAROLE_VERSION_API)\"\
 	-DPAROLE_PLUGINS_DATA_DIR=\"$(datadir)/parole/parole-plugins-$(PAROLE_VERSION_API)\"\
 	-DPAROLE_COMPILATION			\
-        $(GTHREAD_CFLAGS)                       \
+	$(GTHREAD_CFLAGS)                       \
 	$(GIO_CFLAGS)				\
 	$(GMODULE_CFLAGS)			\
-        $(DBUS_GLIB_CFLAGS)                     \
-        $(LIBXFCE4UI_CFLAGS)                   \
-        $(XFCONF_CFLAGS)                   \
+	$(DBUS_GLIB_CFLAGS)                     \
+	$(LIBXFCE4UI_CFLAGS)                   \
+	$(XFCONF_CFLAGS)                   \
 	$(GST_VIDEO_CFLAGS)			\
 	$(GST_INTERFACES_CFLAGS)		\
 	$(TAGLIBC_CFLAGS)			\
-	$(LIBX11_CFLAGS)			\
-	$(CLUTTER_CFLAGS)				\
-	$(CLUTTERGTK_CFLAGS)
+	$(LIBX11_CFLAGS)
 
 GENERATED_FILES =				\
 	gmarshal.c				\
@@ -52,8 +50,6 @@ parole_SOURCES =				\
 	parole-medialist.h			\
 	parole-mediachooser.c			\
 	parole-mediachooser.h			\
-	parole-clutter.c			\
-	parole-clutter.h			\
 	parole-conf.c				\
 	parole-conf.h				\
 	parole-conf-dialog.c			\
@@ -85,23 +81,33 @@ parole_LDADD =						   	\
 	$(top_builddir)/src/gst/libparolegst.la 	   	\
 	$(top_builddir)/src/common/libparolecommon.la      	\
 	$(top_builddir)/src/common/libparolescreensaver.la 	\
-        $(GTHREAD_LIBS)                         \
+	$(GTHREAD_LIBS)                         \
 	$(GIO_LIBS)				\
 	$(GMODULE_LIBS)				\
-        $(DBUS_GLIB_LIBS)                       \
-        $(LIBXFCE4UI_LIBS)                     \
-        $(XFCONF_LIBS)                     \
+	$(DBUS_GLIB_LIBS)                       \
+	$(LIBXFCE4UI_LIBS)                     \
+	$(XFCONF_LIBS)                     \
 	$(GST_VIDEO_LIBS)			\
 	$(GST_INTERFACES_LIBS)			\
 	$(TAGLIBC_LIBS)				\
-	$(LIBX11_LIBS)				\
-	$(CLUTTER_LIBS)				\
-	$(CLUTTERGTK_LIBS)
+	$(LIBX11_LIBS)
 
 parole_glib_enum_headers =			\
 	parole-conf.h				\
 	parole-button.h
 
+if PAROLE_CLUTTER_BACKEND
+INCLUDES +=			\
+	$(CLUTTER_CFLAGS)				\
+	$(CLUTTERGTK_CFLAGS)
+parole_SOURCES +=				\
+	parole-clutter.c			\
+	parole-clutter.h
+parole_LDADD +=				\
+	$(CLUTTER_LIBS)				\
+	$(CLUTTERGTK_LIBS)
+endif
+
 if MAINTAINER_MODE
 
 BUILT_SOURCES = 				\
@@ -151,7 +157,7 @@ endif
 EXTRA_DIST =					\
 	gmarshal.list               \
 	org.parole.media.player.xml \
-	org.parole.media.list.xml   
+	org.parole.media.list.xml
 
 DISTCLEANFILES =				\
 	$(BUILT_SOURCES)			\
diff --git a/src/gst/parole-gst.c b/src/gst/parole-gst.c
index ba6fbe1..36382bd 100644
--- a/src/gst/parole-gst.c
+++ b/src/gst/parole-gst.c
@@ -367,7 +367,15 @@ parole_gst_get_video_output_size (ParoleGst *gst, gint *ret_w, gint *ret_h)
 static void
 parole_gst_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
 {
+#if HAVE_CLUTTER
+    ParoleGst *gst;
+#endif
     g_return_if_fail (allocation != NULL);
+#if HAVE_CLUTTER
+    gst = PAROLE_GST(parole_gst_get());
+    if (gst->priv->image_sink == CLUTTERSINK)
+        return;
+#endif
 
     gtk_widget_set_allocation(widget, allocation);
 
@@ -2185,11 +2193,13 @@ parole_gst_constructed (GObject *object)
         gst->priv->video_sink = gst_element_factory_make ("xvimagesink", "video");
     }
 
+#if HAVE_CLUTTER
     if (g_strcmp0(videosink, "cluttersink") == 0)
     {
         gst->priv->image_sink = CLUTTERSINK;
         gst->priv->video_sink = gst_element_factory_make ("cluttersink", "video");
     }
+#endif
 
     if ( G_UNLIKELY (gst->priv->video_sink == NULL) )
     {
diff --git a/src/parole-player.c b/src/parole-player.c
index 2be9506..a9c71b8 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -67,7 +67,10 @@
 #include "parole-button.h"
 #include "enum-gtypes.h"
 #include "parole-debug.h"
+
+#ifdef HAVE_CLUTTER
 #include "parole-clutter.h"
+#endif
 
 #include "gst/gst-enum-types.h"
 
@@ -435,7 +438,10 @@ struct ParolePlayerPrivate
     gboolean            buffering;
     gboolean            wait_for_gst_disc_info;
 
+#ifdef HAVE_CLUTTER
     GtkWidget          *clutter;
+    gboolean            use_clutter;
+#endif
 
     /* Actions */
     GSimpleAction      *media_next_action;
@@ -1393,7 +1399,10 @@ parole_player_playing (ParolePlayer *player, const ParoleStream *stream)
                   "live", &live,
                   NULL);
 
-    parole_clutter_set_video_dimensions (PAROLE_CLUTTER(player->priv->clutter), width, height);
+#ifdef HAVE_CLUTTER
+    if (player->priv->use_clutter)
+        parole_clutter_set_video_dimensions (PAROLE_CLUTTER(player->priv->clutter), width, height);
+#endif
 
     if (player->priv->wait_for_gst_disc_info == TRUE)
     {
@@ -3543,7 +3552,10 @@ parole_player_init (ParolePlayer *player)
     g_object_get (G_OBJECT (player->priv->conf),
                   "videosink", &videosink,
                   NULL);
-    if (g_strcmp0(videosink, "cluttersink") == 0)
+
+#ifdef HAVE_CLUTTER
+    player->priv->use_clutter = g_strcmp0(videosink, "cluttersink") == 0;
+    if (player->priv->use_clutter)
     {
         GtkWidget *clutterbox;
         GstElement *video_sink;
@@ -3565,10 +3577,18 @@ parole_player_init (ParolePlayer *player)
         gtk_box_pack_start (GTK_BOX (player->priv->videobox),
                                      player->priv->gst,
                                      TRUE, TRUE, 0);
+
+        gtk_widget_realize (player->priv->gst);
+        gtk_widget_show (player->priv->gst);
     }
+#else
+    gtk_box_pack_start (GTK_BOX (player->priv->videobox),
+                                 player->priv->gst,
+                                 TRUE, TRUE, 0);
 
     gtk_widget_realize (player->priv->gst);
     gtk_widget_show (player->priv->gst);
+#endif
 
     g_signal_connect (G_OBJECT (parole_gst_get_stream (PAROLE_GST (player->priv->gst))), "notify::seekable",
               G_CALLBACK (parole_player_seekable_notify), player);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list