aboutsummaryrefslogtreecommitdiff
path: root/fastiv-io.h
diff options
context:
space:
mode:
Diffstat (limited to 'fastiv-io.h')
-rw-r--r--fastiv-io.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/fastiv-io.h b/fastiv-io.h
index 5a90e91..101db6c 100644
--- a/fastiv-io.h
+++ b/fastiv-io.h
@@ -19,12 +19,39 @@
#include <cairo.h>
#include <glib.h>
+#include <gio/gio.h>
extern const char *fastiv_io_supported_media_types[];
char **fastiv_io_all_supported_media_types(void);
+// And this is how you avoid glib-mkenums.
+typedef enum _FastivIoThumbnailSize {
+#define FASTIV_IO_THUMBNAIL_SIZES(XX) \
+ XX(SMALL, 128, "normal") \
+ XX(NORMAL, 256, "large") \
+ XX(LARGE, 512, "x-large") \
+ XX(HUGE, 1024, "xx-large")
+#define XX(name, value, dir) FASTIV_IO_THUMBNAIL_SIZE_ ## name = value,
+ FASTIV_IO_THUMBNAIL_SIZES(XX)
+#undef XX
+ FASTIV_IO_THUMBNAIL_SIZE_MIN = FASTIV_IO_THUMBNAIL_SIZE_SMALL,
+ FASTIV_IO_THUMBNAIL_SIZE_MAX = FASTIV_IO_THUMBNAIL_SIZE_HUGE
+} FastivIoThumbnailSize;
+
+GType fastiv_io_thumbnail_size_get_type(void) G_GNUC_CONST;
+#define FASTIV_TYPE_IO_THUMBNAIL_SIZE (fastiv_io_thumbnail_size_get_type())
+
+typedef struct _FastivIoThumbnailSizeInfo {
+ FastivIoThumbnailSize size; ///< Nominal size in pixels
+ const char *directory_name; ///< thumbnail-spec directory name
+} FastivIoThumbnailSizeInfo;
+
+// The array is null-terminated.
+extern FastivIoThumbnailSizeInfo fastiv_io_thumbnail_sizes[];
+
cairo_surface_t *fastiv_io_open(const gchar *path, GError **error);
cairo_surface_t *fastiv_io_open_from_data(
const char *data, size_t len, const gchar *path, GError **error);
-cairo_surface_t *fastiv_io_lookup_thumbnail(const gchar *target);
+cairo_surface_t *fastiv_io_lookup_thumbnail(
+ const gchar *target, FastivIoThumbnailSize size);