X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=dive.c;h=9bac25eeef3aa8412972e2ccfe890851828b3445;hb=9961c7f89ce6353609383b16b9fbf3a30e4d8604;hp=8c81a3d516702bb9ecac67f2ee40fb82088d6e0a;hpb=23a6607ae7ce9335be736c3400e4b8d77744af16;p=ext%2Fsubsurface.git diff --git a/dive.c b/dive.c index 8c81a3d..9bac25e 100644 --- a/dive.c +++ b/dive.c @@ -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;