aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-09-04 11:20:27 -0700
committerGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-09-04 11:20:27 -0700
commit9961c7f89ce6353609383b16b9fbf3a30e4d8604 (patch)
tree8ba7d8b0ac18e4792827ebc7a363ca6c48a5ba4f
parent23a6607ae7ce9335be736c3400e4b8d77744af16 (diff)
downloadsubsurface-9961c7f89ce6.tar.gz
Remove redundant temperature readings
I'm aiming to really differentiate in dive log software by making my XML export files be *clean*, dammit. That means that we don't have random names, we don't have crazy random units, and we don't have redundant information. So when the temperature doesn't change, just don't report it. That's already what "no sample" means, just clean things up. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--dive.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/dive.c b/dive.c
index 8c81a3d51..9bac25eee 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;