[maemo-commits] [maemo-commits] r15940 - in projects/haf/branches/hildon-thumbnail/daemonize: . daemon daemon/plugins
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Tue Sep 2 14:29:13 EEST 2008
- Previous message: [maemo-commits] r15939 - in projects/haf/trunk/sapwood: . src
- Next message: [maemo-commits] r15941 - in projects/haf/branches/hildon-thumbnail/daemonize: . daemon
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: pvanhoof Date: 2008-09-02 14:29:07 +0300 (Tue, 02 Sep 2008) New Revision: 15940 Added: projects/haf/branches/hildon-thumbnail/daemonize/daemon/dbus-utils.c projects/haf/branches/hildon-thumbnail/daemonize/daemon/dbus-utils.h projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.c projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.h projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.xml 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 Removed: projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.c projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.h projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.xml Modified: projects/haf/branches/hildon-thumbnail/daemonize/ChangeLog projects/haf/branches/hildon-thumbnail/daemonize/daemon/ projects/haf/branches/hildon-thumbnail/daemonize/daemon/Makefile.am projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-daemon.c projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugins/default.c projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugins/image-png.xml Log: 2008-09-02 Philip Van Hoof <philip at codeminded.be> daemon/hildon-thumbnail-daemon.c daemon/plugins/image-png.xml daemon/plugins/default.c daemon/dbus-utils.h daemon/thumbnailer.c daemon/manager.c daemon/generic.c daemon/thumbnailer.h daemon/manager.h daemon/generic.h daemon/manager.xml daemon/thumbnailer.xml daemon/Makefile.am daemon/generic.xml daemon/dbus-utils.c: Some major refactoring and setting up of initial infrastructure Modified: projects/haf/branches/hildon-thumbnail/daemonize/ChangeLog =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/ChangeLog 2008-09-02 11:29:03 UTC (rev 15939) +++ projects/haf/branches/hildon-thumbnail/daemonize/ChangeLog 2008-09-02 11:29:07 UTC (rev 15940) @@ -1,3 +1,22 @@ +2008-09-02 Philip Van Hoof <philip at codeminded.be> + + daemon/hildon-thumbnail-daemon.c + daemon/plugins/image-png.xml + daemon/plugins/default.c + daemon/dbus-utils.h + daemon/thumbnailer.c + daemon/manager.c + daemon/generic.c + daemon/thumbnailer.h + daemon/manager.h + daemon/generic.h + daemon/manager.xml + daemon/thumbnailer.xml + daemon/Makefile.am + daemon/generic.xml + daemon/dbus-utils.c: Some major refactoring and setting up of initial + infrastructure + 2008-09-01 Philip Van Hoof <philip at codeminded.be> daemon/hildon-thumbnail-daemon.c Property changes on: projects/haf/branches/hildon-thumbnail/daemonize/daemon ___________________________________________________________________ Name: svn:ignore - Makefile.in hildon-thumbnailerd .libs .deps org.freedesktop.thumbnailer.service Makefile generic-glue.h + Makefile.in hildon-thumbnailerd .libs .deps org.freedesktop.thumbnailer.service Makefile *-glue.h Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/Makefile.am =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/Makefile.am 2008-09-02 11:29:03 UTC (rev 15939) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/Makefile.am 2008-09-02 11:29:07 UTC (rev 15940) @@ -4,7 +4,7 @@ $(DBUS_CFLAGS) \ $(GLIB_CFLAGS) \ $(GMODULE_CFLAGS) \ - -DPLUGINS_DIR=\""$(libdir)/hildon-thumbnailer/plugins"\" + -DPLUGINS_DIR=\""$(libdir)/hildon-thumbnailer/plugins"\" libexec_PROGRAMS = hildon-thumbnailerd @@ -15,8 +15,12 @@ $(include_HEADERS) \ hildon-thumbnail-plugin.c \ hildon-thumbnail-daemon.c \ - generic.c \ - generic.h + thumbnailer.c \ + thumbnailer.h \ + manager.c \ + manager.h \ + dbus-utils.h \ + dbus-utils.c hildon_thumbnailerd_LDADD = \ $(DBUS_LIBS) \ @@ -33,9 +37,9 @@ %-glue.h: $(top_srcdir)/daemon/%.xml $(DBUSBINDINGTOOL) --mode=glib-server --output=$@ --prefix=$(subst -,_,$*) $^ -BUILT_SOURCES = generic-glue.h +BUILT_SOURCES = manager-glue.h thumbnailer-glue.h configdir = $(datadir)/hildon-thumbnail -config_DATA = generic.xml +config_DATA = manager.xml thumbnailer.xml EXTRA_DIST = $(BUILT_SOURCES) $(config_DATA) \ $(org.freedesktop.thumbnailer_service_DATA) Added: projects/haf/branches/hildon-thumbnail/daemonize/daemon/dbus-utils.c =================================================================== Added: projects/haf/branches/hildon-thumbnail/daemonize/daemon/dbus-utils.h =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/dbus-utils.h 2008-09-02 11:29:03 UTC (rev 15939) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/dbus-utils.h 2008-09-02 11:29:07 UTC (rev 15940) @@ -0,0 +1,25 @@ +#ifndef __DBUS_UTILS_H__ +#define __DBUS_UTILS_H__ + +#define DBUS_ERROR_DOMAIN "HildonThumbnailer" +#define DBUS_ERROR g_quark_from_static_string (DBUS_ERROR_DOMAIN) + +#define dbus_async_return_if_fail(expr,context) \ + G_STMT_START { \ + if G_LIKELY(expr) { } else { \ + GError *error = NULL; \ + \ + g_set_error (&error, \ + DBUS_ERROR, \ + 0, \ + _("Assertion `%s' failed"), \ + #expr); \ + \ + dbus_g_method_return_error (context, error); \ + g_clear_error (&error); \ + \ + return; \ + }; \ + } G_STMT_END + +#endif Deleted: projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.c =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.c 2008-09-02 11:29:03 UTC (rev 15939) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.c 2008-09-02 11:29:07 UTC (rev 15940) @@ -1,69 +0,0 @@ -#include <glib.h> -#include <dbus/dbus-glib-bindings.h> - -#include "generic.h" -#include "generic-glue.h" - -#define GENERIC_SERVICE "org.freedesktop.thumbnailer.generic" -#define GENERIC_PATH "/org/freedesktop/thumbnailer/generic" -#define GENERIC_INTERFACE "org.freedesktop.thumbnailer.generic" - -void -generic_create (Generic *object, GStrv urls, DBusGMethodInvocation *context) -{ -} - -void -generic_move (Generic *object, GStrv from_urls, GStrv to_urls, DBusGMethodInvocation *context) -{ -} - -void -generic_delete (Generic *object, GStrv urls, DBusGMethodInvocation *context) -{ -} - - -static void -generic_class_init (GenericClass *klass) -{ -} - -static void -generic_init (Generic *object) -{ -} - - -G_DEFINE_TYPE(Generic, generic, G_TYPE_OBJECT) - -void -generic_do_stop (void) -{ -} - - -void -generic_do_init (DBusGConnection *connection, GError **error) -{ - guint result; - DBusGProxy *proxy; - GObject *object; - - proxy = dbus_g_proxy_new_for_name (connection, - DBUS_SERVICE_DBUS, - DBUS_PATH_DBUS, - DBUS_INTERFACE_DBUS); - - org_freedesktop_DBus_request_name (proxy, GENERIC_SERVICE, - DBUS_NAME_FLAG_DO_NOT_QUEUE, - &result, error); - - object = g_object_new (generic_get_type (), NULL); - - dbus_g_object_type_install_info (G_OBJECT_TYPE (object), - &dbus_glib_generic_object_info); - - dbus_g_connection_register_g_object (connection, GENERIC_PATH, object); - -} Deleted: projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.h =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.h 2008-09-02 11:29:03 UTC (rev 15939) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.h 2008-09-02 11:29:07 UTC (rev 15940) @@ -1,22 +0,0 @@ -#ifndef __GENERIC_H__ -#define __GENERIC_H__ - -typedef struct Generic Generic; -typedef struct GenericClass GenericClass; - -struct Generic { - GObject parent; -}; - -struct GenericClass { - GObjectClass parent; -}; - -void generic_create (Generic *object, GStrv urls, DBusGMethodInvocation *context); -void generic_move (Generic *object, GStrv from_urls, GStrv to_urls, DBusGMethodInvocation *context); -void generic_delete (Generic *object, GStrv urls, DBusGMethodInvocation *context); - -void generic_do_stop (void); -void generic_do_init (DBusGConnection *connection, GError **error); - -#endif Deleted: projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.xml =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.xml 2008-09-02 11:29:03 UTC (rev 15939) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.xml 2008-09-02 11:29:07 UTC (rev 15940) @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<node name="/"> - <interface name="org.freedesktop.Thumbnailer.generic"> - <method name="Create"> - <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> - <arg type="as" name="uris" direction="in" /> - </method> - <method name="Move"> - <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> - <arg type="as" name="from_uris" direction="in" /> - <arg type="as" name="to_uris" direction="in" /> - </method> - <method name="Delete"> - <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> - <arg type="as" name="uris" direction="in" /> - </method> - </interface> -</node> 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-02 11:29:03 UTC (rev 15939) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/hildon-thumbnail-daemon.c 2008-09-02 11:29:07 UTC (rev 15940) @@ -27,7 +27,8 @@ #include "hildon-thumbnail-plugin.h" -#include "generic.h" +#include "thumbnailer.h" +#include "manager.h" int main (int argc, char **argv) @@ -49,12 +50,14 @@ else { GMainLoop *main_loop; GError *error = NULL; + Manager *manager; /* TODO: dynamically load plugins, and detect when new ones get * dropped, and removed ones get removed (and therefore must * shut down) */ - generic_do_init (connection, &error); + manager_do_init (connection, &manager, &error); + thumbnailer_do_init (connection, manager, &error); module = hildon_thumbnail_plugin_load ("default"); hildon_thumbnail_plugin_do_init (module, connection, &error); @@ -64,7 +67,8 @@ hildon_thumbnail_plugin_do_stop (module); - generic_do_stop (); + manager_do_stop (); + thumbnailer_do_stop (); g_main_loop_unref (main_loop); } Copied: projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.c (from rev 15936, projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.c) =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.c 2008-09-01 13:34:04 UTC (rev 15936) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.c 2008-09-02 11:29:07 UTC (rev 15940) @@ -0,0 +1,261 @@ +#include <string.h> +#include <glib.h> +#include <dbus/dbus-glib-bindings.h> + +#include "manager.h" +#include "manager-glue.h" + +#define MANAGER_SERVICE "org.freedesktop.thumbnailer.manager" +#define MANAGER_PATH "/org/freedesktop/thumbnailer/manager" +#define MANAGER_INTERFACE "org.freedesktop.thumbnailer.manager" + + +#define TYPE_MANAGER (manager_get_type()) +#define MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_MANAGER, Manager)) +#define MANAGER_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), TYPE_MANAGER, ManagerClass)) +#define MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_MANAGER, ManagerClass)) +#define MANAGER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_MANAGER, ManagerPrivate)) + +G_DEFINE_TYPE (Manager, manager, G_TYPE_OBJECT) + +#ifndef dbus_g_method_get_sender +gchar* dbus_g_method_get_sender (DBusGMethodInvocation *context); +#endif + +typedef struct { + DBusGProxy *proxy; + DBusGConnection *connection; + GHashTable *handlers; +} ManagerPrivate; + +enum { + PROP_0, + PROP_PROXY, + PROP_CONNECTION +}; + +GHashTable* +manager_get_handlers (Manager *object) +{ + ManagerPrivate *priv = MANAGER_GET_PRIVATE (object); + return g_hash_table_ref (priv->handlers); +} + +/* +static void +on_proxy_name_owner_changed (DBusGProxy *proxy, + const gchar *name_owner, + const gchar *name_lost, + const gchar *name_aquired, + Manager *object) +{ + ManagerPrivate *priv = MANAGER_GET_PRIVATE (object); + + if (name_lost && strlen (name_lost) > 0) + g_hash_table_remove (priv->handlers, name_lost); +} +*/ + +static gboolean +do_remove_or_not (gpointer key, gpointer value, gpointer user_data) +{ + if (user_data == value) + return TRUE; + return FALSE; +} + +static void +service_gone (DBusGProxy *proxy, + Manager *object) +{ + ManagerPrivate *priv = MANAGER_GET_PRIVATE (object); + + g_hash_table_foreach_remove (priv->handlers, + do_remove_or_not, + proxy); + +} + +void +manager_register (Manager *object, gchar *mime_type, DBusGMethodInvocation *context) +{ + ManagerPrivate *priv = MANAGER_GET_PRIVATE (object); + DBusGProxy *mime_proxy; + gchar *sender = dbus_g_method_get_sender (context); + + mime_proxy = dbus_g_proxy_new_for_name (priv->connection, sender, + MANAGER_PATH, + MANAGER_INTERFACE); + + g_hash_table_insert (priv->handlers, + mime_type, + mime_proxy); + + g_signal_connect (mime_proxy, "destroy", + G_CALLBACK (service_gone), + object); +/* + dbus_g_proxy_add_signal (mime_proxy, "NameOwnerChanged", + G_TYPE_STRING, G_TYPE_STRING, + G_TYPE_STRING, G_TYPE_INVALID); + + dbus_g_proxy_connect_signal (mime_proxy, "NameOwnerChanged", + G_CALLBACK (on_proxy_name_owner_changed), + object, + NULL); +*/ +} + +static void +manager_finalize (GObject *object) +{ + ManagerPrivate *priv = MANAGER_GET_PRIVATE (object); + + g_hash_table_unref (priv->handlers); + g_object_unref (priv->proxy); + g_object_unref (priv->connection); + + G_OBJECT_CLASS (manager_parent_class)->finalize (object); +} + +static void +manager_set_connection (Manager *object, DBusGConnection *connection) +{ + ManagerPrivate *priv = MANAGER_GET_PRIVATE (object); + if (priv->connection) + g_object_unref (priv->connection); + priv->connection = g_object_ref (connection); +} + +static void +manager_set_proxy (Manager *object, DBusGProxy *proxy) +{ + ManagerPrivate *priv = MANAGER_GET_PRIVATE (object); + + if (priv->proxy) + g_object_unref (priv->proxy); + priv->proxy = g_object_ref (proxy); +} + +static void +manager_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + switch (prop_id) { + case PROP_PROXY: + manager_set_proxy (MANAGER (object), + g_value_get_object (value)); + break; + case PROP_CONNECTION: + manager_set_connection (MANAGER (object), + g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + + +static void +manager_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + ManagerPrivate *priv; + + priv = MANAGER_GET_PRIVATE (object); + + switch (prop_id) { + case PROP_PROXY: + g_value_set_object (value, priv->proxy); + break; + case PROP_CONNECTION: + g_value_set_object (value, priv->connection); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +manager_class_init (ManagerClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = manager_finalize; + object_class->set_property = manager_set_property; + object_class->get_property = manager_get_property; + + g_object_class_install_property (object_class, + PROP_PROXY, + g_param_spec_object ("proxy", + "DBus proxy", + "DBus proxy", + DBUS_TYPE_G_PROXY, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT)); + + g_object_class_install_property (object_class, + PROP_CONNECTION, + g_param_spec_object ("connection", + "DBus connection", + "DBus connection", + DBUS_TYPE_G_CONNECTION, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT)); + + g_type_class_add_private (object_class, sizeof (ManagerPrivate)); +} + +static void +manager_init (Manager *object) +{ + ManagerPrivate *priv = MANAGER_GET_PRIVATE (object); + + priv->handlers = g_hash_table_new_full (g_str_hash, g_str_equal, + (GDestroyNotify) g_free, + (GDestroyNotify) g_object_unref); + +} + + + +void +manager_do_stop (void) +{ +} + + +void +manager_do_init (DBusGConnection *connection, Manager **manager, GError **error) +{ + guint result; + DBusGProxy *proxy; + GObject *object; + + proxy = dbus_g_proxy_new_for_name (connection, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + + org_freedesktop_DBus_request_name (proxy, MANAGER_SERVICE, + DBUS_NAME_FLAG_DO_NOT_QUEUE, + &result, error); + + object = g_object_new (TYPE_MANAGER, + "proxy", proxy, + "connection", connection, + NULL); + + dbus_g_object_type_install_info (G_OBJECT_TYPE (object), + &dbus_glib_manager_object_info); + + dbus_g_connection_register_g_object (connection, + MANAGER_PATH, + object); + + *manager = MANAGER (object); +} Copied: projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.h (from rev 15936, projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.h) =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.h 2008-09-01 13:34:04 UTC (rev 15936) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.h 2008-09-02 11:29:07 UTC (rev 15940) @@ -0,0 +1,22 @@ +#ifndef __MANAGER_H__ +#define __MANAGER_H__ + +typedef struct Manager Manager; +typedef struct ManagerClass ManagerClass; + +struct Manager { + GObject parent; +}; + +struct ManagerClass { + GObjectClass parent; +}; + +void manager_register (Manager *object, gchar *mime_type, DBusGMethodInvocation *context); + +GHashTable* manager_get_handlers (Manager *object); + +void manager_do_stop (void); +void manager_do_init (DBusGConnection *connection, Manager **manager, GError **error); + +#endif Added: projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.xml =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.xml 2008-09-02 11:29:03 UTC (rev 15939) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/manager.xml 2008-09-02 11:29:07 UTC (rev 15940) @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<node name="/"> + <interface name="org.freedesktop.thumbnailer.manager"> + <method name="Register"> + <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> + <arg type="s" name="mime_type" direction="in" /> + </method> + </interface> +</node> Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugins/default.c =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugins/default.c 2008-09-02 11:29:03 UTC (rev 15939) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugins/default.c 2008-09-02 11:29:07 UTC (rev 15940) @@ -6,6 +6,8 @@ #include "image-png-glue.h" #include "hildon-thumbnail-plugin.h" +G_DEFINE_TYPE (ImagePng, image_png, G_TYPE_OBJECT) + #define DEFAULT_PNG_SERVICE "org.freedesktop.thumbnailer.image-png" #define DEFAULT_PNG_PATH "/org/freedesktop/thumbnailer/image-png" #define DEFAULT_PNG_INTERFACE "org.freedesktop.thumbnailer.image-png" @@ -15,17 +17,6 @@ { } -void -image_png_move (ImagePng *object, GStrv from_urls, GStrv to_urls, DBusGMethodInvocation *context) -{ -} - -void -image_png_delete (ImagePng *object, GStrv urls, DBusGMethodInvocation *context) -{ -} - - static void image_png_class_init (ImagePngClass *klass) { @@ -37,8 +28,6 @@ } -G_DEFINE_TYPE(ImagePng, image_png, G_TYPE_OBJECT) - void hildon_thumbnail_plugin_stop (void) { @@ -63,7 +52,11 @@ object = g_object_new (image_png_get_type (), NULL); - dbus_g_object_type_install_info (G_OBJECT_TYPE (object), &dbus_glib_image_png_object_info); - dbus_g_connection_register_g_object (connection, DEFAULT_PNG_PATH, object); + dbus_g_object_type_install_info (G_OBJECT_TYPE (object), + &dbus_glib_image_png_object_info); + dbus_g_connection_register_g_object (connection, + DEFAULT_PNG_PATH, + object); + } Modified: projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugins/image-png.xml =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugins/image-png.xml 2008-09-02 11:29:03 UTC (rev 15939) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/plugins/image-png.xml 2008-09-02 11:29:07 UTC (rev 15940) @@ -1,18 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <node name="/"> - <interface name="org.freedesktop.Thumbnailer.image-png"> + <interface name="org.freedesktop.thumbnailer.image-png"> <method name="Create"> <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> <arg type="as" name="uris" direction="in" /> </method> - <method name="Move"> - <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> - <arg type="as" name="from_uris" direction="in" /> - <arg type="as" name="to_uris" direction="in" /> - </method> - <method name="Delete"> - <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> - <arg type="as" name="uris" direction="in" /> - </method> </interface> </node> Added: projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.c =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.c 2008-09-02 11:29:03 UTC (rev 15939) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.c 2008-09-02 11:29:07 UTC (rev 15940) @@ -0,0 +1,220 @@ +#include <glib.h> +#include <dbus/dbus-glib-bindings.h> + +#include "manager.h" +#include "thumbnailer.h" +#include "thumbnailer-glue.h" + +#define THUMBNAILER_SERVICE "org.freedesktop.thumbnailer" +#define THUMBNAILER_PATH "/org/freedesktop/thumbnailer" +#define THUMBNAILER_INTERFACE "org.freedesktop.thumbnailer" + + +#define TYPE_THUMBNAILER (thumbnailer_get_type()) +#define THUMBNAILER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_THUMBNAILER, Thumbnailer)) +#define THUMBNAILER_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), TYPE_THUMBNAILER, ThumbnailerClass)) +#define THUMBNAILER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_THUMBNAILER, ThumbnailerClass)) +#define THUMBNAILER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_THUMBNAILER, ThumbnailerPrivate)) + +G_DEFINE_TYPE (Thumbnailer, thumbnailer, G_TYPE_OBJECT) + +typedef struct { + DBusGProxy *proxy; + DBusGConnection *connection; + Manager *manager; +} ThumbnailerPrivate; + +enum { + PROP_0, + PROP_PROXY, + PROP_CONNECTION, + PROP_MANAGER +}; + + +void +thumbnailer_create (Thumbnailer *object, GStrv urls, DBusGMethodInvocation *context) +{ +} + +void +thumbnailer_move (Thumbnailer *object, GStrv from_urls, GStrv to_urls, DBusGMethodInvocation *context) +{ +} + +void +thumbnailer_delete (Thumbnailer *object, GStrv urls, DBusGMethodInvocation *context) +{ +} + +static void +thumbnailer_finalize (GObject *object) +{ + ThumbnailerPrivate *priv = THUMBNAILER_GET_PRIVATE (object); + + g_object_unref (priv->manager); + g_object_unref (priv->proxy); + g_object_unref (priv->connection); + + G_OBJECT_CLASS (thumbnailer_parent_class)->finalize (object); +} + +static void +thumbnailer_set_connection (Thumbnailer *object, DBusGConnection *connection) +{ + ThumbnailerPrivate *priv = THUMBNAILER_GET_PRIVATE (object); + if (priv->connection) + g_object_unref (priv->connection); + priv->connection = g_object_ref (connection); +} + +static void +thumbnailer_set_manager (Thumbnailer *object, Manager *manager) +{ + ThumbnailerPrivate *priv = THUMBNAILER_GET_PRIVATE (object); + if (priv->manager) + g_object_unref (priv->manager); + priv->manager = g_object_ref (manager); +} + +static void +thumbnailer_set_proxy (Thumbnailer *object, DBusGProxy *proxy) +{ + ThumbnailerPrivate *priv = THUMBNAILER_GET_PRIVATE (object); + + if (priv->proxy) + g_object_unref (priv->proxy); + priv->proxy = g_object_ref (proxy); +} + +static void +thumbnailer_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + switch (prop_id) { + case PROP_PROXY: + thumbnailer_set_proxy (THUMBNAILER (object), + g_value_get_object (value)); + break; + case PROP_CONNECTION: + thumbnailer_set_connection (THUMBNAILER (object), + g_value_get_object (value)); + break; + case PROP_MANAGER: + thumbnailer_set_manager (THUMBNAILER (object), + g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + + +static void +thumbnailer_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + ThumbnailerPrivate *priv; + + priv = THUMBNAILER_GET_PRIVATE (object); + + switch (prop_id) { + case PROP_PROXY: + g_value_set_object (value, priv->proxy); + break; + case PROP_CONNECTION: + g_value_set_object (value, priv->connection); + break; + case PROP_MANAGER: + g_value_set_object (value, priv->manager); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +thumbnailer_class_init (ThumbnailerClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = thumbnailer_finalize; + object_class->set_property = thumbnailer_set_property; + object_class->get_property = thumbnailer_get_property; + + g_object_class_install_property (object_class, + PROP_PROXY, + g_param_spec_object ("proxy", + "DBus proxy", + "DBus proxy", + DBUS_TYPE_G_PROXY, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT)); + + g_object_class_install_property (object_class, + PROP_CONNECTION, + g_param_spec_object ("connection", + "DBus connection", + "DBus connection", + DBUS_TYPE_G_CONNECTION, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT)); + + g_object_class_install_property (object_class, + PROP_MANAGER, + g_param_spec_object ("manager", + "Manager", + "Manager", + DBUS_TYPE_G_PROXY, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT)); + + g_type_class_add_private (object_class, sizeof (ThumbnailerPrivate)); +} + +static void +thumbnailer_init (Thumbnailer *object) +{ + +} + + + +void +thumbnailer_do_stop (void) +{ +} + + +void +thumbnailer_do_init (DBusGConnection *connection, Manager *manager, GError **error) +{ + guint result; + DBusGProxy *proxy; + GObject *object; + + proxy = dbus_g_proxy_new_for_name (connection, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS); + + org_freedesktop_DBus_request_name (proxy, THUMBNAILER_SERVICE, + DBUS_NAME_FLAG_DO_NOT_QUEUE, + &result, error); + + object = g_object_new (TYPE_THUMBNAILER, + "proxy", proxy, + "connection", connection, + "manager", manager, + NULL); + + dbus_g_object_type_install_info (G_OBJECT_TYPE (object), + &dbus_glib_thumbnailer_object_info); + + dbus_g_connection_register_g_object (connection, THUMBNAILER_PATH, object); + +} Added: projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.h =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.h 2008-09-02 11:29:03 UTC (rev 15939) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.h 2008-09-02 11:29:07 UTC (rev 15940) @@ -0,0 +1,24 @@ +#ifndef __THUMBNAILER_H__ +#define __THUMBNAILER_H__ + +#include "manager.h" + +typedef struct Thumbnailer Thumbnailer; +typedef struct ThumbnailerClass ThumbnailerClass; + +struct Thumbnailer { + GObject parent; +}; + +struct ThumbnailerClass { + GObjectClass parent; +}; + +void thumbnailer_create (Thumbnailer *object, GStrv urls, DBusGMethodInvocation *context); +void thumbnailer_move (Thumbnailer *object, GStrv from_urls, GStrv to_urls, DBusGMethodInvocation *context); +void thumbnailer_delete (Thumbnailer *object, GStrv urls, DBusGMethodInvocation *context); + +void thumbnailer_do_stop (void); +void thumbnailer_do_init (DBusGConnection *connection, Manager *manager, GError **error); + +#endif Copied: projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.xml (from rev 15936, projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.xml) =================================================================== --- projects/haf/branches/hildon-thumbnail/daemonize/daemon/generic.xml 2008-09-01 13:34:04 UTC (rev 15936) +++ projects/haf/branches/hildon-thumbnail/daemonize/daemon/thumbnailer.xml 2008-09-02 11:29:07 UTC (rev 15940) @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<node name="/"> + <interface name="org.freedesktop.thumbnailer"> + <method name="Create"> + <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> + <arg type="as" name="uris" direction="in" /> + </method> + <method name="Move"> + <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> + <arg type="as" name="from_uris" direction="in" /> + <arg type="as" name="to_uris" direction="in" /> + </method> + <method name="Delete"> + <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/> + <arg type="as" name="uris" direction="in" /> + </method> + </interface> +</node>
- Previous message: [maemo-commits] r15939 - in projects/haf/trunk/sapwood: . src
- Next message: [maemo-commits] r15941 - in projects/haf/branches/hildon-thumbnail/daemonize: . daemon
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]