diff options
author | Nathan Samson <nathansamson@gmail.com> | 2011-09-04 22:15:55 +0200 |
---|---|---|
committer | Nathan Samson <nathansamson@gmail.com> | 2011-09-04 22:15:55 +0200 |
commit | 6b075e0339f419555f08ece3a6c4a29407ecc32b (patch) | |
tree | c8c9df6d8690edddec8da8f8f3a87123f86dead0 /dive.c | |
parent | c4514b062a9866153c179d4b6ecf7972c9496891 (diff) | |
parent | aab4d593bdbffef8442282318778a9833cbc7a43 (diff) | |
download | subsurface-6b075e0339f419555f08ece3a6c4a29407ecc32b.tar.gz |
Merge hbonse's UI tweaks, but fixing the compile warnings. Also bringing it up to date with the master (and my own UI improvements)
Signed-off-by: Nathan Samson <nathansamson@gmail.com>
Diffstat (limited to 'dive.c')
-rw-r--r-- | dive.c | 22 |
1 files changed, 17 insertions, 5 deletions
@@ -34,9 +34,10 @@ struct dive *fixup_dive(struct dive *dive) int lasttime = 0; int start = -1, end = -1; int startpress = 0, endpress = 0; - 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,9 +61,21 @@ struct dive *fixup_dive(struct dive *dive) startpress = press; } if (temp) { - endtemp = temp; - if (!starttemp) - starttemp = 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; } @@ -240,7 +253,6 @@ struct dive *try_to_merge(struct dive *a, struct dive *b) memset(res, 0, dive_size(alloc_samples)); res->when = a->when; - res->name = merge_text(a->name, b->name); res->location = merge_text(a->location, b->location); res->notes = merge_text(a->notes, b->notes); MERGE_MAX(res, a, b, maxdepth.mm); |