Implement get_divemode() to find the divemode at a particular time

Replaced a rather cumbersome function that that did the above. Upon
the suggestion of Robert Helling who proposed a much shorter way,
this new function replaced the previous ones. This necessitated
changes to divelist.c, profile.c and plannernotes.c, as well as
dive.c/h.

Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
This commit is contained in:
Willem Ferguson 2018-04-07 17:52:16 +02:00 committed by Lubomir I. Ivanov
parent b9174332d5
commit cad4eb39c4
5 changed files with 28 additions and 62 deletions

View file

@ -414,9 +414,9 @@ static void add_dive_to_deco(struct deco_state *ds, struct dive *dive)
{
struct divecomputer *dc = &dive->dc;
struct gasmix *gasmix = NULL;
struct event *ev = NULL;
struct event *ev_dmc = dc->events, *ev_dmt = get_next_divemodechange(&ev_dmc, TRUE);
int i;
struct event *ev = NULL, *evd = NULL;
enum dive_comp_type current_divemode = UNDEF_COMP_TYPE;
if (!dc)
return;
@ -432,7 +432,7 @@ static void add_dive_to_deco(struct deco_state *ds, struct dive *dive)
int depth = interpolate(psample->depth.mm, sample->depth.mm, j - t0, t1 - t0);
gasmix = get_gasmix(dive, dc, j, &ev, gasmix);
add_segment(ds, depth_to_bar(depth, dive), gasmix, 1, sample->setpoint.mbar,
get_divemode_at_time(dc, j, &ev_dmt), dive->sac);
get_current_divemode(&dive->dc, j, &evd, &current_divemode), dive->sac);
}
}
}