X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=dive.c;fp=dive.c;h=757622fe7076cf10a43a70aa9b1ec6facd5fc816;hb=550eb862fa6dbc1d07c6a3165634900421dd2ca6;hp=f758785d940c65fba7a702f0b5b0b91f9b95e170;hpb=f12382c66f2b3deddf38f7d51fda3a2c75a0c5fa;p=ext%2Fsubsurface.git diff --git a/dive.c b/dive.c index f758785..757622f 100644 --- a/dive.c +++ b/dive.c @@ -36,6 +36,8 @@ struct dive *fixup_dive(struct dive *dive) int startpress = 0, endpress = 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; @@ -59,6 +61,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; + } + if (!mintemp || temp < mintemp) mintemp = temp; }