- if (!get_cylinder_pressure_range(dive, gc, NULL, NULL))
+ if (!setup_temperature_limits(gc, pi))
+ return;
+
+ set_source_rgba(gc, 0.2, 0.2, 1.0, 0.8);
+ for (i = 0; i < pi->nr; i++) {
+ struct plot_data *entry = pi->entry + i;
+ int mkelvin = entry->temperature;
+ int sec = entry->sec;
+ if (!mkelvin) {
+ if (!last)
+ continue;
+ mkelvin = last;
+ }
+ if (last)
+ line_to(gc, sec, mkelvin);
+ else
+ move_to(gc, sec, mkelvin);
+ last = mkelvin;
+ }
+ cairo_stroke(cr);
+}
+
+/* gets both the actual start and end pressure as well as the scaling factors */
+static int get_cylinder_pressure_range(struct graphics_context *gc, struct plot_info *pi)
+{
+ gc->leftx = 0;
+ gc->rightx = get_maxtime(pi);
+
+ gc->topy = 0; gc->bottomy = pi->maxpressure * 1.5;
+ return pi->maxpressure != 0;
+}
+
+static void plot_cylinder_pressure(struct graphics_context *gc, struct plot_info *pi)
+{
+ int i;
+
+ if (!get_cylinder_pressure_range(gc, pi))