X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fgraph.c;h=26a84d358da6cbe1f6c6abac5650de5fc5b49001;hb=23234e3cf7be4d07c11b911d4ee9a86a99ef4e3e;hp=f40e442c08b8aea72d7d1275ef4a2c9d2b82bd5d;hpb=2b51051578ef29b031d0927388c4d62baa3c525e;p=psensor.git diff --git a/src/graph.c b/src/graph.c index f40e442..26a84d3 100644 --- a/src/graph.c +++ b/src/graph.c @@ -171,27 +171,28 @@ static void draw_sensor_curve(struct psensor *s, int g_xoff, int g_yoff) { - int first = 1; - int i; + int first, i, x, y, t, dt, vdt; + double v; cairo_set_source_rgb(cr, s->color->f_red, s->color->f_green, s->color->f_blue); - cairo_set_line_join(cr, CAIRO_LINE_JOIN_ROUND); - cairo_set_line_width(cr, 1); + dt = et - bt; + first = 1; for (i = 0; i < s->values_max_length; i++) { - int x, y, t; - double v; - t = s->measures[i].time.tv_sec; v = s->measures[i].value.d_num; - if (v == UNKNOWN_DBL_VALUE || !t || (t - bt) < 0) + if (v == UNKNOWN_DBL_VALUE || !t) continue; - x = (t - bt) * g_width / (et - bt) + g_xoff; + vdt = t - bt; + if (vdt < 0) + continue; + + x = vdt * g_width / dt + g_xoff; y = compute_y(v, min, max, g_height, g_yoff); @@ -314,6 +315,9 @@ graph_update(struct psensor **sensors, if (bt && et) { sensor_cur = sensors; + + cairo_set_line_join(cr, CAIRO_LINE_JOIN_ROUND); + cairo_set_line_width(cr, 1); while (*sensor_cur) { struct psensor *s = *sensor_cur;