Use get_cylinder_index in per_cylinder_mean_depth
Use get_cylinder_index that handles SAMPLE_EVENT_GASCHANGE and SAMPLE_EVENT_GASCHANGE2. This also removes the need for a special case where get_gasidx returns -1, because get_cylinder_index always returns the "closest" gas that it finds. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
51345e4ad8
commit
f6b29d093f
6
dive.c
6
dive.c
@ -361,11 +361,7 @@ void per_cylinder_mean_depth(struct dive *dive, struct divecomputer *dc, int *me
|
||||
int time = sample->time.seconds;
|
||||
int depth = sample->depth.mm;
|
||||
if (ev && time >= ev->time.seconds) {
|
||||
int o2 = (ev->value & 0xFFFF) * 10;
|
||||
int he = (ev->value >> 16) * 10;
|
||||
int tank = get_gasidx(dive, o2, he);
|
||||
if (tank >= 0)
|
||||
idx = tank; // should never happen unless the input file is inconsistent
|
||||
idx = get_cylinder_index(dive, ev);
|
||||
ev = get_next_event(ev->next, "gaschange");
|
||||
}
|
||||
/* We ignore segments at the surface */
|
||||
|
||||
1
dive.h
1
dive.h
@ -662,6 +662,7 @@ extern void fill_default_cylinder(cylinder_t *cyl);
|
||||
extern void add_gas_switch_event(struct dive *dive, struct divecomputer *dc, int time, int idx);
|
||||
extern void add_event(struct divecomputer *dc, int time, int type, int flags, int value, const char *name);
|
||||
extern void per_cylinder_mean_depth(struct dive *dive, struct divecomputer *dc, int *mean, int *duration);
|
||||
extern int get_cylinder_index(struct dive *dive, struct event *ev);
|
||||
|
||||
/* UI related protopypes */
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user