+ continue;
+ sec = sample->time.seconds;
+ if (sec < last)
+ continue;
+ last = sec + 300;
+ if (output_units.temperature == FAHRENHEIT) {
+ deg = to_F(sample->temperature);
+ unit = "F";
+ } else {
+ deg = to_C(sample->temperature);
+ unit = "C";
+ }
+ plot_text(gc, &tro, sec, mkelvin, "%d %s", deg, unit);
+ }
+}
+
+static void plot_temperature_profile(struct dive *dive, struct graphics_context *gc)
+{
+ int i;
+ cairo_t *cr = gc->cr;
+ int last = 0;
+
+ if (!setup_temperature_limits(dive, gc))
+ return;
+
+ cairo_set_source_rgba(cr, 0.2, 0.2, 1.0, 0.8);
+ for (i = 0; i < dive->samples; i++) {
+ struct sample *sample = dive->sample+i;
+ int mkelvin = sample->temperature.mkelvin;
+ if (!mkelvin) {
+ if (!last)
+ continue;
+ mkelvin = last;
+ }
+ if (last)
+ line_to(gc, sample->time.seconds, mkelvin);
+ else
+ move_to(gc, sample->time.seconds, mkelvin);
+ last = mkelvin;