Add weight system tracking

- supports multiple weight systems per dive
- supports multiple weight system types
- supports import of weight as tracked by DivingLog

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2011-12-23 19:41:16 -08:00
parent b5139aeb22
commit 854bd0269c
5 changed files with 648 additions and 47 deletions

20
dive.h
View file

@ -87,13 +87,29 @@ typedef struct {
pressure_t start, end, sample_start, sample_end;
} cylinder_t;
extern int cylinder_none(cylinder_t *cyl);
typedef struct {
weight_t weight;
const char *description; /* "integrated", "belt", "ankle" */
} weightsystem_t;
extern int cylinder_none(void *_data);
extern int weightsystem_none(void *_data);
extern int get_pressure_units(unsigned int mb, const char **units);
extern double get_depth_units(unsigned int mm, int *frac, const char **units);
extern double get_volume_units(unsigned int mm, int *frac, const char **units);
extern double get_temp_units(unsigned int mm, const char **units);
static inline double grams_to_lbs(int grams)
{
return grams / 453.6;
}
static inline int lbs_to_grams(double lbs)
{
return lbs * 453.6 + 0.5;
}
static inline double ml_to_cuft(int ml)
{
return ml / 28316.8466;
@ -194,6 +210,7 @@ struct event {
};
#define MAX_CYLINDERS (8)
#define MAX_WEIGHTSYSTEMS (4)
struct dive {
int number;
@ -208,6 +225,7 @@ struct dive {
depth_t visibility;
temperature_t airtemp, watertemp;
cylinder_t cylinder[MAX_CYLINDERS];
weightsystem_t weightsystem[MAX_WEIGHTSYSTEMS];
int sac, otu;
struct event *events;
int samples, alloc_samples;