diff options
Diffstat (limited to 'dive.c')
-rw-r--r-- | dive.c | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -37,6 +37,8 @@ struct dive *fixup_dive(struct dive *dive) int starttemp = 0, endtemp = 0; int maxdepth = 0, mintemp = 0; int lastdepth = 0; + int lasttemp = 0; + temperature_t *redundant_temp = NULL; for (i = 0; i < dive->samples; i++) { struct sample *sample = dive->sample + i; @@ -60,6 +62,21 @@ struct dive *fixup_dive(struct dive *dive) startpress = press; } if (temp) { + /* + * If we have consecutive identical + * temperature readings, throw away + * the redundant ones. We care about + * the "edges" only. + */ + if (lasttemp == temp) { + if (redundant_temp) + redundant_temp->mkelvin = 0; + redundant_temp = &sample->temperature; + } else { + redundant_temp = NULL; + lasttemp = temp; + } + endtemp = temp; if (!starttemp) starttemp = temp; |