summaryrefslogtreecommitdiffstats
path: root/core/dive.h
diff options
context:
space:
mode:
authorGravatar Willem Ferguson <willemferguson@zoology.up.ac.za>2018-04-03 19:30:27 +0200
committerGravatar Lubomir I. Ivanov <neolit123@gmail.com>2018-05-14 23:47:00 +0300
commit27a0542220ae3766f0a98058c28e86d6c6d43a62 (patch)
treecf5a13544588d53667c2a4272a9053406b32d6a6 /core/dive.h
parentcf377beb2ea13833fa4a867b9c99153ecd9fff22 (diff)
downloadsubsurface-27a0542220ae3766f0a98058c28e86d6c6d43a62.tar.gz
Implement bailout outside of the dive planner
This is the second step for implementing bailout. The indirect calls to fill_pressures through add_segment() (in deco.c) are addressed. Bailout is now fully implemented in the dive log but not in the dive planner. 1) The parameters to add_segment() are changed to take a divemode as the second last parameter, and not a *dive. 2) Call to add_segment() in profile.c and in divelist.c are adapted. In divelist.c some calls to add_segment were left using dc-> divemode instead of possible bailout. This appears tp be the most appropriate route. 3) The functions get_divemode_from_time() and get_next_divemodechange() in dive.c have had some small changes. 4) The calls to get_segment(0 in planner.c were changed to reflect the new parameter list, but not updated to reflect bailout. This is the next step. Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
Diffstat (limited to 'core/dive.h')
-rw-r--r--core/dive.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/core/dive.h b/core/dive.h
index 4e45ca860..dc204b1d6 100644
--- a/core/dive.h
+++ b/core/dive.h
@@ -83,6 +83,7 @@ struct event {
/* This is the annoying libdivecomputer format. */
int flags, value;
/* .. and this is our "extended" data for some event types */
+ enum dive_comp_type divemode;
union {
/*
* Currently only for gas switch events.
@@ -91,7 +92,6 @@ struct event {
* case, the get_cylinder_index() function will give the best
* match with the cylinders in the dive based on gasmix.
*/
- enum dive_comp_type divemode;
struct {
int index;
struct gasmix mix;
@@ -854,7 +854,7 @@ struct deco_state {
bool icd_warning;
};
-extern void add_segment(struct deco_state *ds, double pressure, const struct gasmix *gasmix, int period_in_seconds, int setpoint, const struct dive *dive, int sac);
+extern void add_segment(struct deco_state *ds, double pressure, const struct gasmix *gasmix, int period_in_seconds, int setpoint, enum dive_comp_type divemode, int sac);
extern void clear_deco(struct deco_state *ds, double surface_pressure);
extern void dump_tissues(struct deco_state *ds);
extern void set_gf(short gflow, short gfhigh);