| 
									
										
										
										
											2017-04-27 20:18:03 +02:00
										 |  |  | // SPDX-License-Identifier: GPL-2.0
 | 
					
						
							| 
									
										
										
										
											2013-01-10 17:26:10 -08:00
										 |  |  | #ifndef PREF_H
 | 
					
						
							|  |  |  | #define PREF_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-01 13:51:49 +03:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							| 
									
										
										
										
											2017-11-24 11:51:13 +01:00
										 |  |  | #else
 | 
					
						
							|  |  |  | #include <stdbool.h>
 | 
					
						
							| 
									
										
										
										
											2013-04-01 13:51:49 +03:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-26 14:01:31 -03:00
										 |  |  | #include "units.h"
 | 
					
						
							| 
									
										
										
										
											2015-07-01 12:32:46 -07:00
										 |  |  | #include "taxonomy.h"
 | 
					
						
							| 
									
										
										
										
											2014-06-26 14:01:31 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-27 20:09:57 -08:00
										 |  |  | typedef struct | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2017-11-19 09:46:19 +01:00
										 |  |  | 	bool po2; | 
					
						
							|  |  |  | 	bool pn2; | 
					
						
							|  |  |  | 	bool phe; | 
					
						
							| 
									
										
										
										
											2017-03-24 19:11:31 +01:00
										 |  |  | 	double po2_threshold_min; | 
					
						
							|  |  |  | 	double po2_threshold_max; | 
					
						
							| 
									
										
										
										
											2013-01-10 17:26:10 -08:00
										 |  |  | 	double pn2_threshold; | 
					
						
							|  |  |  | 	double phe_threshold; | 
					
						
							|  |  |  | } partial_pressure_graphs_t; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-23 21:45:06 -02:00
										 |  |  | typedef struct { | 
					
						
							| 
									
										
										
										
											2017-11-18 19:57:50 +01:00
										 |  |  | 	const char *access_token; | 
					
						
							|  |  |  | 	const char *user_id; | 
					
						
							|  |  |  | 	const char *album_id; | 
					
						
							| 
									
										
										
										
											2014-12-23 21:45:06 -02:00
										 |  |  | } facebook_prefs_t; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-22 18:44:05 -03:00
										 |  |  | typedef struct { | 
					
						
							| 
									
										
										
										
											2015-07-01 12:32:46 -07:00
										 |  |  | 	enum taxonomy_category category[3]; | 
					
						
							| 
									
										
										
										
											2015-06-22 18:44:05 -03:00
										 |  |  | } geocoding_prefs_t; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-22 16:55:03 -02:00
										 |  |  | typedef struct { | 
					
						
							|  |  |  | 	const char *language; | 
					
						
							| 
									
										
										
										
											2016-09-20 12:35:49 -07:00
										 |  |  | 	const char *lang_locale; | 
					
						
							| 
									
										
										
										
											2016-01-22 16:55:03 -02:00
										 |  |  | 	bool use_system_language; | 
					
						
							|  |  |  | } locale_prefs_t; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 23:07:58 +02:00
										 |  |  | enum deco_mode { | 
					
						
							|  |  |  | 	BUEHLMANN, | 
					
						
							|  |  |  | 	RECREATIONAL, | 
					
						
							|  |  |  | 	VPMB | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-10 15:50:00 -03:00
										 |  |  | typedef struct { | 
					
						
							|  |  |  | 	bool dont_check_for_updates; | 
					
						
							| 
									
										
										
										
											2016-08-27 12:26:13 -07:00
										 |  |  | 	bool dont_check_exists; | 
					
						
							| 
									
										
										
										
											2017-11-18 19:57:50 +01:00
										 |  |  | 	const char *last_version_used; | 
					
						
							|  |  |  | 	const char *next_check; | 
					
						
							| 
									
										
										
										
											2016-08-10 15:50:00 -03:00
										 |  |  | } update_manager_prefs_t; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-10 18:10:15 -03:00
										 |  |  | typedef struct { | 
					
						
							| 
									
										
										
										
											2017-11-18 19:57:50 +01:00
										 |  |  | 	const char *vendor; | 
					
						
							|  |  |  | 	const char *product; | 
					
						
							|  |  |  | 	const char *device; | 
					
						
							|  |  |  | 	const char *device_name; | 
					
						
							| 
									
										
										
										
											2016-08-10 18:10:15 -03:00
										 |  |  | 	int download_mode; | 
					
						
							|  |  |  | } dive_computer_prefs_t; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-10 17:26:10 -08:00
										 |  |  | struct preferences { | 
					
						
							| 
									
										
										
										
											2013-05-28 11:21:27 -07:00
										 |  |  | 	const char *divelist_font; | 
					
						
							|  |  |  | 	const char *default_filename; | 
					
						
							| 
									
										
										
										
											2013-11-23 15:34:17 -08:00
										 |  |  | 	const char *default_cylinder; | 
					
						
							| 
									
										
										
										
											2015-06-15 05:52:12 -07:00
										 |  |  | 	const char *cloud_base_url; | 
					
						
							|  |  |  | 	const char *cloud_git_url; | 
					
						
							| 
									
										
										
										
											2015-10-29 16:57:43 -07:00
										 |  |  | 	const char *time_format; | 
					
						
							|  |  |  | 	const char *date_format; | 
					
						
							|  |  |  | 	const char *date_format_short; | 
					
						
							|  |  |  | 	bool time_format_override; | 
					
						
							|  |  |  | 	bool date_format_override; | 
					
						
							| 
									
										
										
										
											2013-05-28 11:21:27 -07:00
										 |  |  | 	double font_size; | 
					
						
							| 
									
										
										
										
											2013-01-10 17:26:10 -08:00
										 |  |  | 	partial_pressure_graphs_t pp_graphs; | 
					
						
							| 
									
										
										
										
											2017-11-19 09:46:19 +01:00
										 |  |  | 	bool mod; | 
					
						
							| 
									
										
										
										
											2014-06-22 16:41:44 +02:00
										 |  |  | 	double modpO2; | 
					
						
							| 
									
										
										
										
											2017-11-19 09:46:19 +01:00
										 |  |  | 	bool ead; | 
					
						
							|  |  |  | 	bool dcceiling; | 
					
						
							|  |  |  | 	bool redceiling; | 
					
						
							|  |  |  | 	bool calcceiling; | 
					
						
							|  |  |  | 	bool calcceiling3m; | 
					
						
							|  |  |  | 	bool calcalltissues; | 
					
						
							|  |  |  | 	bool calcndltts; | 
					
						
							| 
									
										
										
										
											2013-05-28 11:21:27 -07:00
										 |  |  | 	short gflow; | 
					
						
							|  |  |  | 	short gfhigh; | 
					
						
							| 
									
										
										
										
											2014-07-21 19:10:31 -03:00
										 |  |  | 	int animation_speed; | 
					
						
							| 
									
										
										
										
											2013-11-20 16:11:22 +01:00
										 |  |  | 	bool gf_low_at_maxdepth; | 
					
						
							| 
									
										
										
										
											2015-01-05 09:20:26 +02:00
										 |  |  | 	bool show_ccr_setpoint; | 
					
						
							| 
									
										
										
										
											2015-01-20 20:13:53 +02:00
										 |  |  | 	bool show_ccr_sensors; | 
					
						
							| 
									
										
										
										
											2017-11-19 09:46:19 +01:00
										 |  |  | 	bool display_invalid_dives; | 
					
						
							| 
									
										
										
										
											2013-06-03 21:08:49 +09:00
										 |  |  | 	short unit_system; | 
					
						
							| 
									
										
										
										
											2013-05-28 11:21:27 -07:00
										 |  |  | 	struct units units; | 
					
						
							| 
									
										
										
										
											2015-05-20 12:25:46 +02:00
										 |  |  | 	bool coordinates_traditional; | 
					
						
							| 
									
										
										
										
											2017-11-19 09:46:19 +01:00
										 |  |  | 	bool show_sac; | 
					
						
							|  |  |  | 	bool display_unused_tanks; | 
					
						
							|  |  |  | 	bool show_average_depth; | 
					
						
							|  |  |  | 	bool zoomed_plot; | 
					
						
							|  |  |  | 	bool hrgraph; | 
					
						
							|  |  |  | 	bool percentagegraph; | 
					
						
							|  |  |  | 	bool rulergraph; | 
					
						
							|  |  |  | 	bool tankbar; | 
					
						
							|  |  |  | 	bool save_userid_local; | 
					
						
							| 
									
										
										
										
											2017-11-18 19:57:50 +01:00
										 |  |  | 	const char *userid; | 
					
						
							| 
									
										
										
										
											2015-08-23 16:00:02 +02:00
										 |  |  | 	int ascrate75; // All rates in mm / sec
 | 
					
						
							| 
									
										
										
										
											2014-06-25 00:08:36 +02:00
										 |  |  | 	int ascrate50; | 
					
						
							|  |  |  | 	int ascratestops; | 
					
						
							|  |  |  | 	int ascratelast6m; | 
					
						
							|  |  |  | 	int descrate; | 
					
						
							| 
									
										
										
										
											2017-02-11 20:24:18 +01:00
										 |  |  | 	int sacfactor; | 
					
						
							|  |  |  | 	int problemsolvingtime; | 
					
						
							| 
									
										
										
										
											2014-06-25 00:08:36 +02:00
										 |  |  | 	int bottompo2; | 
					
						
							|  |  |  | 	int decopo2; | 
					
						
							| 
									
										
										
										
											2016-11-01 17:00:06 +01:00
										 |  |  | 	enum deco_mode display_deco_mode; | 
					
						
							| 
									
										
										
										
											2016-07-06 22:40:31 +10:00
										 |  |  | 	depth_t bestmixend; | 
					
						
							| 
									
										
										
										
											2014-06-26 20:16:55 +04:00
										 |  |  | 	int proxy_type; | 
					
						
							| 
									
										
										
										
											2017-11-18 19:57:50 +01:00
										 |  |  | 	const char *proxy_host; | 
					
						
							| 
									
										
										
										
											2014-06-26 20:16:55 +04:00
										 |  |  | 	int proxy_port; | 
					
						
							| 
									
										
										
										
											2017-11-19 09:46:19 +01:00
										 |  |  | 	bool proxy_auth; | 
					
						
							| 
									
										
										
										
											2017-11-18 19:57:50 +01:00
										 |  |  | 	const char *proxy_user; | 
					
						
							|  |  |  | 	const char *proxy_pass; | 
					
						
							| 
									
										
										
										
											2014-07-02 22:07:38 +02:00
										 |  |  | 	bool doo2breaks; | 
					
						
							| 
									
										
										
										
											2014-07-09 23:37:30 +02:00
										 |  |  | 	bool drop_stone_mode; | 
					
						
							| 
									
										
										
										
											2015-08-23 16:00:02 +02:00
										 |  |  | 	bool last_stop;   // At 6m?
 | 
					
						
							| 
									
										
										
										
											2015-03-24 11:57:22 -10:00
										 |  |  | 	bool verbatim_plan; | 
					
						
							|  |  |  | 	bool display_runtime; | 
					
						
							|  |  |  | 	bool display_duration; | 
					
						
							|  |  |  | 	bool display_transitions; | 
					
						
							| 
									
										
										
										
											2017-09-18 16:10:47 +02:00
										 |  |  | 	bool display_variations; | 
					
						
							| 
									
										
										
										
											2015-04-02 10:32:14 +02:00
										 |  |  | 	bool safetystop; | 
					
						
							| 
									
										
										
										
											2015-06-22 21:48:42 +10:00
										 |  |  | 	bool switch_at_req_stop; | 
					
						
							| 
									
										
										
										
											2015-04-09 17:41:41 +02:00
										 |  |  | 	int reserve_gas; | 
					
						
							| 
									
										
										
										
											2015-06-19 20:25:03 +10:00
										 |  |  | 	int min_switch_duration; // seconds
 | 
					
						
							| 
									
										
										
										
											2014-07-16 17:32:06 -10:00
										 |  |  | 	int bottomsac; | 
					
						
							|  |  |  | 	int decosac; | 
					
						
							| 
									
										
										
										
											2014-10-24 16:40:21 +02:00
										 |  |  | 	int o2consumption; // ml per min
 | 
					
						
							|  |  |  | 	int pscr_ratio; // dump ratio times 1000
 | 
					
						
							| 
									
										
										
										
											2015-01-01 17:00:46 +01:00
										 |  |  | 	int defaultsetpoint; // default setpoint in mbar
 | 
					
						
							| 
									
										
										
										
											2014-07-10 13:50:49 -03:00
										 |  |  | 	bool show_pictures_in_profile; | 
					
						
							| 
									
										
										
										
											2014-07-16 18:40:49 -03:00
										 |  |  | 	bool use_default_file; | 
					
						
							| 
									
										
										
										
											2015-06-14 08:17:06 -07:00
										 |  |  | 	short default_file_behavior; | 
					
						
							| 
									
										
										
										
											2014-12-23 21:45:06 -02:00
										 |  |  | 	facebook_prefs_t facebook; | 
					
						
							| 
									
										
										
										
											2017-11-18 19:57:50 +01:00
										 |  |  | 	const char *cloud_storage_password; | 
					
						
							|  |  |  | 	const char *cloud_storage_newpassword; | 
					
						
							|  |  |  | 	const char *cloud_storage_email; | 
					
						
							|  |  |  | 	const char *cloud_storage_email_encoded; | 
					
						
							| 
									
										
										
										
											2015-05-31 17:42:12 -07:00
										 |  |  | 	bool save_password_local; | 
					
						
							| 
									
										
										
										
											2015-06-14 13:50:13 -07:00
										 |  |  | 	short cloud_verification_status; | 
					
						
							| 
									
										
										
										
											2015-06-12 11:48:56 -07:00
										 |  |  | 	bool cloud_background_sync; | 
					
						
							| 
									
										
										
										
											2015-06-22 18:44:05 -03:00
										 |  |  | 	geocoding_prefs_t geocoding; | 
					
						
							| 
									
										
										
										
											2017-01-07 03:11:19 +01:00
										 |  |  | 	enum deco_mode planner_deco_mode; | 
					
						
							| 
									
										
										
										
											2016-09-24 18:02:07 +10:00
										 |  |  | 	short vpmb_conservatism; | 
					
						
							| 
									
										
										
										
											2015-11-14 09:10:06 -08:00
										 |  |  | 	int time_threshold; | 
					
						
							|  |  |  | 	int distance_threshold; | 
					
						
							| 
									
										
										
										
											2015-12-27 08:31:08 -08:00
										 |  |  | 	bool git_local_only; | 
					
						
							| 
									
										
										
										
											2016-07-23 12:54:30 +09:00
										 |  |  | 	short cloud_timeout; | 
					
						
							| 
									
										
										
										
											2016-01-22 16:55:03 -02:00
										 |  |  | 	locale_prefs_t locale; //: TODO: move the rest of locale based info here.
 | 
					
						
							| 
									
										
										
										
											2016-08-10 15:50:00 -03:00
										 |  |  | 	update_manager_prefs_t update_manager; | 
					
						
							| 
									
										
										
										
											2016-08-10 18:10:15 -03:00
										 |  |  | 	dive_computer_prefs_t dive_computer; | 
					
						
							| 
									
										
										
										
											2013-01-10 17:26:10 -08:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2014-02-27 20:09:57 -08:00
										 |  |  | enum unit_system_values { | 
					
						
							|  |  |  | 	METRIC, | 
					
						
							|  |  |  | 	IMPERIAL, | 
					
						
							|  |  |  | 	PERSONALIZE | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2013-01-10 17:26:10 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-14 08:17:06 -07:00
										 |  |  | enum def_file_behavior { | 
					
						
							|  |  |  | 	UNDEFINED_DEFAULT_FILE, | 
					
						
							|  |  |  | 	LOCAL_DEFAULT_FILE, | 
					
						
							|  |  |  | 	NO_DEFAULT_FILE, | 
					
						
							|  |  |  | 	CLOUD_DEFAULT_FILE | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-14 13:50:13 -07:00
										 |  |  | enum cloud_status { | 
					
						
							|  |  |  | 	CS_UNKNOWN, | 
					
						
							|  |  |  | 	CS_INCORRECT_USER_PASSWD, | 
					
						
							|  |  |  | 	CS_NEED_TO_VERIFY, | 
					
						
							| 
									
										
										
										
											2017-08-03 14:55:09 +02:00
										 |  |  | 	CS_VERIFIED, | 
					
						
							|  |  |  | 	CS_NOCLOUD | 
					
						
							| 
									
										
										
										
											2015-06-14 13:50:13 -07:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-04 17:55:25 +01:00
										 |  |  | extern struct preferences prefs, default_prefs, git_prefs; | 
					
						
							| 
									
										
										
										
											2013-01-10 17:26:10 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define PP_GRAPHS_ENABLED (prefs.pp_graphs.po2 || prefs.pp_graphs.pn2 || prefs.pp_graphs.phe)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-22 15:22:02 -07:00
										 |  |  | extern const char *system_divelist_default_font; | 
					
						
							| 
									
										
										
										
											2014-08-27 06:00:10 -07:00
										 |  |  | extern double system_divelist_default_font_size; | 
					
						
							| 
									
										
										
										
											2015-02-08 11:35:50 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | extern const char *system_default_directory(void); | 
					
						
							| 
									
										
										
										
											2013-01-11 17:07:22 -08:00
										 |  |  | extern const char *system_default_filename(); | 
					
						
							| 
									
										
										
										
											2014-08-27 06:00:10 -07:00
										 |  |  | extern bool subsurface_ignore_font(const char *font); | 
					
						
							| 
									
										
										
										
											2014-08-22 15:22:02 -07:00
										 |  |  | extern void subsurface_OS_pref_setup(); | 
					
						
							| 
									
										
										
										
											2017-11-25 09:22:19 +01:00
										 |  |  | extern void copy_prefs(struct preferences *src, struct preferences *dest); | 
					
						
							| 
									
										
										
										
											2013-01-11 10:14:10 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-01 13:51:49 +03:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-11 19:14:46 +01:00
										 |  |  | #endif // PREF_H
 |