int i;
for (i = 0; i < MAX_CYLINDERS; i++) {
+ pressure_t start, end;
cylinder_t *cyl = dive->cylinder + i;
int size = cyl->type.size.mliter;
double kilo_atm;
if (!size)
continue;
- kilo_atm = (to_ATM(cyl->start) - to_ATM(cyl->end)) / 1000.0;
+ start = cyl->start.mbar ? cyl->start : cyl->sample_start;
+ end = cyl->end.mbar ? cyl->end : cyl->sample_end;
+ kilo_atm = (to_ATM(start) - to_ATM(end)) / 1000.0;
/* Liters of air at 1 atm == milliliters at 1k atm*/
airuse += kilo_atm * size;
return sac * 1000;
}
+void update_cylinder_related_info(struct dive *dive)
+{
+ if(dive != NULL) {
+ dive->sac = calculate_sac(dive);
+ dive->otu = calculate_otu(dive);
+ }
+}
+
static void get_string(char **str, const char *s)
{
int len;
for (i = 0; i < dive_table.nr; i++) {
struct dive *dive = dive_table.dives[i];
- dive->otu = calculate_otu(dive);
- dive->sac = calculate_sac(dive);
+ update_cylinder_related_info(dive);
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter,
DIVE_INDEX, i,