[maemo-commits] [maemo-commits] r16027 - in projects/haf/branches/hildon-thumbnail/daemonize: . daemon
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Sep 5 10:30:17 EEST 2008
- Previous message: [maemo-commits] r16026 - projects/haf/branches/hildon-thumbnail/daemonize/daemon
- Next message: [maemo-commits] r16028 - projects/haf/branches/hildon-thumbnail/daemonize/daemon
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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); }
- Previous message: [maemo-commits] r16026 - projects/haf/branches/hildon-thumbnail/daemonize/daemon
- Next message: [maemo-commits] r16028 - projects/haf/branches/hildon-thumbnail/daemonize/daemon
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]