diff options
-rw-r--r-- | dive.c | 21 | ||||
-rw-r--r-- | dive.h | 1 | ||||
-rw-r--r-- | save-xml.c | 6 |
3 files changed, 19 insertions, 9 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; } @@ -75,6 +75,7 @@ typedef struct { typedef struct { volume_t size; pressure_t workingpressure; + const char *description; /* "LP85", "AL72", "AL80", "HP100+" or whatever */ } cylinder_type_t; typedef struct { diff --git a/save-xml.c b/save-xml.c index 5c05723b7..c33cbb0dd 100644 --- a/save-xml.c +++ b/save-xml.c @@ -127,7 +127,6 @@ static void save_cylinder_info(FILE *f, struct dive *dive) for (i = 0; i < MAX_CYLINDERS; i++) { cylinder_t *cylinder = dive->cylinder+i; int volume = cylinder->type.size.mliter; - int pressure = cylinder->type.workingpressure.mbar; int o2 = cylinder->gasmix.o2.permille; int he = cylinder->gasmix.he.permille; @@ -140,11 +139,8 @@ static void save_cylinder_info(FILE *f, struct dive *dive) if (he) fprintf(f, " he='%u.%u%%'", FRACTION(he, 10)); } - if (volume) { + if (volume) fprintf(f, " size='%u.%03u l'", FRACTION(volume, 1000)); - if (pressure) - fprintf(f, " workpressure='%u.%03u bar'", FRACTION(pressure, 1000)); - } fprintf(f, " />\n"); } } |