do not access image_loader directly
[geeqie.git] / src / image-load.h
1 /*
2  * Geeqie
3  * (C) 2004 John Ellis
4  * Copyright (C) 2008 The Geeqie Team
5  *
6  * Author: John Ellis
7  *
8  * This software is released under the GNU General Public License (GNU GPL).
9  * Please read the included file COPYING for more information.
10  * This software comes with no warranty of any kind, use at your own risk!
11  */
12
13
14 #ifndef IMAGE_LOAD_H
15 #define IMAGE_LOAD_H
16
17
18 ImageLoader *image_loader_new(FileData *fd);
19
20 void image_loader_free(ImageLoader *il);
21
22 void image_loader_set_area_ready_func(ImageLoader *il,
23                                       void (*func_area_ready)(ImageLoader *, guint, guint, guint, guint, gpointer),
24                                       gpointer data_area_ready);
25 void image_loader_set_error_func(ImageLoader *il,
26                                  void (*func_error)(ImageLoader *, gpointer),
27                                  gpointer data_error);
28 void image_loader_set_done_func(ImageLoader *il,
29                                 void (*func_done)(ImageLoader *, gpointer),
30                                 gpointer data_done);
31 void image_loader_set_percent_func(ImageLoader *il,
32                                    void (*func_percent)(ImageLoader *, gdouble, gpointer),
33                                    gpointer data_percent);
34
35 /* Speed up loading when you only need at most width x height size image,
36  * only the jpeg GdkPixbuf loader benefits from it - so there is no
37  * guarantee that the image will scale down to the requested size..
38  */
39 void image_loader_set_requested_size(ImageLoader *il, gint width, gint height);
40
41 void image_loader_set_buffer_size(ImageLoader *il, guint size);
42
43 /* this only has effect if used before image_loader_start()
44  * default is G_PRIORITY_DEFAULT_IDLE
45  */
46 void image_loader_set_priority(ImageLoader *il, gint priority);
47
48 gint image_loader_start(ImageLoader *il, void (*func_done)(ImageLoader *, gpointer), gpointer data_done);
49
50
51 GdkPixbuf *image_loader_get_pixbuf(ImageLoader *il);
52 gchar *image_loader_get_format(ImageLoader *il);
53 gdouble image_loader_get_percent(ImageLoader *il);
54 gint image_loader_get_is_done(ImageLoader *il);
55 FileData *image_loader_get_fd(ImageLoader *il);
56 gint image_loader_get_shrunk(ImageLoader *il);
57
58 gint image_load_dimensions(FileData *fd, gint *width, gint *height);
59
60 #endif