diff options
author | Robert C. Helling <helling@atdotde.de> | 2017-01-03 15:14:42 +0100 |
---|---|---|
committer | Subsurface <dirk@subsurface-divelog.org> | 2017-01-03 22:28:18 -0800 |
commit | 43599742a3ca3600196156d1be233ebd05c8dfb6 (patch) | |
tree | 278c3c19e80d5424a6c8093c572ab9fe8d712f55 /core | |
parent | 72bcb6481f3b935444d7868a74599dda133f9b43 (diff) | |
download | subsurface-43599742a3ca3600196156d1be233ebd05c8dfb6.tar.gz |
Display surface interval in diveplan
...instead of just stating "repetitive dive". As requested by
a user.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
Diffstat (limited to 'core')
-rw-r--r-- | core/dive.h | 2 | ||||
-rw-r--r-- | core/divelist.c | 4 | ||||
-rw-r--r-- | core/divelist.h | 2 | ||||
-rw-r--r-- | core/planner.c | 28 |
4 files changed, 21 insertions, 15 deletions
diff --git a/core/dive.h b/core/dive.h index aa6352db3..8798b22ff 100644 --- a/core/dive.h +++ b/core/dive.h @@ -860,7 +860,7 @@ struct diveplan { short vpmb_conservatism; struct divedatapoint *dp; int eff_gflow, eff_gfhigh; - bool repetitive; + unsigned int surface_interval; }; struct divedatapoint *plan_add_segment(struct diveplan *diveplan, int duration, int depth, int cylinderid, int po2, bool entered); diff --git a/core/divelist.c b/core/divelist.c index f4762ddef..fdc1f906b 100644 --- a/core/divelist.c +++ b/core/divelist.c @@ -361,7 +361,7 @@ static struct gasmix air = { .o2.permille = O2_IN_AIR, .he.permille = 0 }; /* take into account previous dives until there is a 48h gap between dives */ /* return true if this is a repetitive dive */ -bool init_decompression(struct dive *dive) +unsigned int init_decompression(struct dive *dive) { int i, divenr = -1; unsigned int surface_time; @@ -448,7 +448,7 @@ bool init_decompression(struct dive *dive) } // I do not dare to remove this call. We don't need the result but it might have side effects. Bummer. tissue_tolerance_calc(dive, surface_pressure); - return deco_init; + return surface_time; } void update_cylinder_related_info(struct dive *dive) diff --git a/core/divelist.h b/core/divelist.h index f36766fed..52ebbada9 100644 --- a/core/divelist.h +++ b/core/divelist.h @@ -14,7 +14,7 @@ extern void update_cylinder_related_info(struct dive *); extern void mark_divelist_changed(int); extern int unsaved_changes(void); extern void remove_autogen_trips(void); -extern bool init_decompression(struct dive *dive); +extern unsigned int init_decompression(struct dive *dive); /* divelist core logic functions */ extern void process_dives(bool imported, bool prefer_imported); diff --git a/core/planner.c b/core/planner.c index 5bc7e82b6..cb11bfbaa 100644 --- a/core/planner.c +++ b/core/planner.c @@ -128,7 +128,7 @@ void interpolate_transition(struct dive *dive, duration_t t0, duration_t t1, dep } /* returns the tissue tolerance at the end of this (partial) dive */ -bool tissue_at_end(struct dive *dive, char **cached_datap) +unsigned int tissue_at_end(struct dive *dive, char **cached_datap) { struct divecomputer *dc; struct sample *sample, *psample; @@ -136,19 +136,19 @@ bool tissue_at_end(struct dive *dive, char **cached_datap) depth_t lastdepth = {}; duration_t t0 = {}, t1 = {}; struct gasmix gas; - bool repetitive = false; + unsigned int surface_interval = 0; if (!dive) - return false; + return 0; if (*cached_datap) { restore_deco_state(*cached_datap); } else { - repetitive = init_decompression(dive); + surface_interval = init_decompression(dive); cache_deco_state(cached_datap); } dc = &dive->dc; if (!dc->samples) - return false; + return 0; psample = sample = dc->sample; for (i = 0; i < dc->samples; i++, sample++) { @@ -191,7 +191,7 @@ bool tissue_at_end(struct dive *dive, char **cached_datap) psample = sample; t0 = t1; } - return repetitive; + return surface_interval; } @@ -596,10 +596,16 @@ static void add_plan_to_notes(struct diveplan *diveplan, struct dive *dive, bool snprintf(temp, sz_temp, translate("gettextFromC", "recreational mode based on Bühlmann ZHL-16B with GFlow = %d and GFhigh = %d"), diveplan->gflow, diveplan->gfhigh); } - len += snprintf(buffer + len, sz_buffer - len, "<div><b>%s%s</b><br>%s</div>", - translate("gettextFromC", "Subsurface dive plan"), - diveplan->repetitive ? translate("gettextFromC", " (repetitive)") : "", - temp); + if (diveplan->surface_interval > 60) { + len += snprintf(buffer + len, sz_buffer - len, "<div><b>%s %d:%02d)</b><br>%s</div>", + translate("gettextFromC", "Subsurface dive plan (surface interval "), + FRACTION(diveplan->surface_interval / 60, 60), + temp); + } else { + len += snprintf(buffer + len, sz_buffer - len, "<div><b>%s</b><br>%s</div>", + translate("gettextFromC", "Subsurface dive plan"), + temp); + } len += snprintf(buffer + len, sz_buffer - len, translate("gettextFromC", "<div>Runtime: %dmin</div><br>"), diveplan_duration(diveplan)); @@ -1086,7 +1092,7 @@ bool plan(struct diveplan *diveplan, char **cached_datap, bool is_planner, bool gi = gaschangenr - 1; /* Set tissue tolerance and initial vpmb gradient at start of ascent phase */ - diveplan->repetitive = tissue_at_end(&displayed_dive, cached_datap); + diveplan->surface_interval = tissue_at_end(&displayed_dive, cached_datap); nuclear_regeneration(clock); vpmb_start_gradient(); |