diff options
Diffstat (limited to 'pref.h')
-rw-r--r-- | pref.h | 54 |
1 files changed, 54 insertions, 0 deletions
@@ -0,0 +1,54 @@ +#ifndef PREF_H +#define PREF_H + +typedef struct { + gboolean cylinder; + gboolean temperature; + gboolean totalweight; + gboolean suit; + gboolean nitrox; + gboolean sac; + gboolean otu; + gboolean maxcns; +} visible_cols_t; + +typedef struct { + gboolean po2; + gboolean pn2; + gboolean phe; + double po2_threshold; + double pn2_threshold; + double phe_threshold; +} partial_pressure_graphs_t; + +struct preferences { + struct units units; + visible_cols_t visible_cols; + partial_pressure_graphs_t pp_graphs; + gboolean profile_red_ceiling; + gboolean profile_calc_ceiling; + gboolean calc_ceiling_3m_incr; + double gflow; + double gfhigh; +}; + +extern struct preferences prefs, default_prefs; + +#define PP_GRAPHS_ENABLED (prefs.pp_graphs.po2 || prefs.pp_graphs.pn2 || prefs.pp_graphs.phe) + +typedef enum { + PREF_BOOL, + PREF_STRING +} pref_type_t; + +#define BOOL_TO_PTR(_cond) ((_cond) ? (void *)1 : NULL) +#define PTR_TO_BOOL(_ptr) ((_ptr) != NULL) + +extern void subsurface_open_conf(void); +extern void subsurface_set_conf(char *name, pref_type_t type, const void *value); +extern void subsurface_unset_conf(char *name); +extern const void *subsurface_get_conf(char *name, pref_type_t type); +extern void subsurface_flush_conf(void); +extern void subsurface_close_conf(void); + +#endif /* PREF_H */ |