mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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
3 changed files with 3 additions and 6 deletions
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 time = sample->time.seconds;
|
||||||
int depth = sample->depth.mm;
|
int depth = sample->depth.mm;
|
||||||
if (ev && time >= ev->time.seconds) {
|
if (ev && time >= ev->time.seconds) {
|
||||||
int o2 = (ev->value & 0xFFFF) * 10;
|
idx = get_cylinder_index(dive, ev);
|
||||||
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
|
|
||||||
ev = get_next_event(ev->next, "gaschange");
|
ev = get_next_event(ev->next, "gaschange");
|
||||||
}
|
}
|
||||||
/* We ignore segments at the surface */
|
/* 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_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 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 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 */
|
/* 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 i;
|
||||||
int best = 0, score = INT_MAX;
|
int best = 0, score = INT_MAX;
|
||||||
|
|
Loading…
Add table
Reference in a new issue