int grams;
} weight_t;
-typedef struct {
+struct gasmix {
fraction_t o2;
fraction_t he;
-} gasmix_t;
+};
typedef struct {
volume_t size;
typedef struct {
cylinder_type_t type;
- gasmix_t gasmix;
+ struct gasmix gasmix;
pressure_t start, end;
} cylinder_t;
depth_t visibility;
temperature_t airtemp, watertemp;
cylinder_t cylinder[MAX_CYLINDERS];
- int samples;
+ int samples, alloc_samples;
struct sample sample[];
};
return sizeof(struct dive) + samples*sizeof(struct sample);
}
+extern time_t utc_mktime(struct tm *tm);
+
+extern struct dive *alloc_dive(void);
+extern void record_dive(struct dive *dive);
+
+extern struct sample *prepare_sample(struct dive **divep);
+extern void finish_sample(struct dive *dive, struct sample *sample);
+
+extern void report_dives(void);
extern struct dive *fixup_dive(struct dive *dive);
extern struct dive *try_to_merge(struct dive *a, struct dive *b);