fixed formating
[psensor.git] / src / graph.c
index b64e3f7..0ac3143 100644 (file)
 #include <math.h>
 
 #include <cfg.h>
+#include <graph.h>
 #include <plog.h>
 #include <psensor.h>
 
 /* horizontal padding */
-const int GRAPH_H_PADDING = 4;
+static const int GRAPH_H_PADDING = 4;
 /* vertical padding */
-const int GRAPH_V_PADDING = 4;
+static const int GRAPH_V_PADDING = 4;
 
 bool is_smooth_curves_enabled;
 
@@ -59,6 +60,29 @@ struct graph_info {
        GdkRGBA theme_fg_color;
 };
 
+static struct psensor **list_filter_graph_enabled(struct psensor **sensors)
+{
+       int n, i;
+       struct psensor **result, **cur, *s;
+
+       if (!sensors)
+               return NULL;
+
+       n = psensor_list_size(sensors);
+       result = malloc((n+1) * sizeof(struct psensor *));
+
+       for (cur = sensors, i = 0; *cur; cur++) {
+               s = *cur;
+
+               if (config_is_sensor_graph_enabled(s->id))
+                       result[i++] = s;
+       }
+
+       result[i] = NULL;
+
+       return result;
+}
+
 /* Return the end time of the graph i.e. the more recent measure.  If
  * no measure are available, return 0.
  * If Bezier curves are used return the measure n-3 to avoid to
@@ -273,6 +297,7 @@ static void draw_sensor_smooth_curve(struct psensor *s,
        int i, dt, vdt, j, k, found;
        double x[4], y[4], v;
        time_t t, t0, *stimes;
+       GdkRGBA *color;
 
        if (!times)
                times = g_hash_table_new_full(g_str_hash,
@@ -282,10 +307,13 @@ static void draw_sensor_smooth_curve(struct psensor *s,
 
        stimes = g_hash_table_lookup(times, s->id);
 
+       color = config_get_sensor_color(s->id);
+
        cairo_set_source_rgb(cr,
-                            s->color->red,
-                            s->color->green,
-                            s->color->blue);
+                            color->red,
+                            color->green,
+                            color->blue);
+       gdk_rgba_free(color);
 
        /* search the index of the first measure used as a start point
         * of a Bezier curve. The start and end points of the Bezier
@@ -375,11 +403,14 @@ static void draw_sensor_curve(struct psensor *s,
 {
        int first, i, t, dt, vdt;
        double v, x, y;
+       GdkRGBA *color;
 
+       color = config_get_sensor_color(s->id);
        cairo_set_source_rgb(cr,
-                            s->color->red,
-                            s->color->green,
-                            s->color->blue);
+                            color->red,
+                            color->green,
+                            color->blue);
+       gdk_rgba_free(color);
 
        dt = et - bt;
        first = 1;
@@ -448,7 +479,7 @@ graph_update(struct psensor **sensors,
        if (!gtk_widget_is_drawable(w_graph))
                return;
 
-       enabled_sensors = psensor_list_filter_graph_enabled(sensors);
+       enabled_sensors = list_filter_graph_enabled(sensors);
 
        min_rpm = get_min_rpm(enabled_sensors);
        max_rpm = get_max_rpm(enabled_sensors);