[gnome-settings-daemon] media-keys: Remove colour manipulation from API



commit 9f10d7624e7aa19de4511e74aa63cf754cdd1ebe
Author: Bastien Nocera <hadess hadess net>
Date:   Mon Apr 16 17:46:35 2012 +0100

    media-keys: Remove colour manipulation from API

 plugins/media-keys/gsd-osd-window.c |  426 +++++++++++++++++-----------------
 plugins/media-keys/gsd-osd-window.h |    4 -
 2 files changed, 213 insertions(+), 217 deletions(-)
---
diff --git a/plugins/media-keys/gsd-osd-window.c b/plugins/media-keys/gsd-osd-window.c
index 22f7316..7c347bb 100644
--- a/plugins/media-keys/gsd-osd-window.c
+++ b/plugins/media-keys/gsd-osd-window.c
@@ -68,6 +68,219 @@ struct GsdOsdWindowPrivate
 
 G_DEFINE_TYPE (GsdOsdWindow, gsd_osd_window, GTK_TYPE_WINDOW)
 
+static void
+rgb_to_hls (gdouble *r,
+            gdouble *g,
+            gdouble *b)
+{
+        gdouble min;
+        gdouble max;
+        gdouble red;
+        gdouble green;
+        gdouble blue;
+        gdouble h, l, s;
+        gdouble delta;
+
+        red = *r;
+        green = *g;
+        blue = *b;
+
+        if (red > green)
+        {
+                if (red > blue)
+                        max = red;
+                else
+                        max = blue;
+
+                if (green < blue)
+                        min = green;
+                else
+                        min = blue;
+        }
+        else
+        {
+                if (green > blue)
+                        max = green;
+                else
+                        max = blue;
+
+                if (red < blue)
+                        min = red;
+                else
+                        min = blue;
+        }
+
+        l = (max + min) / 2;
+        s = 0;
+        h = 0;
+
+        if (max != min)
+        {
+                if (l <= 0.5)
+                        s = (max - min) / (max + min);
+                else
+                        s = (max - min) / (2 - max - min);
+
+                delta = max -min;
+                if (red == max)
+                        h = (green - blue) / delta;
+                else if (green == max)
+                        h = 2 + (blue - red) / delta;
+                else if (blue == max)
+                        h = 4 + (red - green) / delta;
+
+                h *= 60;
+                if (h < 0.0)
+                        h += 360;
+        }
+
+        *r = h;
+        *g = l;
+        *b = s;
+}
+
+static void
+hls_to_rgb (gdouble *h,
+            gdouble *l,
+            gdouble *s)
+{
+        gdouble hue;
+        gdouble lightness;
+        gdouble saturation;
+        gdouble m1, m2;
+        gdouble r, g, b;
+
+        lightness = *l;
+        saturation = *s;
+
+        if (lightness <= 0.5)
+                m2 = lightness * (1 + saturation);
+        else
+                m2 = lightness + saturation - lightness * saturation;
+        m1 = 2 * lightness - m2;
+
+        if (saturation == 0)
+        {
+                *h = lightness;
+                *l = lightness;
+                *s = lightness;
+        }
+        else
+        {
+                hue = *h + 120;
+                while (hue > 360)
+                        hue -= 360;
+                while (hue < 0)
+                        hue += 360;
+
+                if (hue < 60)
+                        r = m1 + (m2 - m1) * hue / 60;
+                else if (hue < 180)
+                        r = m2;
+                else if (hue < 240)
+                        r = m1 + (m2 - m1) * (240 - hue) / 60;
+                else
+                        r = m1;
+
+                hue = *h;
+                while (hue > 360)
+                        hue -= 360;
+                while (hue < 0)
+                        hue += 360;
+
+                if (hue < 60)
+                        g = m1 + (m2 - m1) * hue / 60;
+                else if (hue < 180)
+                        g = m2;
+                else if (hue < 240)
+                        g = m1 + (m2 - m1) * (240 - hue) / 60;
+                else
+                        g = m1;
+
+                hue = *h - 120;
+                while (hue > 360)
+                        hue -= 360;
+                while (hue < 0)
+                        hue += 360;
+
+                if (hue < 60)
+                        b = m1 + (m2 - m1) * hue / 60;
+                else if (hue < 180)
+                        b = m2;
+                else if (hue < 240)
+                        b = m1 + (m2 - m1) * (240 - hue) / 60;
+                else
+                        b = m1;
+
+                *h = r;
+                *l = g;
+                *s = b;
+        }
+}
+
+static void
+gsd_osd_window_color_shade (GdkRGBA *a,
+                            gdouble   k)
+{
+        gdouble red;
+        gdouble green;
+        gdouble blue;
+
+        red = a->red;
+        green = a->green;
+        blue = a->blue;
+
+        rgb_to_hls (&red, &green, &blue);
+
+        green *= k;
+        if (green > 1.0)
+                green = 1.0;
+        else if (green < 0.0)
+                green = 0.0;
+
+        blue *= k;
+        if (blue > 1.0)
+                blue = 1.0;
+        else if (blue < 0.0)
+                blue = 0.0;
+
+        hls_to_rgb (&red, &green, &blue);
+
+        a->red = red;
+        a->green = green;
+        a->blue = blue;
+}
+
+static void
+gsd_osd_window_color_reverse (GdkRGBA *a)
+{
+        gdouble red;
+        gdouble green;
+        gdouble blue;
+        gdouble h;
+        gdouble s;
+        gdouble v;
+
+        red = a->red;
+        green = a->green;
+        blue = a->blue;
+
+        gtk_rgb_to_hsv (red, green, blue, &h, &s, &v);
+
+        v = 0.5 + (0.5 - v);
+        if (v > 1.0)
+                v = 1.0;
+        else if (v < 0.0)
+                v = 0.0;
+
+        gtk_hsv_to_rgb (h, s, v, &red, &green, &blue);
+
+        a->red = red;
+        a->green = green;
+        a->blue = blue;
+}
+
+
 static gboolean
 fade_timeout (GsdOsdWindow *window)
 {
@@ -736,219 +949,6 @@ gsd_osd_window_draw_rounded_rectangle (cairo_t* cr,
         cairo_close_path (cr);
 }
 
-static void
-rgb_to_hls (gdouble *r,
-            gdouble *g,
-            gdouble *b)
-{
-        gdouble min;
-        gdouble max;
-        gdouble red;
-        gdouble green;
-        gdouble blue;
-        gdouble h, l, s;
-        gdouble delta;
-
-        red = *r;
-        green = *g;
-        blue = *b;
-
-        if (red > green)
-        {
-                if (red > blue)
-                        max = red;
-                else
-                        max = blue;
-
-                if (green < blue)
-                        min = green;
-                else
-                        min = blue;
-        }
-        else
-        {
-                if (green > blue)
-                        max = green;
-                else
-                        max = blue;
-
-                if (red < blue)
-                        min = red;
-                else
-                        min = blue;
-        }
-
-        l = (max + min) / 2;
-        s = 0;
-        h = 0;
-
-        if (max != min)
-        {
-                if (l <= 0.5)
-                        s = (max - min) / (max + min);
-                else
-                        s = (max - min) / (2 - max - min);
-
-                delta = max -min;
-                if (red == max)
-                        h = (green - blue) / delta;
-                else if (green == max)
-                        h = 2 + (blue - red) / delta;
-                else if (blue == max)
-                        h = 4 + (red - green) / delta;
-
-                h *= 60;
-                if (h < 0.0)
-                        h += 360;
-        }
-
-        *r = h;
-        *g = l;
-        *b = s;
-}
-
-static void
-hls_to_rgb (gdouble *h,
-            gdouble *l,
-            gdouble *s)
-{
-        gdouble hue;
-        gdouble lightness;
-        gdouble saturation;
-        gdouble m1, m2;
-        gdouble r, g, b;
-
-        lightness = *l;
-        saturation = *s;
-
-        if (lightness <= 0.5)
-                m2 = lightness * (1 + saturation);
-        else
-                m2 = lightness + saturation - lightness * saturation;
-        m1 = 2 * lightness - m2;
-
-        if (saturation == 0)
-        {
-                *h = lightness;
-                *l = lightness;
-                *s = lightness;
-        }
-        else
-        {
-                hue = *h + 120;
-                while (hue > 360)
-                        hue -= 360;
-                while (hue < 0)
-                        hue += 360;
-
-                if (hue < 60)
-                        r = m1 + (m2 - m1) * hue / 60;
-                else if (hue < 180)
-                        r = m2;
-                else if (hue < 240)
-                        r = m1 + (m2 - m1) * (240 - hue) / 60;
-                else
-                        r = m1;
-
-                hue = *h;
-                while (hue > 360)
-                        hue -= 360;
-                while (hue < 0)
-                        hue += 360;
-
-                if (hue < 60)
-                        g = m1 + (m2 - m1) * hue / 60;
-                else if (hue < 180)
-                        g = m2;
-                else if (hue < 240)
-                        g = m1 + (m2 - m1) * (240 - hue) / 60;
-                else
-                        g = m1;
-
-                hue = *h - 120;
-                while (hue > 360)
-                        hue -= 360;
-                while (hue < 0)
-                        hue += 360;
-
-                if (hue < 60)
-                        b = m1 + (m2 - m1) * hue / 60;
-                else if (hue < 180)
-                        b = m2;
-                else if (hue < 240)
-                        b = m1 + (m2 - m1) * (240 - hue) / 60;
-                else
-                        b = m1;
-
-                *h = r;
-                *l = g;
-                *s = b;
-        }
-}
-
-void
-gsd_osd_window_color_shade (GdkRGBA *a,
-                            gdouble   k)
-{
-        gdouble red;
-        gdouble green;
-        gdouble blue;
-
-        red = a->red;
-        green = a->green;
-        blue = a->blue;
-
-        rgb_to_hls (&red, &green, &blue);
-
-        green *= k;
-        if (green > 1.0)
-                green = 1.0;
-        else if (green < 0.0)
-                green = 0.0;
-
-        blue *= k;
-        if (blue > 1.0)
-                blue = 1.0;
-        else if (blue < 0.0)
-                blue = 0.0;
-
-        hls_to_rgb (&red, &green, &blue);
-
-        a->red = red;
-        a->green = green;
-        a->blue = blue;
-}
-
-
-void
-gsd_osd_window_color_reverse (GdkRGBA *a)
-{
-        gdouble red;
-        gdouble green;
-        gdouble blue;
-        gdouble h;
-        gdouble s;
-        gdouble v;
-
-        red = a->red;
-        green = a->green;
-        blue = a->blue;
-
-        gtk_rgb_to_hsv (red, green, blue, &h, &s, &v);
-
-        v = 0.5 + (0.5 - v);
-        if (v > 1.0)
-                v = 1.0;
-        else if (v < 0.0)
-                v = 0.0;
-
-        gtk_hsv_to_rgb (h, s, v, &red, &green, &blue);
-
-        a->red = red;
-        a->green = green;
-        a->blue = blue;
-}
-
 static gboolean
 gsd_osd_window_draw (GtkWidget *widget,
                      cairo_t   *orig_cr)
diff --git a/plugins/media-keys/gsd-osd-window.h b/plugins/media-keys/gsd-osd-window.h
index abdb8bb..0656d99 100644
--- a/plugins/media-keys/gsd-osd-window.h
+++ b/plugins/media-keys/gsd-osd-window.h
@@ -99,10 +99,6 @@ void                  gsd_osd_window_draw_rounded_rectangle (cairo_t *cr,
                                                              gdouble  width,
                                                              gdouble  height);
 
-void                  gsd_osd_window_color_reverse          (GdkRGBA *a);
-void                  gsd_osd_window_color_shade            (GdkRGBA *a,
-                                                             gdouble  k);
-
 G_END_DECLS
 
 #endif



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]