[maemo-commits] [maemo-commits] r16027 - in projects/haf/branches/hildon-thumbnail/daemonize: . daemon

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Sep 5 10:30:17 EEST 2008
Author: pvanhoof
Date: 2008-09-05 10:30:13 +0300 (Fri, 05 Sep 2008)
New Revision: 16027

Modified:
   projects/haf/branches/hildon-thumbnail/daemonize/ChangeLog
   projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-daemon.c
   projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-plugin.c
   projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-plugin.h
   projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugin-runner.c
Log:
2008-09-05  Philip Van Hoof  <philip at codeminded.be>

        * daemon/hildon-thumbnail-daemon.c
        * daemon/hildon-thumbnail-plugin.h
        * daemon/plugin-runner.c
        * daemon/hildon-thumbnail-plugin.c: Removed dependency on
        thumbnailer.h in hildon-thumbnail-plugin.h



Modified: projects/haf/branches/hildon-thumbnail/daemonize/ChangeLog
===================================================================
--- projects/haf/branches/hildon-thumbnail/daemonize/ChangeLog	2008-09-04 17:36:18 UTC (rev 16026)
+++ projects/haf/branches/hildon-thumbnail/daemonize/ChangeLog	2008-09-05 07:30:13 UTC (rev 16027)
@@ -1,3 +1,11 @@
+2008-09-05  Philip Van Hoof  <philip at codeminded.be>
+
+	* daemon/hildon-thumbnail-daemon.c
+	* daemon/hildon-thumbnail-plugin.h
+	* daemon/plugin-runner.c
+	* daemon/hildon-thumbnail-plugin.c: Removed dependency on
+	thumbnailer.h in hildon-thumbnail-plugin.h
+
 2008-09-04  Philip Van Hoof  <philip at codeminded.be>
 
 	* daemon/plugin-runner.c

Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-daemon.c
===================================================================
--- projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-daemon.c	2008-09-04 17:36:18 UTC (rev 16026)
+++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-daemon.c	2008-09-05 07:30:13 UTC (rev 16027)
@@ -53,6 +53,8 @@
 		Manager *manager;
 		Thumbnailer *thumbnailer;
 		DBusGProxy *manager_proxy;
