X-Git-Url: https://git.wpitchoune.net/gitweb/?p=psensor.git;a=blobdiff_plain;f=src%2Flib%2Fcolor.c;h=6ec2ec6874fea11e066385ac0ee18ceccc799f50;hp=54a5ef66ed658c5f034df563eeaa03aab5263ea8;hb=c1e20f2631a1249720e9c75d753eacfcb0f6c7b9;hpb=7bb2223ce108e56525eddc6e01627c0fd2ecc3df diff --git a/src/lib/color.c b/src/lib/color.c index 54a5ef6..6ec2ec6 100644 --- a/src/lib/color.c +++ b/src/lib/color.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2014 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,33 +23,20 @@ #include "color.h" -void color_set(struct color *c, unsigned int r, unsigned int g, unsigned int b) +void color_set(struct color *c, double r, double g, double b) { c->red = r; c->green = g; c->blue = b; - - c->f_red = ((double)r) / 65535; - c->f_green = ((double)g) / 65535; - c->f_blue = ((double)b) / 65535; } -void color_set_f(struct color *c, double r, double g, double b) +struct color *color_new(double r, double g, double b) { - c->f_red = r; - c->f_green = g; - c->f_blue = b; - - c->red = 65535 * r; - c->green = 65535 * g; - c->blue = 65535 * b; -} + struct color *color; -struct color *color_new(unsigned int red, unsigned int green, unsigned int blue) -{ - struct color *color = malloc(sizeof(struct color)); + color = malloc(sizeof(struct color)); - color_set(color, red, green, blue); + color_set(color, r, g, b); return color; } @@ -94,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; }