X-Git-Url: https://git.wpitchoune.net/gitweb/?p=psensor.git;a=blobdiff_plain;f=src%2Flib%2Fcolor.c;h=6ec2ec6874fea11e066385ac0ee18ceccc799f50;hp=e7477013ac6814311ec9325d2bb8d719e4101b74;hb=c1e20f2631a1249720e9c75d753eacfcb0f6c7b9;hpb=609664bb77874990e10f8073e54bb7f1645c8d72 diff --git a/src/lib/color.c b/src/lib/color.c index e747701..6ec2ec6 100644 --- a/src/lib/color.c +++ b/src/lib/color.c @@ -1,22 +1,21 @@ /* - Copyright (C) 2010-2011 wpitchoune@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 published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA -*/ - + * 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 + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301 USA + */ #include #include #include @@ -24,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; } @@ -66,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; @@ -86,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; }