[Xfce4-commits] <tumbler:master> Added the DBus API parts for flavor support

Jannis Pohlmann noreply at xfce.org
Tue Oct 27 03:22:01 CET 2009


Updating branch refs/heads/master
         to 8258763e662bc2345051f230f2afc4b6da699726 (commit)
       from c4c67778eb43a51f73f2a299edb2b59bc559e06c (commit)

commit 8258763e662bc2345051f230f2afc4b6da699726
Author: Philip Van Hoof <philip at codeminded.be>
Date:   Mon Oct 26 18:17:00 2009 +0200

    Added the DBus API parts for flavor support
    
    Signed-off-by: Jannis Pohlmann <jannis at xfce.org>

 plugins/font-thumbnailer/font-thumbnailer.c     |    6 ++-
 plugins/pixbuf-thumbnailer/pixbuf-thumbnailer.c |    6 ++-
 tumbler/tumbler-abstract-thumbnailer.c          |   10 ++++--
 tumbler/tumbler-abstract-thumbnailer.h          |    3 +-
 tumbler/tumbler-thumbnailer.c                   |    6 ++-
 tumbler/tumbler-thumbnailer.h                   |    6 ++-
 tumblerd/tumbler-group-scheduler.c              |    3 +-
 tumblerd/tumbler-lifo-scheduler.c               |    3 +-
 tumblerd/tumbler-scheduler.c                    |    3 ++
 tumblerd/tumbler-scheduler.h                    |    2 +
 tumblerd/tumbler-service-dbus.xml               |    6 +++
 tumblerd/tumbler-service.c                      |   44 ++++++++++++++++++++++-
 tumblerd/tumbler-service.h                      |    3 ++
 tumblerd/tumbler-specialized-thumbnailer.c      |    6 ++-
 14 files changed, 90 insertions(+), 17 deletions(-)

diff --git a/plugins/font-thumbnailer/font-thumbnailer.c b/plugins/font-thumbnailer/font-thumbnailer.c
index 8908843..d8be2a1 100644
--- a/plugins/font-thumbnailer/font-thumbnailer.c
+++ b/plugins/font-thumbnailer/font-thumbnailer.c
@@ -44,7 +44,8 @@ static void font_thumbnailer_finalize (GObject                    *object);
 static void font_thumbnailer_create   (TumblerAbstractThumbnailer *thumbnailer,
                                        GCancellable               *cancellable,
                                        const gchar                *uri,
-                                       const gchar                *mime_hint);
+                                       const gchar                *mime_hint,
+                                       const gchar                *flavor);
 
 
 
@@ -437,7 +438,8 @@ static void
 font_thumbnailer_create (TumblerAbstractThumbnailer *thumbnailer,
                          GCancellable               *cancellable,
                          const gchar                *uri,
-                         const gchar                *mime_hint)
+                         const gchar                *mime_hint,
+                         const gchar                *flavor_)
 {
   TumblerThumbnailFlavor *flavors;
   TumblerThumbnailFlavor  flavor;
diff --git a/plugins/pixbuf-thumbnailer/pixbuf-thumbnailer.c b/plugins/pixbuf-thumbnailer/pixbuf-thumbnailer.c
index c4caf2d..5ffabf6 100644
--- a/plugins/pixbuf-thumbnailer/pixbuf-thumbnailer.c
+++ b/plugins/pixbuf-thumbnailer/pixbuf-thumbnailer.c
@@ -38,7 +38,8 @@
 static void pixbuf_thumbnailer_create (TumblerAbstractThumbnailer *thumbnailer,
                                        GCancellable               *cancellable,
                                        const gchar                *uri,
-                                       const gchar                *mime_hint);
+                                       const gchar                *mime_hint,
+                                       const gchar                *flavor);
 
 
 
