X-Git-Url: http://wpitchoune.net/gitweb/?p=psensor-pkg-debian.git;a=blobdiff_plain;f=src%2Flib%2Fcolor.c;h=6ec2ec6874fea11e066385ac0ee18ceccc799f50;hp=0c5e30c6fb9ad464888383706b36b5178afb9943;hb=bd7036af56a4b61b2b473dccbeac5e26f78b57da;hpb=f055e7507526592d3a74c652f5f053701614c9c0 diff --git a/src/lib/color.c b/src/lib/color.c index 0c5e30c..6ec2ec6 100644 --- a/src/lib/color.c +++ b/src/lib/color.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2012 jeanfi@gmail.com + * Copyright (C) 2010-2016 jeanfi@gmail.com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -23,24 +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; } @@ -65,7 +61,7 @@ int is_color(const char *str) return 1; } -struct color *string_to_color(const char *str) +struct color *str_to_color(const char *str) { char tmp[5]; unsigned int red, green, blue; @@ -85,14 +81,19 @@ struct color *string_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_string(struct color *color) +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; }