/*
- * Geeqie
- * (C) 2004 John Ellis
- * Copyright (C) 2008 - 2012 The Geeqie Team
+ * Copyright (C) 2004 John Ellis
+ * Copyright (C) 2008 - 2016 The Geeqie Team
*
* Author: John Ellis
*
- * This software is released under the GNU General Public License (GNU GPL).
- * Please read the included file COPYING for more information.
- * This software comes with no warranty of any kind, use at your own risk!
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-
#ifndef IMAGE_LOAD_H
#define IMAGE_LOAD_H
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
ImageLoaderBackendFuncFree free;
ImageLoaderBackendFuncGetFormatName get_format_name;
ImageLoaderBackendFuncGetFormatMimeTypes get_format_mime_types;
+ ImageLoaderBackendFuncSetPageNum set_page_num;
+ ImageLoaderBackendFuncGetPageTotal get_page_total;
};
+typedef enum {
+ IMAGE_LOADER_PREVIEW_NONE = 0,
+ IMAGE_LOADER_PREVIEW_EXIF = 1,
+ IMAGE_LOADER_PREVIEW_LIBRAW = 2
+} ImageLoaderPreview;
+
//typedef struct _ImageLoader ImageLoader;
typedef struct _ImageLoaderClass ImageLoaderClass;
struct _ImageLoader
{
GObject parent;
-
+
/*< private >*/
GdkPixbuf *pixbuf;
FileData *fd;
gsize bytes_read;
gsize bytes_total;
- gboolean preview;
+ ImageLoaderPreview preview;
gint requested_width;
gint requested_height;
gboolean shrunk;
gboolean done;
- guint idle_id; /* event source id */
+ guint idle_id; /**< event source id */
gint idle_priority;
gpointer *loader;
GError *error;
ImageLoaderBackend backend;
- guint idle_done_id; /* event source id */
+ guint idle_done_id; /**< event source id */
GList *area_param_list;
GList *area_param_delayed_list;
-
+
gboolean delay_area_ready;
-
+
GMutex *data_mutex;
gboolean stopping;
gboolean can_destroy;
struct _ImageLoaderClass {
GObjectClass parent;
-
+
/* class members */
void (*area_ready)(ImageLoader *, guint x, guint y, guint w, guint h, gpointer);
void (*error)(ImageLoader *, gpointer);
void image_loader_free(ImageLoader *il);
-/* delay area_ready signals */
+/**
+ * @headerfile image_loader_delay_area_ready
+ * delay area_ready signals
+ */
void image_loader_delay_area_ready(ImageLoader *il, gboolean enable);
-/* Speed up loading when you only need at most width x height size image,
+/**
+ * @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_buffer_size(ImageLoader *il, guint size);
-/* this only has effect if used before image_loader_start()
+/**
+ * @headerfile image_loader_set_priority
+ * this only has effect if used before image_loader_start()
* default is G_PRIORITY_DEFAULT_IDLE
*/
void image_loader_set_priority(ImageLoader *il, gint priority);
GdkPixbuf *image_loader_get_pixbuf(ImageLoader *il);
-gchar *image_loader_get_format(ImageLoader *il);
gdouble image_loader_get_percent(ImageLoader *il);
gboolean image_loader_get_is_done(ImageLoader *il);
FileData *image_loader_get_fd(ImageLoader *il);