[maemo-commits] [maemo-commits] r18483 - in projects/haf/trunk/hildon-thumbnail: . thumbnailers/gst-video-thumbnailer

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Mon May 25 18:46:07 EEST 2009
Author: pvanhoof
Date: 2009-05-25 18:46:04 +0300 (Mon, 25 May 2009)
New Revision: 18483

Modified:
   projects/haf/trunk/hildon-thumbnail/ChangeLog
   projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/Makefile.am
   projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/gst-thumb-main.c
   projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/gst-thumb-thumber.c
   projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/gst-thumb-thumber.h
Log:
2009-05-25  Mikael Ottela  <mikael.ottela at ixonos.com>

        * thumbnailers/gst-video-thumbnailer/gst-thumb-thumber.c
        * thumbnailers/gst-video-thumbnailer/gst-thumb-thumber.h
        * thumbnailers/gst-video-thumbnailer/Makefile.am
        * thumbnailers/gst-video-thumbnailer/gst-thumb-main.c: Fixed the
        thumbnail extension and added unmount handling.



Modified: projects/haf/trunk/hildon-thumbnail/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-thumbnail/ChangeLog	2009-05-25 15:18:04 UTC (rev 18482)
+++ projects/haf/trunk/hildon-thumbnail/ChangeLog	2009-05-25 15:46:04 UTC (rev 18483)
@@ -1,3 +1,11 @@
+2009-05-25  Mikael Ottela  <mikael.ottela at ixonos.com>
+
+	* thumbnailers/gst-video-thumbnailer/gst-thumb-thumber.c
+	* thumbnailers/gst-video-thumbnailer/gst-thumb-thumber.h
+	* thumbnailers/gst-video-thumbnailer/Makefile.am
+	* thumbnailers/gst-video-thumbnailer/gst-thumb-main.c: Fixed the
+	thumbnail extension and added unmount handling.
+
 2009-05-25  Philip Van Hoof  <pvanhoof at codeminded.be>
 
 	* config.h.in

Modified: projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/Makefile.am
===================================================================
--- projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/Makefile.am	2009-05-25 15:18:04 UTC (rev 18482)
+++ projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/Makefile.am	2009-05-25 15:46:04 UTC (rev 18483)
@@ -28,7 +28,9 @@
 
 CLEANFILES = $(com.nokia.Thumbnailer_service_DATA) 
 
+if HAVE_GSTREAMER
 libexec_PROGRAMS = gst-video-thumbnailerd
+endif
 
 # Marshall
 gst-video-thumbnailer-marshal.h: gst-video-thumbnailer-marshal.list

Modified: projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/gst-thumb-main.c
===================================================================
--- projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/gst-thumb-main.c	2009-05-25 15:18:04 UTC (rev 18482)
+++ projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/gst-thumb-main.c	2009-05-25 15:46:04 UTC (rev 18483)
@@ -23,6 +23,9 @@
 #include "config.h"
 #endif
 
+#include <stdlib.h>
+#include <gio/gio.h>
+
 #include "gst-thumb-thumber.h"
 
 #define DEFAULT_BUS_NAME       "com.nokia.thumbnailer.Gstreamer"
@@ -69,6 +72,22 @@
   { NULL }
 };
 
+static void
+mount_pre_unmount_cb (GVolumeMonitor *volume_monitor,
+		      GMount         *mount,
+		      Thumber        *thumber)
+{
+	/* FIXME We should instead cancel offending tasks and handle gracefully */
+
+	GDrive *drive = g_mount_get_drive (mount);
+	if (g_drive_is_media_removable (drive)) {
+		g_object_unref (drive);
+
+		exit (0);
+	}
+	g_object_unref (drive);
+}
+
 gboolean
 gst_thumb_main_quit (void)
 {
@@ -79,11 +98,12 @@
 gint
 main (gint argc, gchar *argv[])
 {
-	GError          *error      = NULL;
-	GValue           val        = {0, };
-	GOptionContext  *context    = NULL;
-	GOptionGroup    *group      = NULL;
-	Thumber         *thumber    = NULL;
+	GError          *error          = NULL;
+	GValue           val            = {0, };
+	GOptionContext  *context        = NULL;
+	GOptionGroup    *group          = NULL;
+	Thumber         *thumber        = NULL;
+	GVolumeMonitor  *volume_monitor = NULL;
 
 	g_type_init ();
 
@@ -138,6 +158,11 @@
 	g_value_set_boolean (&val, !cropped);
 	g_object_set_property (G_OBJECT(thumber), "cropped", &val);
 	g_value_unset (&val);
+
+	/* Create volume monitor */
+	volume_monitor = g_volume_monitor_get ();
+	g_signal_connect (volume_monitor, "mount-pre-unmount",
+			  G_CALLBACK (mount_pre_unmount_cb), thumber);
 	
 	g_message ("Starting...");
 	thumber_start (thumber);
@@ -147,9 +172,16 @@
 
 	g_message ("Shutting down...");
 
-	g_main_loop_unref (main_loop);
+	/* Shut down volume monitor */
+	g_signal_handlers_disconnect_by_func (volume_monitor,
+					      mount_pre_unmount_cb,
+					      thumber);
+	g_object_unref (volume_monitor);
+
 	g_object_unref (thumber);
 
+	g_main_loop_unref (main_loop);
+
 	g_message ("\nDone\n\n");
 
 	return 0;

Modified: projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/gst-thumb-thumber.c
===================================================================
--- projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/gst-thumb-thumber.c	2009-05-25 15:18:04 UTC (rev 18482)
+++ projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/gst-thumb-thumber.c	2009-05-25 15:46:04 UTC (rev 18483)
@@ -31,6 +31,7 @@
 #include "gst-thumb-thumber.h"
 
 #include <glib.h>
+#include <gio/gio.h>
 #include <gst/gst.h>
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <dbus/dbus-glib-bindings.h>
@@ -799,7 +800,7 @@
 	thumber = THUMBER (data);
 	priv = THUMBER_GET_PRIVATE (thumber);
 
-	if ((file = g_queue_pop_head (priv->file_queue)) != NULL) {
+	if ((file = g_queue_peek_head (priv->file_queue)) != NULL) {
 		
 		if (!thumber_pipe_run (priv->pipe,
 				       file->uri,
@@ -828,6 +829,7 @@
 				       file->uri);
 		}
 
+		file = g_queue_pop_head (priv->file_queue);
 		file_info_free (file);
 			
 	} else {

Modified: projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/gst-thumb-thumber.h
===================================================================
--- projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/gst-thumb-thumber.h	2009-05-25 15:18:04 UTC (rev 18482)
+++ projects/haf/trunk/hildon-thumbnail/thumbnailers/gst-video-thumbnailer/gst-thumb-thumber.h	2009-05-25 15:46:04 UTC (rev 18483)
@@ -27,6 +27,7 @@
 
 #include <glib-object.h>
 #include <glib.h>
+#include <gio/gio.h>
 
 #define TYPE_THUMBER         (thumber_get_type())
 #define THUMBER(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_THUMBER, Thumber))


More information about the maemo-commits mailing list