diff options
author | Anton Lundin <glance@acc.umu.se> | 2013-11-20 19:52:17 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-11-20 11:21:48 -0800 |
commit | f6b29d093f51508312846c8dcf7e1f9e104d0796 (patch) | |
tree | 2a8e2514519fe1905671e2ae38ad7ecfdeabc2d9 | |
parent | 51345e4ad828918a4e20b6aba40c3b0a137b1e73 (diff) | |
download | subsurface-f6b29d093f51508312846c8dcf7e1f9e104d0796.tar.gz |
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>
-rw-r--r-- | dive.c | 6 | ||||
-rw-r--r-- | dive.h | 1 | ||||
-rw-r--r-- | profile.c | 2 |
3 files changed, 3 insertions, 6 deletions
@@ -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 */ @@ -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 */ @@ -553,7 +553,7 @@ static void fill_missing_tank_pressures(struct dive *dive, struct plot_info *pi, } } -static int get_cylinder_index(struct dive *dive, struct event *ev) +int get_cylinder_index(struct dive *dive, struct event *ev) { int i; int best = 0, score = INT_MAX; |