[maemo-commits] [maemo-commits] r16038 - projects/haf/branches/hildon-thumbnail/daemonize/daemon

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Sep 5 16:35:27 EEST 2008
Author: pvanhoof
Date: 2008-09-05 16:35:26 +0300 (Fri, 05 Sep 2008)
New Revision: 16038

Modified:
   projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.c
   projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugin-runner.c
Log:
Dynamic registery for plugin runner

Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.c
===================================================================
--- projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.c	2008-09-05 13:29:06 UTC (rev 16037)
+++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.c	2008-09-05 13:35:26 UTC (rev 16038)
@@ -242,6 +242,8 @@
 
 	g_mutex_lock (priv->mutex);
 
+	/* This only happens for not-activable ones */
+
 	g_hash_table_foreach_remove (priv->handlers, 
 				     do_remove_or_not,
 				     proxy);
@@ -249,6 +251,9 @@
 	g_mutex_unlock (priv->mutex);
 }
 
+/* This is a custom spec addition, for dynamic registration of thumbnailers.
+ * Consult manager.xml for more information about this custom spec addition. */
+
 void
 manager_register (Manager *object, gchar *mime_type, DBusGMethodInvocation *context)
 {
@@ -281,6 +286,8 @@
 
 	g_free (sender);
 
+	/* This is not necessary for activatable ones */
+
 	g_signal_connect (mime_proxy, "destroy",
 			  G_CALLBACK (service_gone),
 			  object);

Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugin-runner.c
===================================================================
--- projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugin-runner.c	2008-09-05 13:29:06 UTC (rev 16037)
+++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugin-runner.c	2008-09-05 13:35:26 UTC (rev 16038)
@@ -184,7 +184,7 @@
 }
 
 static void
-daemon_start (Daemon *object)
+daemon_start (Daemon *object, gboolean do_register)
 {
 	GError *error = NULL;
 	DaemonPrivate *priv = DAEMON_GET_PRIVATE (object);
@@ -200,21 +200,23 @@
 
 	hildon_thumbnail_plugin_do_init (module, &error);
 
-	supported = hildon_thumbnail_plugin_get_supported (module);
+	if (!error && do_register) {
+		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);
+		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++;
 			}
-			i++;
 		}
 	}
 
@@ -243,8 +245,8 @@
 	if (!g_thread_supported ())
 		g_thread_init (NULL);
 
-	if (argc != 2) {
-		g_print ("Usage: %s MODULE\n", argv[0]);
+	if (argc < 2) {
+		g_print ("Usage: %s MODULE [yes|no]\n - yes/no is for 'do a dynamic register'", argv[0]);
 		return 0;
 	}
 
@@ -266,7 +268,7 @@
 			       "module", module,
 			       NULL);
 
-	daemon_start (DAEMON (object));
+	daemon_start (DAEMON (object), argc > 2);
 
 	dbus_g_object_type_install_info (G_OBJECT_TYPE (object), 
 					 &dbus_glib_plugin_runner_object_info);


More information about the maemo-commits mailing list