@@ -143,7 +144,8 @@ static void
 pixbuf_thumbnailer_create (TumblerAbstractThumbnailer *thumbnailer,
                            GCancellable               *cancellable,
                            const gchar                *uri,
-                           const gchar                *mime_hint)
+                           const gchar                *mime_hint,
+                           const gchar                *flavor_)
 {
   TumblerThumbnailFlavor *flavors;
   TumblerThumbnailFlavor  flavor;
diff --git a/tumbler/tumbler-abstract-thumbnailer.c b/tumbler/tumbler-abstract-thumbnailer.c
index 535871f..3497393 100644
--- a/tumbler/tumbler-abstract-thumbnailer.c
+++ b/tumbler/tumbler-abstract-thumbnailer.c
@@ -59,7 +59,8 @@ static void tumbler_abstract_thumbnailer_set_property     (GObject
 static void tumbler_abstract_thumbnailer_create           (TumblerThumbnailer      *thumbnailer,
                                                            GCancellable            *cancellable,
                                                            const gchar             *uri,
-                                                           const gchar             *mime_hint);
+                                                           const gchar             *mime_hint,
+                                                           const gchar             *flavor);
 
 
 
@@ -236,13 +237,16 @@ static void
 tumbler_abstract_thumbnailer_create (TumblerThumbnailer *thumbnailer,
                                      GCancellable       *cancellable,
                                      const gchar        *uri,
-                                     const gchar        *mime_hint)
+                                     const gchar        *mime_hint,
+                                     const gchar        *flavor)
 {
   g_return_if_fail (TUMBLER_IS_ABSTRACT_THUMBNAILER (thumbnailer));
   g_return_if_fail (uri != NULL && *uri != '\0');
+  g_return_if_fail (flavor != NULL && *flavor != '\0');
   g_return_if_fail (TUMBLER_ABSTRACT_THUMBNAILER_GET_CLASS (thumbnailer)->create != NULL);
 
   TUMBLER_ABSTRACT_THUMBNAILER_GET_CLASS (thumbnailer)->create (TUMBLER_ABSTRACT_THUMBNAILER (thumbnailer),
                                                                 cancellable, uri, 
-                                                                mime_hint);
+                                                                mime_hint,
+                                                                flavor);
 }
diff --git a/tumbler/tumbler-abstract-thumbnailer.h b/tumbler/tumbler-abstract-thumbnailer.h
index 69438d0..d82a154 100644
--- a/tumbler/tumbler-abstract-thumbnailer.h
+++ b/tumbler/tumbler-abstract-thumbnailer.h
@@ -49,7 +49,8 @@ struct _TumblerAbstractThumbnailerClass
   void (*create) (TumblerAbstractThumbnailer *thumbnailer,
                   GCancellable               *cancellable,
                   const gchar                *uri,
-                  const gchar                *mime_hint);
+                  const gchar                *mime_hint,
+                  const gchar                *flavor);
 };
 
 struct _TumblerAbstractThumbnailer
diff --git a/tumbler/tumbler-thumbnailer.c b/tumbler/tumbler-thumbnailer.c
index 31dad95..980db15 100644
--- a/tumbler/tumbler-thumbnailer.c
+++ b/tumbler/tumbler-thumbnailer.c
@@ -139,7 +139,8 @@ void
 tumbler_thumbnailer_create (TumblerThumbnailer      *thumbnailer,
                             GCancellable            *cancellable,
                             const gchar             *uri,
-                            const gchar             *mime_hint)
+                            const gchar             *mime_hint,
+                            const gchar             *flavor)
 {
   g_return_if_fail (TUMBLER_IS_THUMBNAILER (thumbnailer));
   g_return_if_fail (uri != NULL);
@@ -149,7 +150,8 @@ tumbler_thumbnailer_create (TumblerThumbnailer      *thumbnailer,
   return (*TUMBLER_THUMBNAILER_GET_IFACE (thumbnailer)->create) (thumbnailer, 
                                                                  cancellable,
                                                                  uri, 
-                                                                 mime_hint);
+                                                                 mime_hint,
+                                                                 flavor);
 }
 
 
diff --git a/tumbler/tumbler-thumbnailer.h b/tumbler/tumbler-thumbnailer.h
index 5bcc1ef..89f780b 100644
--- a/tumbler/tumbler-thumbnailer.h
+++ b/tumbler/tumbler-thumbnailer.h
@@ -55,7 +55,8 @@ struct _TumblerThumbnailerIface
   void (*create) (TumblerThumbnailer *thumbnailer,
                   GCancellable       *cancellable,
                   const gchar        *uri,
-                  const gchar        *mime_hint);
+                  const gchar        *mime_hint,
+                  const gchar        *flavor);
 };
 
 GType                tumbler_thumbnailer_get_type        (void) G_GNUC_CONST;
@@ -63,7 +64,8 @@ GType                tumbler_thumbnailer_get_type        (void) G_GNUC_CONST;
 void                 tumbler_thumbnailer_create          (TumblerThumbnailer  *thumbnailer,
                                                           GCancellable        *cancellable,
                                                           const gchar         *uri,
-                                                          const gchar         *mime_hint);
+                                                          const gchar         *mime_hint,
+                                                          const gchar         *flavor);
 
 GStrv                tumbler_thumbnailer_get_hash_keys   (TumblerThumbnailer  *thumbnailer);
 GStrv                tumbler_thumbnailer_get_mime_types  (TumblerThumbnailer  *thumbnailer);
