[maemo-commits] [maemo-commits] r15999 - projects/haf/branches/hildon-thumbnail/daemonize/daemon
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Wed Sep 3 19:32:09 EEST 2008
- Previous message: [maemo-commits] r15998 - projects/haf/branches/hildon-thumbnail/daemonize/tests
- Next message: [maemo-commits] r16000 - projects/haf/branches/hildon-thumbnail/daemonize/daemon
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: pvanhoof Date: 2008-09-03 19:32:07 +0300 (Wed, 03 Sep 2008) New Revision: 15999 Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.c projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.c projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.h projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.xml Log: Spec change Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.c =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.c 2008-09-03 15:33:51 UTC (rev 15998) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.c 2008-09-03 16:32:07 UTC (rev 15999) @@ -100,6 +100,21 @@ g_mutex_lock (priv->mutex); + mime_proxy = g_hash_table_lookup (priv->handlers, + mime_type); + + if (mime_proxy) { + GError *error = NULL; + g_set_error (&error, + DBUS_ERROR, + 0, + "MIME type already registered"); + dbus_g_method_return_error (context, error); + g_error_free (error); + g_mutex_unlock (priv->mutex); + return; + } + sender = dbus_g_method_get_sender (context); mime_proxy = dbus_g_proxy_new_for_name (priv->connection, sender, @@ -117,6 +132,8 @@ object); g_mutex_unlock (priv->mutex); + + dbus_g_method_return (context); } static void Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.c =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.c 2008-09-03 15:33:51 UTC (rev 15998) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.c 2008-09-03 16:32:07 UTC (rev 15999) @@ -97,7 +97,7 @@ get_some_file_infos (const gchar *uri, gchar **mime_type, gboolean *has_thumb, GError **error) { const gchar *content_type, *tp; - GFileInfo *info; + GFileInfo *info, *thumb_info = NULL; GFile *file; *mime_type = NULL; @@ -110,16 +110,29 @@ G_FILE_QUERY_INFO_NONE, NULL, error); + if (info) + thumb_info = g_object_ref (info); + +/* thumb_info = g_file_query_info (file, + G_FILE_ATTRIBUTE_THUMBNAIL_PATH, + G_FILE_QUERY_INFO_NONE, + NULL, NULL); +*/ if (info) { content_type = g_file_info_get_content_type (info); + *mime_type = content_type?g_strdup (content_type):g_strdup ("unknown/unknown"); + g_object_unref (info); + } + + if (thumb_info) { tp = g_file_info_get_attribute_byte_string (info, G_FILE_ATTRIBUTE_THUMBNAIL_PATH); *has_thumb = tp?g_file_test (tp, G_FILE_TEST_EXISTS):FALSE; - *mime_type = content_type?g_strdup (content_type):g_strdup ("unknown/unknown"); // g_print ("T: %s\n", tp); - g_object_unref (info); + g_object_unref (thumb_info); } + g_object_unref (file); } @@ -160,7 +173,7 @@ } void -thumbnailer_queue (Thumbnailer *object, GStrv urls, DBusGMethodInvocation *context) +thumbnailer_queue (Thumbnailer *object, GStrv urls, guint handle_to_unqueue, DBusGMethodInvocation *context) { ThumbnailerPrivate *priv = THUMBNAILER_GET_PRIVATE (object); WorkTask *task = g_slice_new (WorkTask); @@ -174,6 +187,7 @@ task->urls = g_strdupv (urls); g_mutex_lock (priv->mutex); + g_list_foreach (priv->tasks, (GFunc) mark_unqueued, (gpointer) handle_to_unqueue); priv->tasks = g_list_prepend (priv->tasks, task); g_thread_pool_push (priv->pool, task, NULL); g_mutex_unlock (priv->mutex); @@ -255,10 +269,9 @@ copy = g_list_next (copy); i++; } - cached_items[i] = NULL; - - g_signal_emit (task->object, signals[READY_SIGNAL], 0, + if (i > 0) + g_signal_emit (task->object, signals[READY_SIGNAL], 0, cached_items); g_list_free (thumb_items); @@ -271,6 +284,7 @@ while (g_hash_table_iter_next (&iter, &key, &value)) { + gchar *mime_type = g_strdup (key); GList *urlm = value, *copy = urlm; GStrv urlss; DBusGProxy *proxy; @@ -295,7 +309,7 @@ /* If we have a third party thumbnailer for this mime-type, we * proxy the call */ - proxy = manager_get_handler (priv->manager, key); + proxy = manager_get_handler (priv->manager, mime_type); if (proxy) { GError *error = NULL; @@ -343,6 +357,7 @@ } } + g_free (mime_type); g_strfreev (urlss); } Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.h =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.h 2008-09-03 15:33:51 UTC (rev 15998) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.h 2008-09-03 16:32:07 UTC (rev 15999) @@ -56,7 +56,7 @@ GType thumbnailer_get_type (void); -void thumbnailer_queue (Thumbnailer *object, GStrv urls, DBusGMethodInvocation *context); +void thumbnailer_queue (Thumbnailer *object, GStrv urls, guint handle_to_unqueue, DBusGMethodInvocation *context); void thumbnailer_unqueue (Thumbnailer *object, guint handle, DBusGMethodInvocation *context); void thumbnailer_move (Thumbnailer *object, GStrv from_urls, GStrv to_urls, DBusGMethodInvocation *context); void thumbnailer_copy (Thumbnailer *object, GStrv from_urls, GStrv to_urls, DBusGMethodInvocation *context); Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.xml =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.xml 2008-09-03 15:33:51 UTC (rev 15998) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.xml 2008-09-03 16:32:07 UTC (rev 15999) @@ -5,6 +5,7 @@ <method name="Queue"> <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> <arg type="as" name="uris" direction="in" /> + <arg type="u" name="handle_to_unqueue" direction="out" /> <arg type="u" name="handle" direction="out" /> </method>
- Previous message: [maemo-commits] r15998 - projects/haf/branches/hildon-thumbnail/daemonize/tests
- Next message: [maemo-commits] r16000 - projects/haf/branches/hildon-thumbnail/daemonize/daemon
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]