#ifndef IMAGE_LOAD_H
#define IMAGE_LOAD_H
+struct FileData;
+
#define TYPE_IMAGE_LOADER (image_loader_get_type())
-typedef void (*ImageLoaderBackendCbAreaPrepared)(gpointer loader, gpointer data);
-typedef void (*ImageLoaderBackendCbSize)(gpointer loader, gint width, gint height, gpointer data);
-typedef void (*ImageLoaderBackendCbAreaUpdated)(gpointer loader, guint x, guint y, guint w, guint h, gpointer data);
-
-typedef gpointer (*ImageLoaderBackendFuncLoaderNew)(ImageLoaderBackendCbAreaUpdated, ImageLoaderBackendCbSize, ImageLoaderBackendCbAreaPrepared, gpointer data);
-typedef void (*ImageLoaderBackendFuncSetSize)(gpointer loader, int width, int height);
-typedef gboolean (*ImageLoaderBackendFuncLoad)(gpointer loader, const guchar *buf, gsize count, GError **error); /* optional, load whole image at once */
-typedef gboolean (*ImageLoaderBackendFuncWrite)(gpointer loader, const guchar *buf, gsize count, GError **error);
-typedef GdkPixbuf* (*ImageLoaderBackendFuncGetPixbuf)(gpointer loader);
-typedef gboolean (*ImageLoaderBackendFuncClose)(gpointer loader, GError **error);
-typedef void (*ImageLoaderBackendFuncAbort)(gpointer loader);
-typedef void (*ImageLoaderBackendFuncFree)(gpointer loader);
-typedef gchar* (*ImageLoaderBackendFuncGetFormatName)(gpointer loader);
-typedef gchar** (*ImageLoaderBackendFuncGetFormatMimeTypes)(gpointer loader);
-typedef void (*ImageLoaderBackendFuncSetPageNum)(gpointer loader, gint page_num);
-typedef gint (*ImageLoaderBackendFuncGetPageTotal)(gpointer loader);
-
-typedef struct _ImageLoaderBackend ImageLoaderBackend;
-struct _ImageLoaderBackend
+using ImageLoaderBackendCbAreaPrepared = void (*)(gpointer, gpointer);
+using ImageLoaderBackendCbSize = void (*)(gpointer, gint, gint, gpointer);
+using ImageLoaderBackendCbAreaUpdated = void (*)(gpointer, guint, guint, guint, guint, gpointer);
+
+using ImageLoaderBackendFuncLoaderNew = gpointer (*)(ImageLoaderBackendCbAreaUpdated, ImageLoaderBackendCbSize, ImageLoaderBackendCbAreaPrepared, gpointer);
+using ImageLoaderBackendFuncSetSize = void (*)(gpointer, int, int);
+using ImageLoaderBackendFuncLoad = gboolean (*)(gpointer, const guchar *, gsize, GError **); /* optional, load whole image at once */
+using ImageLoaderBackendFuncWrite = gboolean (*)(gpointer, const guchar *, gsize, GError **);
+using ImageLoaderBackendFuncGetPixbuf = GdkPixbuf *(*)(gpointer);
+using ImageLoaderBackendFuncClose = gboolean (*)(gpointer, GError **);
+using ImageLoaderBackendFuncAbort = void (*)(gpointer);
+using ImageLoaderBackendFuncFree = void (*)(gpointer);
+using ImageLoaderBackendFuncGetFormatName = gchar *(*)(gpointer);
+using ImageLoaderBackendFuncGetFormatMimeTypes = gchar **(*)(gpointer);
+using ImageLoaderBackendFuncSetPageNum = void (*)(gpointer, gint);
+using ImageLoaderBackendFuncGetPageTotal = gint (*)(gpointer);
+
+struct ImageLoaderBackend
{
ImageLoaderBackendFuncLoaderNew loader_new;
ImageLoaderBackendFuncSetSize set_size;
ImageLoaderBackendFuncGetPageTotal get_page_total;
};
+enum ImageLoaderPreview {
+ IMAGE_LOADER_PREVIEW_NONE = 0,
+ IMAGE_LOADER_PREVIEW_EXIF = 1,
+ IMAGE_LOADER_PREVIEW_LIBRAW = 2
+};
-//typedef struct _ImageLoader ImageLoader;
-typedef struct _ImageLoaderClass ImageLoaderClass;
-struct _ImageLoader
+struct ImageLoader
{
GObject parent;
gsize bytes_read;
gsize bytes_total;
- gboolean preview;
+ ImageLoaderPreview preview;
gint requested_width;
gint requested_height;
guint idle_read_loop_count;
};
-struct _ImageLoaderClass {
+struct ImageLoaderClass {
GObjectClass parent;
/* class members */
void (*percent)(ImageLoader *, gdouble, gpointer);
};
-GType image_loader_get_type(void);
+GType image_loader_get_type();
ImageLoader *image_loader_new(FileData *fd);
void image_loader_free(ImageLoader *il);
/**
- * \headerfile image_loader_delay_area_ready
+ * @headerfile image_loader_delay_area_ready
* delay area_ready signals
*/
void image_loader_delay_area_ready(ImageLoader *il, gboolean enable);
/**
- * \headerfile image_loader_set_requested_size
+ * @headerfile image_loader_set_requested_size
* Speed up loading when you only need at most width x height size image,
* only the jpeg GdkPixbuf loader benefits from it - so there is no
* guarantee that the image will scale down to the requested size..
*/
void image_loader_set_requested_size(ImageLoader *il, gint width, gint height);
-void image_loader_set_buffer_size(ImageLoader *il, guint size);
+void image_loader_set_buffer_size(ImageLoader *il, guint count);
/**
- * \headerfile image_loader_set_priority
+ * @headerfile image_loader_set_priority
* this only has effect if used before image_loader_start()
* default is G_PRIORITY_DEFAULT_IDLE
*/