src/common.[ch]: Implement "fade_color".
authorFlorian Forster <ff@octo.it>
Fri, 2 Jul 2010 18:27:17 +0000 (20:27 +0200)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Fri, 2 Jul 2010 18:27:17 +0000 (20:27 +0200)
src/common.c
src/common.h

index d6047c4..0df85eb 100644 (file)
@@ -159,6 +159,23 @@ static uint32_t rgb_to_uint32 (double *rgb) /* {{{ */
       | ((uint32_t) b));
 } /* }}} uint32_t rgb_to_uint32 */
 
+static int uint32_to_rgb (uint32_t color, double *rgb)
+{
+  uint8_t r;
+  uint8_t g;
+  uint8_t b;
+
+  r = (uint8_t) ((color >> 16) & 0x00ff);
+  g = (uint8_t) ((color >>  8) & 0x00ff);
+  b = (uint8_t) ((color >>  0) & 0x00ff);
+
+  rgb[0] = ((double) r) / 255.0;
+  rgb[1] = ((double) g) / 255.0;
+  rgb[2] = ((double) b) / 255.0;
+
+  return (0);
+} /* }}} int uint32_to_rgb */
+
 uint32_t get_random_color (void) /* {{{ */
 {
   double hsv[3] = { 0.0, 1.0, 1.0 };
@@ -171,6 +188,18 @@ uint32_t get_random_color (void) /* {{{ */
   return (rgb_to_uint32 (rgb));
 } /* }}} uint32_t get_random_color */
 
+uint32_t fade_color (uint32_t color) /* {{{ */
+{
+  double rgb[3];
+
+  uint32_to_rgb (color, rgb);
+  rgb[0] = 1.0 - ((1.0 - rgb[0]) * 0.1);
+  rgb[1] = 1.0 - ((1.0 - rgb[1]) * 0.1);
+  rgb[2] = 1.0 - ((1.0 - rgb[2]) * 0.1);
+
+  return (rgb_to_uint32 (rgb));
+} /* }}} uint32_t fade_color */
+
 int print_debug (const char *format, ...) /* {{{ */
 {
   static _Bool have_header = 0;
index ad589e7..e08c455 100644 (file)
@@ -19,6 +19,7 @@ int ds_list_from_rrd_file (char *file,
     size_t *ret_dses_num, char ***ret_dses);
 
 uint32_t get_random_color (void);
+uint32_t fade_color (uint32_t color);
 
 char *strtolower (char *str);
 char *strtolower_copy (const char *str);