+		GStrv supported;
+		guint i = 0;
 
 		/* TODO: dynamically load plugins, and detect when new ones get
 		 * dropped, and removed ones get removed (and therefore must
@@ -69,13 +71,23 @@
 					   MANAGER_INTERFACE);
 
 		hildon_thumbnail_plugin_do_init (module, 
-						 thumbnailer,
 						 &error);
 
+		supported = hildon_thumbnail_plugin_get_supported (module);
+		if (supported) {
+			while (supported[i] != NULL) {
+				thumbnailer_register_plugin (thumbnailer, 
+							     supported[i], 
+							     module);
+				i++;
+			}
+		}
+
 		main_loop = g_main_loop_new (NULL, FALSE);
 		g_main_loop_run (main_loop);
 
-		hildon_thumbnail_plugin_do_stop (module, thumbnailer);
+		thumbnailer_unregister_plugin (thumbnailer, module);
+		hildon_thumbnail_plugin_do_stop (module);
 
 		manager_do_stop ();
 		thumbnailer_do_stop ();

Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-plugin.c
===================================================================
--- projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-plugin.c	2008-09-04 17:36:18 UTC (rev 16026)
+++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-plugin.c	2008-09-05 07:30:13 UTC (rev 16027)
@@ -52,35 +52,30 @@
 	return module;
 }
 
-typedef void (*InitFunc) (GError **error);
 typedef GStrv (*SupportedFunc) (void);
 
-void
-hildon_thumbnail_plugin_do_init (GModule *module, Thumbnailer *thumbnailer, GError **error)
+GStrv
+hildon_thumbnail_plugin_get_supported (GModule *module) 
 {
-	InitFunc func;
+	GStrv supported = NULL;
+	SupportedFunc supported_func;
 
-	if (g_module_symbol (module, "hildon_thumbnail_plugin_init", (gpointer *) &func)) {
-		GStrv supported = NULL;
-		SupportedFunc supported_func;
+	if (g_module_symbol (module, "hildon_thumbnail_plugin_supported", (gpointer *) &supported_func)) {
+		supported = (supported_func) ();
+	}
 
-		if (g_module_symbol (module, "hildon_thumbnail_plugin_supported", (gpointer *) &supported_func)) {
-			guint i = 0;
+	return supported;
+}
 
-			supported = (supported_func) ();
+typedef void (*InitFunc) (GError **error);
 
-			if (supported) {
-				while (supported[i] != NULL) {
+void
+hildon_thumbnail_plugin_do_init (GModule *module, GError **error)
+{
+	InitFunc func;
 
-					thumbnailer_register_plugin (thumbnailer, 
-								     supported[i], 
-								     module);
-					i++;
-				}
-			}
-
-			(func) (error);
-		}
+	if (g_module_symbol (module, "hildon_thumbnail_plugin_init", (gpointer *) &func)) {
+		(func) (error);
 	}
 }
 
@@ -98,12 +93,11 @@
 typedef void (*StopFunc) (void);
 
 void
-hildon_thumbnail_plugin_do_stop (GModule *module, Thumbnailer *thumbnailer)
+hildon_thumbnail_plugin_do_stop (GModule *module)
 {
 	StopFunc func;
 
 	if (g_module_symbol (module, "hildon_thumbnail_plugin_stop", (gpointer *) &func)) {
-		thumbnailer_unregister_plugin (thumbnailer, module);
 		(func) ();
 	}
 }

Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-plugin.h
===================================================================
--- projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-plugin.h	2008-09-04 17:36:18 UTC (rev 16026)
+++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-plugin.h	2008-09-05 07:30:13 UTC (rev 16027)
@@ -29,21 +29,17 @@
 #include <gmodule.h>
 #include <dbus/dbus-glib-bindings.h>
 
-#include "thumbnailer.h"
-
 G_BEGIN_DECLS
 
-GModule * hildon_thumbnail_plugin_load      (const gchar *module_name);
+GModule *   hildon_thumbnail_plugin_load          (const gchar *module_name);
+GStrv       hildon_thumbnail_plugin_get_supported (GModule *module);
+void        hildon_thumbnail_plugin_do_init       (GModule *module, 
+						   GError **error);
+void        hildon_thumbnail_plugin_do_create     (GModule *module, 
+						   GStrv uris, 
+						   GError **error);
+void        hildon_thumbnail_plugin_do_stop       (GModule *module);
 
-void      hildon_thumbnail_plugin_do_init   (GModule *module, 
-					     Thumbnailer *thumbnailer, 
-					     GError **error);
-void      hildon_thumbnail_plugin_do_create (GModule *module, 
-					     GStrv uris, 
-					     GError **error);
-void      hildon_thumbnail_plugin_do_stop   (GModule *module,
-					     Thumbnailer *thumbnailer);
-
 G_END_DECLS
 
 #endif

Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugin-runner.c
===================================================================
--- projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugin-runner.c	2008-09-04 17:36:18 UTC (rev 16026)
+++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugin-runner.c	2008-09-05 07:30:13 UTC (rev 16027)
@@ -183,59 +183,47 @@
 {
 }
 
-// these two are a little hack that will be fixed when that silly manager thing
-// is better specified
-
-typedef struct {
-	Thumbnailer parent;
-	DBusGProxy *manager_proxy;
-} SomeInfo;
-
-void 
-thumbnailer_register_plugin (Thumbnailer *object, const gchar *mime_type, GModule *plugin)
-{
-	GError *error = NULL;
-	SomeInfo *info = (SomeInfo *) object;
-	DBusGProxy *manager_proxy = info->manager_proxy;
-
-	dbus_g_proxy_call (manager_proxy, "Register",
-			   &error, G_TYPE_STRING,
-			   mime_type,
-			   G_TYPE_INVALID,
-			   G_TYPE_INVALID);
-
-	if (error) {
-		g_critical ("Failed to init: %s\n", error->message);
-		g_error_free (error);
-	}
-}
-
-void 
-thumbnailer_unregister_plugin (Thumbnailer *object, GModule *plugin)
-{
-}
-
 static void
 daemon_start (Daemon *object)
 {
 	GError *error = NULL;
 	DaemonPrivate *priv = DAEMON_GET_PRIVATE (object);
-	SomeInfo *info = g_slice_new (SomeInfo);
+	GModule *module;
+	DBusGProxy *manager_proxy;
+	guint i = 0;
+	GStrv supported;
 
-	info->manager_proxy = dbus_g_proxy_new_for_name (priv->connection, 
+	manager_proxy = dbus_g_proxy_new_for_name (priv->connection, 
 							  MANAGER_SERVICE,
 							  MANAGER_PATH,
 					   		  MANAGER_INTERFACE);
 
-	hildon_thumbnail_plugin_do_init (priv->module, (Thumbnailer *) info, &error);
+	hildon_thumbnail_plugin_do_init (priv->module, &error);
 
+	supported = hildon_thumbnail_plugin_get_supported (module);
+
+	if (supported) {
+		while (supported[i] != NULL) {
+			GError *nerror = NULL;
+			dbus_g_proxy_call (manager_proxy, "Register",
+					   &nerror, G_TYPE_STRING,
+					   supported[i],
+					   G_TYPE_INVALID,
+					   G_TYPE_INVALID);
+			if (nerror) {
+				g_critical ("Failed to init: %s\n", nerror->message);
+				g_error_free (nerror);
+			}
+			i++;
+		}
+	}
+
 	if (error) {
 		g_critical ("Failed to init: %s\n", error->message);
 		g_error_free (error);
 	}
 
-	g_object_unref (info->manager_proxy);
-	g_slice_free (SomeInfo, info);
+	g_object_unref (manager_proxy);
 }
 
 


More information about the maemo-commits mailing list