X-Git-Url: https://git.wpitchoune.net/gitweb/?p=psensor-pkg-ubuntu.git;a=blobdiff_plain;f=src%2Flib%2Fcolor.c;h=8474c72cdfd591e1a2be053cd85f4a6e7fc2c7ae;hp=89a01a9f418e272fa1cd83f26fc6a4a369ce3e9e;hb=4c50d430bea4b8462b0ae7ab70baf3f538f87718;hpb=0470c31b8a4293914a6fd9b089503775706da084 diff --git a/src/lib/color.c b/src/lib/color.c index 89a01a9..8474c72 100644 --- a/src/lib/color.c +++ b/src/lib/color.c @@ -23,25 +23,20 @@ #include "color.h" -void color_set(struct color *color, - unsigned int red, - unsigned int green, - unsigned int blue) +void color_set(struct color *c, double r, double g, double b) { - color->red = red; - color->green = green; - color->blue = blue; - - color->f_red = ((double)color->red) / 65535; - color->f_green = ((double)color->green) / 65535; - color->f_blue = ((double)color->blue) / 65535; + c->red = r; + c->green = g; + c->blue = b; } -struct color *color_new(unsigned int red, unsigned int green, unsigned int blue) +struct color *color_new(double r, double g, double b) { - struct color *color = malloc(sizeof(struct color)); + struct color *color; + + color = malloc(sizeof(struct color)); - color_set(color, red, green, blue); + color_set(color, r, g, b); return color; } @@ -86,14 +81,19 @@ struct color *str_to_color(const char *str) tmp[4] = '\0'; blue = strtol(tmp, NULL, 16); - return color_new(red, green, blue); + return color_new(((double)red)/65535, + ((double)green)/65535, + ((double)blue)/65535); } char *color_to_str(const struct color *color) { char *str = malloc(1 + 12 + 1); - sprintf(str, "#%.4x%.4x%.4x", color->red, color->green, color->blue); + sprintf(str, "#%.4x%.4x%.4x", + (int)(65535 * color->red), + (int)(65535 * color->green), + (int)(65535 * color->blue)); return str; }