[Xfce4-commits] <tumbler:jannis/specialized> Added the DBus API parts for flavor support
Jannis Pohlmann
noreply at xfce.org
Tue Oct 27 18:48:01 CET 2009
Updating branch refs/heads/jannis/specialized
to c70bb63a12695f7d99717802bbb946669f8c4a7b (commit)
from 742e2df3e77ba9ada119ab8af90bb5d697c580b8 (commit)
commit c70bb63a12695f7d99717802bbb946669f8c4a7b
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 0395035..cad9667 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 c1a3b0a..b8c4e01 100644
--- a/tumblerd/tumbler-specialized-thumbnailer.c
+++ b/tumblerd/tumbler-specialized-thumbnailer.c
@@ -59,7 +59,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);
@@ -334,7 +335,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