diff --git a/tumblerd/tumbler-group-scheduler.c b/tumblerd/tumbler-group-scheduler.c
index 94c5878..5e0b980 100644
--- a/tumblerd/tumbler-group-scheduler.c
+++ b/tumblerd/tumbler-group-scheduler.c
@@ -586,7 +586,8 @@ tumbler_group_scheduler_thread (gpointer data,
       tumbler_thumbnailer_create (request->thumbnailers[n], 
                                   request->cancellables[n],
                                   request->uris[n], 
-                                  request->mime_hints[n]);
+                                  request->mime_hints[n],
+                                  request->flavor);
 
       /* disconnect from all signals when we're finished */
       g_signal_handlers_disconnect_matched (request->thumbnailers[n],
diff --git a/tumblerd/tumbler-lifo-scheduler.c b/tumblerd/tumbler-lifo-scheduler.c
index c8e39cf..79d9dff 100644
--- a/tumblerd/tumbler-lifo-scheduler.c
+++ b/tumblerd/tumbler-lifo-scheduler.c
@@ -518,7 +518,8 @@ tumbler_lifo_scheduler_thread (gpointer data,
       tumbler_thumbnailer_create (request->thumbnailers[n], 
                                   request->cancellables[n],
                                   request->uris[n], 
-                                  request->mime_hints[n]);
+                                  request->mime_hints[n],
+                                  request->flavor);
 
       /* disconnect from all signals when we're finished */
       g_signal_handlers_disconnect_matched (request->thumbnailers[n],
diff --git a/tumblerd/tumbler-scheduler.c b/tumblerd/tumbler-scheduler.c
index 11fbdb1..a002c9b 100644
--- a/tumblerd/tumbler-scheduler.c
+++ b/tumblerd/tumbler-scheduler.c
@@ -259,6 +259,7 @@ tumbler_scheduler_request_new (const GStrv          uris,
                                const GStrv          mime_hints,
                                TumblerThumbnailer **thumbnailers,
                                gint                 length,
+                               const gchar         *flavor,
                                const gchar         *origin)
 {
   TumblerSchedulerRequest *request = NULL;
@@ -273,6 +274,7 @@ tumbler_scheduler_request_new (const GStrv          uris,
   if (origin)
     request->origin = g_strdup (origin);
   request->dequeued = FALSE;
+  request->flavor = g_strdup (flavor);
   request->scheduler = NULL;
   request->handle = handle++;
   request->uris = g_strdupv (uris);
@@ -310,6 +312,7 @@ tumbler_scheduler_request_free (TumblerSchedulerRequest *request)
 
   g_free (request->cancellables);
   g_free (request->origin);
+  g_free (request->flavor);
 
   g_free (request);
 }
diff --git a/tumblerd/tumbler-scheduler.h b/tumblerd/tumbler-scheduler.h
index bdfc1fa..fca90b4 100644
--- a/tumblerd/tumbler-scheduler.h
+++ b/tumblerd/tumbler-scheduler.h
@@ -81,6 +81,7 @@ TumblerSchedulerRequest *tumbler_scheduler_request_new           (const GStrv
                                                                   const GStrv              mime_hints,
                                                                   TumblerThumbnailer     **thumbnailers,
                                                                   gint                     length,
+                                                                  const gchar             *flavor,
                                                                   const gchar             *origin);
 void                     tumbler_scheduler_request_free          (TumblerSchedulerRequest *request);
 gint                     tumbler_scheduler_request_compare       (gconstpointer            a,
@@ -100,6 +101,7 @@ struct _TumblerSchedulerRequest
   gint                 length;
   GCancellable       **cancellables;
   gchar               *origin;
+  gchar               *flavor;
 };
 
 G_END_DECLS
diff --git a/tumblerd/tumbler-service-dbus.xml b/tumblerd/tumbler-service-dbus.xml
index 149b648..051bebd 100644
--- a/tumblerd/tumbler-service-dbus.xml
+++ b/tumblerd/tumbler-service-dbus.xml
@@ -5,6 +5,7 @@
       <annotation name="org.freedesktop.DBus.GLib.Async" value="true"/>
       <arg type="as" name="uris" direction="in" />
       <arg type="as" name="mime_types" direction="in" />
+      <arg type="s" name="flavor" direction="in" />
       <arg type="s" name="scheduler" direction="in" />
       <arg type="u" name="handle_to_unqueue" direction="in" />
       <arg type="u" name="handle" direction="out" />
@@ -26,6 +27,11 @@
       <arg type="as" name="schedulers" direction="out" />
     </method>
 
+    <method name="GetFlavors">
+      <annotation name="org.freedesktop.DBus.GLib.Async" value="true" />
+      <arg type="as" name="flavors" direction="out" />
+    </method>
+
     <signal name="Started">
       <arg type="u" name="handle" />
     </signal>
diff --git a/tumblerd/tumbler-service.c b/tumblerd/tumbler-service.c
index 55f6377..2eb1bdf 100644
--- a/tumblerd/tumbler-service.c
+++ b/tumblerd/tumbler-service.c
@@ -596,6 +596,7 @@ void
 tumbler_service_queue (TumblerService        *service,
                        const GStrv            uris,
                        const GStrv            mime_hints,
+                       const gchar           *flavor,
                        const gchar           *desired_scheduler,
                        guint                  handle_to_dequeue,
                        DBusGMethodInvocation *context)
@@ -628,7 +629,8 @@ tumbler_service_queue (TumblerService        *service,
 
   /* allocate a scheduler request */
   scheduler_request = tumbler_scheduler_request_new (uris, mime_hints, thumbnailers,
-                                                     num_thumbnailers, origin);
+                                                     num_thumbnailers, flavor, 
+                                                     origin);
 
   g_free (origin);
 
@@ -721,6 +723,46 @@ tumbler_service_get_supported (TumblerService        *service,
   dbus_g_method_return (context, uri_schemes, mime_types);
 }
 
+void 
+tumbler_service_get_flavors (TumblerService        *service,
+                              DBusGMethodInvocation *context)
+{
+  guint                   n;
+  TumblerThumbnailFlavor *flavors;
+  TumblerThumbnailFlavor  flavor;
+  GStrv                   flavors_strv;
+
+  flavors = tumbler_thumbnail_get_flavors ();
+
+  for (n = 0; flavors[n] != TUMBLER_THUMBNAIL_FLAVOR_INVALID; ++n);
+
+  flavors_strv = g_new0 (gchar *, n + 1);
+
+  for (n = 0; flavors[n] != TUMBLER_THUMBNAIL_FLAVOR_INVALID; ++n)
+    {
+      flavor = flavors[n];
+
+      switch (flavor)
+        {
+        case TUMBLER_THUMBNAIL_FLAVOR_NORMAL:
+          flavors_strv[n] = "normal";
+          break;
+        case TUMBLER_THUMBNAIL_FLAVOR_LARGE:
+          flavors_strv[n] = "large";
+          break;
+        case TUMBLER_THUMBNAIL_FLAVOR_CROPPED:
+          flavors_strv[n] = "cropped";
+          break;
+        default:
+          g_assert_not_reached ();
+          break;
+        }
+    }
+
+  dbus_g_method_return (context, flavors_strv);
+
+  g_free (flavors_strv);
+}
 
 
 void
diff --git a/tumblerd/tumbler-service.h b/tumblerd/tumbler-service.h
index 324047b..0ab0f92 100644
--- a/tumblerd/tumbler-service.h
+++ b/tumblerd/tumbler-service.h
@@ -46,6 +46,7 @@ gboolean        tumbler_service_start          (TumblerService        *service,
 void            tumbler_service_queue          (TumblerService        *service,
                                                 const GStrv            uris,
                                                 const GStrv            mime_hints,
+                                                const gchar           *flavor,
                                                 const gchar           *s_scheduler,
                                                 guint                  handle_to_dequeue,
                                                 DBusGMethodInvocation *context);
@@ -56,6 +57,8 @@ void            tumbler_service_get_schedulers (TumblerService        *service,
                                                 DBusGMethodInvocation *context);
 void            tumbler_service_get_supported  (TumblerService        *service,
                                                 DBusGMethodInvocation *context);
+void            tumbler_service_get_flavors    (TumblerService        *service,
+                                                DBusGMethodInvocation *context);
 
 G_END_DECLS;
 
diff --git a/tumblerd/tumbler-specialized-thumbnailer.c b/tumblerd/tumbler-specialized-thumbnailer.c
index 63ea663..86f4370 100644
--- a/tumblerd/tumbler-specialized-thumbnailer.c
+++ b/tumblerd/tumbler-specialized-thumbnailer.c
@@ -61,7 +61,8 @@ static void tumbler_specialized_thumbnailer_set_property    (GObject
 static void tumbler_specialized_thumbnailer_create          (TumblerThumbnailer            *thumbnailer,
                                                              GCancellable                  *cancellable,
                                                              const gchar                   *uri,
-                                                             const gchar                   *mime_hint);
+                                                             const gchar                   *mime_hint,
+                                                             const gchar                   *flavor);
 static void tumbler_specialized_thumbnailer_proxy_ready     (DBusGProxy                    *proxy,
                                                              const gchar                   *uri,
                                                              TumblerSpecializedThumbnailer *thumbnailer);
@@ -322,7 +323,8 @@ static void
 tumbler_specialized_thumbnailer_create (TumblerThumbnailer *thumbnailer,
                                         GCancellable       *cancellable,
                                         const gchar        *uri,
-                                        const gchar        *mime_hint)
+                                        const gchar        *mime_hint,
+                                        const gchar        *flavor)
 {
   /* TODO */
 }



More information about the Xfce4-commits mailing list