Filter for logged/planned dives

Add filter for dives having a planned dive computer or
a logged dive computer.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
This commit is contained in:
Robert C. Helling 2019-01-01 18:49:56 +01:00
parent c349692d98
commit 123f3ef7ec
8 changed files with 208 additions and 137 deletions

View file

@ -3361,6 +3361,18 @@ bool is_dc_planner(const struct divecomputer *dc) {
return same_string(dc->model, "planned dive");
}
// Does this dive have a dive computer for which is_dc_planner has value planned
bool has_planned(const struct dive *dive, bool planned) {
const struct divecomputer *dc = &dive->dc;
while (dc) {
if (is_dc_planner(&dive->dc) == planned)
return true;
dc = dc->next;
}
return false;
}
/*
* Merging two dives can be subtle, because there's two different ways
* of merging:

View file

@ -653,6 +653,8 @@ extern void vpmb_start_gradient(struct deco_state *ds);
extern void vpmb_next_gradient(struct deco_state *ds, double deco_time, double surface_pressure);
extern double tissue_tolerance_calc(struct deco_state *ds, const struct dive *dive, double pressure);
extern bool is_dc_planner(const struct divecomputer *dc);
extern bool has_planned(const struct dive *dive, bool planned);
/* this should be converted to use our types */
struct divedatapoint {