Only return gas volumes for gases used

We check in get_gaslist is_gas_used, so if were going to be consistent
about what we return from get_gaslist and in get_gas_used, only return
gas volumes that we actually consumed during the dive.

The problem now this fixes can be seen in dives/test10.xml

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Anton Lundin 2013-11-27 23:05:51 +01:00 committed by Dirk Hohndel
parent 57fb878b41
commit 9b5c7c2bbe

View file

@ -293,20 +293,6 @@ void get_selected_dives_text(char *buffer, int size)
}
}
void get_gas_used(struct dive *dive, volume_t gases[MAX_CYLINDERS])
{
int idx;
for (idx = 0; idx < MAX_CYLINDERS; idx++) {
cylinder_t *cyl = &dive->cylinder[idx];
pressure_t start, end;
start = cyl->start.mbar ? cyl->start : cyl->sample_start;
end = cyl->end.mbar ? cyl->end : cyl->sample_end;
if (start.mbar && end.mbar)
gases[idx].mliter = gas_volume(cyl, start) - gas_volume(cyl, end);
}
}
bool is_gas_used(struct dive *dive, int idx)
{
cylinder_t *cyl = &dive->cylinder[idx];
@ -354,6 +340,23 @@ bool is_gas_used(struct dive *dive, int idx)
return used;
}
void get_gas_used(struct dive *dive, volume_t gases[MAX_CYLINDERS])
{
int idx;
for (idx = 0; idx < MAX_CYLINDERS; idx++) {
cylinder_t *cyl = &dive->cylinder[idx];
pressure_t start, end;
if (!is_gas_used(dive, idx))
continue;
start = cyl->start.mbar ? cyl->start : cyl->sample_start;
end = cyl->end.mbar ? cyl->end : cyl->sample_end;
if (start.mbar && end.mbar)
gases[idx].mliter = gas_volume(cyl, start) - gas_volume(cyl, end);
}
}
#define MAXBUF 80
/* for the O2/He readings just create a list of them */
char *get_gaslist(struct dive *dive)