image post-processing (rotation and color management) moved to
[geeqie.git] / src / color-man.h
1 /*
2  * Geeqie
3  * (C) 2006 John Ellis
4  *
5  * Author: John Ellis
6  *
7  * This software is released under the GNU General Public License (GNU GPL).
8  * Please read the included file COPYING for more information.
9  * This software comes with no warranty of any kind, use at your own risk!
10  */
11
12
13 #ifndef COLOR_MAN_H
14 #define COLOR_MAN_H
15
16 typedef enum {
17         COLOR_PROFILE_NONE = 0,
18         COLOR_PROFILE_FILE,
19         COLOR_PROFILE_SRGB,
20         COLOR_PROFILE_MEM
21 } ColorManProfileType;
22
23 typedef enum {
24         COLOR_RETURN_SUCCESS = 0,
25         COLOR_RETURN_ERROR,
26         COLOR_RETURN_IMAGE_CHANGED
27 } ColorManReturnType;
28
29 typedef struct _ColorMan ColorMan;
30 typedef void (* ColorManDoneFunc)(ColorMan *cm, ColorManReturnType success, gpointer data);
31
32
33 struct _ColorMan {
34         ImageWindow *imd;
35         GdkPixbuf *pixbuf;
36         gint incremental_sync;
37         gint row;
38
39         gpointer profile;
40
41         gint idle_id;
42
43         ColorManDoneFunc func_done;
44         gpointer func_done_data;
45 };
46
47
48 ColorMan *color_man_new(ImageWindow *imd, GdkPixbuf *pixbuf,
49                         ColorManProfileType input_type, const gchar *input_file,
50                         ColorManProfileType screen_type, const gchar *screen_file);
51 ColorMan *color_man_new_embedded(ImageWindow *imd, GdkPixbuf *pixbuf,
52                                  unsigned char *input_data, guint input_data_len,
53                                  ColorManProfileType screen_type, const gchar *screen_file);
54 void color_man_free(ColorMan *cm);
55
56 void color_man_update(void);
57
58 void color_man_correct_region(ColorMan *cm, GdkPixbuf *pixbuf, gint x, gint y, gint w, gint h);
59
60 void color_man_start_bg(ColorMan *cm, ColorManDoneFunc don_func, gpointer done_data);
61
62 #endif
63