#ifndef PREF_H #define PREF_H #ifdef __cplusplus extern "C" { #endif /* can't use 'bool' for the boolean values - different size in C and C++ */ typedef struct { short cylinder; short temperature; short totalweight; short suit; short nitrox; short sac; short otu; short maxcns; } visible_cols_t; typedef struct { short po2; short pn2; short phe; double po2_threshold; double pn2_threshold; double phe_threshold; } partial_pressure_graphs_t; struct preferences { const char *divelist_font; const char *default_filename; double font_size; visible_cols_t visible_cols; partial_pressure_graphs_t pp_graphs; short mod; double mod_ppO2; short ead; short profile_dc_ceiling; short profile_red_ceiling; short profile_calc_ceiling; short calc_ceiling_3m_incr; short calc_all_tissues; short gflow; short gfhigh; int map_provider; short display_invalid_dives; short show_invalid; short unit_system; struct units units; short show_time; }; enum unit_system_values { METRIC, IMPERIAL, PERSONALIZE }; extern struct preferences prefs, default_prefs; #define PP_GRAPHS_ENABLED (prefs.pp_graphs.po2 || prefs.pp_graphs.pn2 || prefs.pp_graphs.phe) extern void subsurface_open_conf(void); extern void subsurface_set_conf(const char *name, const char *value); extern void subsurface_set_conf_bool(const char *name, bool value); extern void subsurface_set_conf_int(const char *name, int value); extern void subsurface_unset_conf(const char *name); extern const char *subsurface_get_conf(const char *name); extern int subsurface_get_conf_bool(const char *name); extern int subsurface_get_conf_int(const char *name); extern void subsurface_flush_conf(void); extern void subsurface_close_conf(void); extern const char system_divelist_default_font[]; extern const char *system_default_filename(); extern void load_preferences(void); extern void save_preferences(void); #ifdef __cplusplus } #endif #endif /* PREF_H */