Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
[geeqie.git] / src / color-man.h
1 /*
2  * GQview
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 row;
37
38         gpointer profile;
39
40         gint idle_id;
41
42         ColorManDoneFunc func_done;
43         gpointer func_done_data;
44 };
45
46
47 ColorMan *color_man_new(ImageWindow *imd,
48                         ColorManProfileType input_type, const gchar *input_file,
49                         ColorManProfileType screen_type, const gchar *screen_file,
50                         ColorManDoneFunc done_func, gpointer done_data);
51 ColorMan *color_man_new_embedded(ImageWindow *imd,
52                                  unsigned char *input_data, guint input_data_len,
53                                  ColorManProfileType screen_type, const gchar *screen_file,
54                                  ColorManDoneFunc done_func, gpointer done_data);
55 void color_man_free(ColorMan *cm);
56
57 void color_man_update(void);
58
59
60 #endif
61