20100212
[gdash.git] / src / colors.h
blob094103951b16a30c8d8ea077f2c3b76c6dc50b67
1 /*
2 * Copyright (c) 2007, 2008, 2009, Czirkos Zoltan <cirix@fw.hu>
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 #ifndef _GD_COLORS
17 #define _GD_COLORS
19 #include <glib.h>
21 typedef guint32 GdColor;
23 /* color internal:
24 XXRRGGBB;
25 XX is 0 for RGB,
26 1 for c64 colors (bb=index)
27 3 for c64dtv (bb=index)
28 2 for atari colors (bb=index)
31 typedef enum _color_type {
32 GD_COLOR_TYPE_RGB=0,
33 GD_COLOR_TYPE_C64=1,
34 GD_COLOR_TYPE_C64DTV=2,
35 GD_COLOR_TYPE_ATARI=3,
36 GD_COLOR_TYPE_UNKNOWN /* should be the last one */
37 } GdColorType;
39 const char ** gd_color_get_c64_palette_names();
40 const char ** gd_color_get_atari_palette_names();
41 const char ** gd_color_get_c64dtv_palette_names();
43 const char ** gd_color_get_palette_types_names();
45 /* i/o */
46 const char* gd_color_get_string(GdColor color);
47 const char* gd_color_get_visible_name(GdColor color);
49 unsigned int gd_color_get_r(GdColor color);
50 unsigned int gd_color_get_g(GdColor color);
51 unsigned int gd_color_get_b(GdColor color);
52 GdColor gd_color_get_rgb(GdColor color);
54 GdColor gd_color_get_from_string(const char *color);
55 GdColor gd_color_get_from_rgb(int r, int g, int b);
56 GdColor gd_color_get_from_hsv(double h, double s, double v);
58 GdColor gd_c64_color(int index);
59 GdColor gd_atari_color(int index);
60 GdColor gd_atari_color_huesat(int hue, int sat);
61 GdColor gd_c64dtv_color(int index);
62 GdColor gd_c64dtv_color_huesat(int hue, int sat);
64 gboolean gd_color_is_c64(GdColor color);
65 gboolean gd_color_is_atari(GdColor color);
66 gboolean gd_color_is_dtv(GdColor color);
67 gboolean gd_color_is_rgb(GdColor color);
68 gboolean gd_color_is_unknown(GdColor color);
70 int gd_color_get_c64_index(GdColor color);
71 int gd_color_get_c64_index_try(GdColor color);
73 GdColor gd_gdash_color(int c);
75 /* traditional c64 color indexes. */
76 #define GD_COLOR_INDEX_BLACK (0)
77 #define GD_COLOR_INDEX_WHITE (1)
78 #define GD_COLOR_INDEX_RED (2)
79 #define GD_COLOR_INDEX_PURPLE (4)
80 #define GD_COLOR_INDEX_CYAN (3)
81 #define GD_COLOR_INDEX_GREEN (5)
82 #define GD_COLOR_INDEX_BLUE (6)
83 #define GD_COLOR_INDEX_YELLOW (7)
84 #define GD_COLOR_INDEX_ORANGE (8)
85 #define GD_COLOR_INDEX_BROWN (9)
86 #define GD_COLOR_INDEX_LIGHTRED (10)
87 #define GD_COLOR_INDEX_GRAY1 (11)
88 #define GD_COLOR_INDEX_GRAY2 (12)
89 #define GD_COLOR_INDEX_LIGHTGREEN (13)
90 #define GD_COLOR_INDEX_LIGHTBLUE (14)
91 #define GD_COLOR_INDEX_GRAY3 (15)
93 #define GD_GDASH_BLACK (gd_gdash_color(GD_COLOR_INDEX_BLACK))
94 #define GD_GDASH_WHITE (gd_gdash_color(GD_COLOR_INDEX_WHITE))
95 #define GD_GDASH_RED (gd_gdash_color(GD_COLOR_INDEX_RED))
96 #define GD_GDASH_PURPLE (gd_gdash_color(GD_COLOR_INDEX_PURPLE))
97 #define GD_GDASH_CYAN (gd_gdash_color(GD_COLOR_INDEX_CYAN))
98 #define GD_GDASH_GREEN (gd_gdash_color(GD_COLOR_INDEX_GREEN))
99 #define GD_GDASH_BLUE (gd_gdash_color(GD_COLOR_INDEX_BLUE))
100 #define GD_GDASH_YELLOW (gd_gdash_color(GD_COLOR_INDEX_YELLOW))
101 #define GD_GDASH_ORANGE (gd_gdash_color(GD_COLOR_INDEX_ORANGE))
102 #define GD_GDASH_BROWN (gd_gdash_color(GD_COLOR_INDEX_BROWN))
103 #define GD_GDASH_LIGHTRED (gd_gdash_color(GD_COLOR_INDEX_LIGHTRED))
104 #define GD_GDASH_GRAY1 (gd_gdash_color(GD_COLOR_INDEX_GRAY1))
105 #define GD_GDASH_GRAY2 (gd_gdash_color(GD_COLOR_INDEX_GRAY2))
106 #define GD_GDASH_LIGHTGREEN (gd_gdash_color(GD_COLOR_INDEX_LIGHTGREEN))
107 #define GD_GDASH_LIGHTBLUE (gd_gdash_color(GD_COLOR_INDEX_LIGHTBLUE))
108 #define GD_GDASH_GRAY3 (gd_gdash_color(GD_COLOR_INDEX_GRAY3))
110 #define GD_GDASH_MIDDLEBLUE (gd_gdash_color(16))
112 #define GD_COLOR_INVALID (0xFFFFFFFF)
114 #endif