summaryrefslogtreecommitdiffstats
path: root/dive.c
diff options
context:
space:
mode:
authorGravatar Nathan Samson <nathansamson@gmail.com>2011-09-04 22:15:55 +0200
committerGravatar Nathan Samson <nathansamson@gmail.com>2011-09-04 22:15:55 +0200
commit6b075e0339f419555f08ece3a6c4a29407ecc32b (patch)
treec8c9df6d8690edddec8da8f8f3a87123f86dead0 /dive.c
parentc4514b062a9866153c179d4b6ecf7972c9496891 (diff)
parentaab4d593bdbffef8442282318778a9833cbc7a43 (diff)
downloadsubsurface-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.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/dive.c b/dive.c
index 8c81a3d51..5ddb6bc80 100644
--- a/dive.c
+++ b/dive.c
@@ -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);