diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2021-01-02 14:03:25 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2021-01-02 10:26:29 -0800 |
commit | fdde4c23ea570d3fdc25dd3a66019e4500c5982c (patch) | |
tree | 34c929c2aaa7d3b8cbd634d29c2ba152d3fd872e /core | |
parent | 91ffa5a59a32b7c2a6e61b0d00e9074d8a418331 (diff) | |
download | subsurface-fdde4c23ea570d3fdc25dd3a66019e4500c5982c.tar.gz |
cleanup: move pref related structs and functions to pref.c
These were declared in pref.h and defined in subsurfacestartup.c.
pref.c didn't even exist. Create it and move preferences-related
structs and functions there.
setup_system_prefs() is left in subsurfacestartup.c, since it
works with environment variables.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core')
-rw-r--r-- | core/CMakeLists.txt | 1 | ||||
-rw-r--r-- | core/pref.c | 128 | ||||
-rw-r--r-- | core/subsurfacestartup.c | 131 |
3 files changed, 133 insertions, 127 deletions
diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 9d92cc1d1..0d400931d 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -143,6 +143,7 @@ set(SUBSURFACE_CORE_LIB_SRCS planner.h plannernotes.c pref.h + pref.c profile.c profile.h qt-gui.h diff --git a/core/pref.c b/core/pref.c new file mode 100644 index 000000000..bc1f7f3ea --- /dev/null +++ b/core/pref.c @@ -0,0 +1,128 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "pref.h" +#include "subsurface-string.h" + +struct preferences prefs, git_prefs; +struct preferences default_prefs = { + .cloud_base_url = "https://cloud.subsurface-divelog.org/", + .units = SI_UNITS, + .unit_system = METRIC, + .coordinates_traditional = true, + .pp_graphs = { + .po2 = false, + .pn2 = false, + .phe = false, + .po2_threshold_min = 0.16, + .po2_threshold_max = 1.6, + .pn2_threshold = 4.0, + .phe_threshold = 13.0, + }, + .mod = false, + .modpO2 = 1.6, + .ead = false, + .hrgraph = false, + .percentagegraph = false, + .dcceiling = true, + .redceiling = false, + .calcceiling = false, + .calcceiling3m = false, + .calcndltts = false, + .decoinfo = true, + .gflow = 30, + .gfhigh = 75, + .animation_speed = 500, + .gf_low_at_maxdepth = false, + .show_ccr_setpoint = false, + .show_ccr_sensors = false, + .show_scr_ocpo2 = false, + .font_size = -1, + .mobile_scale = 1.0, + .display_invalid_dives = false, + .show_sac = false, + .display_unused_tanks = false, + .display_default_tank_infos = true, + .show_average_depth = true, + .show_icd = false, + .ascrate75 = 9000 / 60, + .ascrate50 = 9000 / 60, + .ascratestops = 9000 / 60, + .ascratelast6m = 9000 / 60, + .descrate = 18000 / 60, + .sacfactor = 400, + .problemsolvingtime = 4, + .bottompo2 = 1400, + .decopo2 = 1600, + .bestmixend.mm = 30000, + .doo2breaks = false, + .dobailout = false, + .drop_stone_mode = false, + .switch_at_req_stop = false, + .min_switch_duration = 60, + .surface_segment = 0, + .last_stop = false, + .verbatim_plan = false, + .display_runtime = true, + .display_duration = true, + .display_transitions = true, + .display_variations = false, + .o2narcotic = true, + .safetystop = true, + .bottomsac = 20000, + .decosac = 17000, + .reserve_gas=40000, + .o2consumption = 720, + .pscr_ratio = 100, + .show_pictures_in_profile = true, + .tankbar = false, + .defaultsetpoint = 1100, + .geocoding = { + .category = { 0 } + }, + .locale = { + .use_system_language = true, + }, + .planner_deco_mode = BUEHLMANN, + .vpmb_conservatism = 3, + .distance_threshold = 100, + .time_threshold = 300, +#if defined(SUBSURFACE_MOBILE) + .cloud_timeout = 10, +#else + .cloud_timeout = 5, +#endif + .auto_recalculate_thumbnails = true, + .extract_video_thumbnails = true, + .extract_video_thumbnails_position = 20, // The first fifth seems like a reasonable place +}; + +/* copy a preferences block, including making copies of all included strings */ +void copy_prefs(struct preferences *src, struct preferences *dest) +{ + *dest = *src; + dest->divelist_font = copy_string(src->divelist_font); + dest->default_filename = copy_string(src->default_filename); + dest->default_cylinder = copy_string(src->default_cylinder); + dest->cloud_base_url = copy_string(src->cloud_base_url); + dest->cloud_git_url = copy_string(src->cloud_git_url); + dest->proxy_host = copy_string(src->proxy_host); + dest->proxy_user = copy_string(src->proxy_user); + dest->proxy_pass = copy_string(src->proxy_pass); + dest->time_format = copy_string(src->time_format); + dest->date_format = copy_string(src->date_format); + dest->date_format_short = copy_string(src->date_format_short); + dest->cloud_storage_password = copy_string(src->cloud_storage_password); + dest->cloud_storage_email = copy_string(src->cloud_storage_email); + dest->cloud_storage_email_encoded = copy_string(src->cloud_storage_email_encoded); + dest->ffmpeg_executable = copy_string(src->ffmpeg_executable); +} + +/* + * Free strduped prefs before exit. + * + * These are not real leaks but they plug the holes found by eg. + * valgrind so you can find the real leaks. + */ +void free_prefs(void) +{ + // nop +} diff --git a/core/subsurfacestartup.c b/core/subsurfacestartup.c index a04be7290..32770c69f 100644 --- a/core/subsurfacestartup.c +++ b/core/subsurfacestartup.c @@ -2,108 +2,17 @@ #include "subsurfacestartup.h" #include "subsurface-string.h" #include "version.h" -#include <stdbool.h> -#include <string.h> #include "errorhelper.h" #include "gettext.h" #include "qthelper.h" #include "git-access.h" +#include "pref.h" #include "libdivecomputer/version.h" -extern void show_computer_list(); +#include <stdbool.h> +#include <string.h> -struct preferences prefs, git_prefs; -struct preferences default_prefs = { - .cloud_base_url = "https://cloud.subsurface-divelog.org/", - .units = SI_UNITS, - .unit_system = METRIC, - .coordinates_traditional = true, - .pp_graphs = { - .po2 = false, - .pn2 = false, - .phe = false, - .po2_threshold_min = 0.16, - .po2_threshold_max = 1.6, - .pn2_threshold = 4.0, - .phe_threshold = 13.0, - }, - .mod = false, - .modpO2 = 1.6, - .ead = false, - .hrgraph = false, - .percentagegraph = false, - .dcceiling = true, - .redceiling = false, - .calcceiling = false, - .calcceiling3m = false, - .calcndltts = false, - .decoinfo = true, - .gflow = 30, - .gfhigh = 75, - .animation_speed = 500, - .gf_low_at_maxdepth = false, - .show_ccr_setpoint = false, - .show_ccr_sensors = false, - .show_scr_ocpo2 = false, - .font_size = -1, - .mobile_scale = 1.0, - .display_invalid_dives = false, - .show_sac = false, - .display_unused_tanks = false, - .display_default_tank_infos = true, - .show_average_depth = true, - .show_icd = false, - .ascrate75 = 9000 / 60, - .ascrate50 = 9000 / 60, - .ascratestops = 9000 / 60, - .ascratelast6m = 9000 / 60, - .descrate = 18000 / 60, - .sacfactor = 400, - .problemsolvingtime = 4, - .bottompo2 = 1400, - .decopo2 = 1600, - .bestmixend.mm = 30000, - .doo2breaks = false, - .dobailout = false, - .drop_stone_mode = false, - .switch_at_req_stop = false, - .min_switch_duration = 60, - .surface_segment = 0, - .last_stop = false, - .verbatim_plan = false, - .display_runtime = true, - .display_duration = true, - .display_transitions = true, - .display_variations = false, - .o2narcotic = true, - .safetystop = true, - .bottomsac = 20000, - .decosac = 17000, - .reserve_gas=40000, - .o2consumption = 720, - .pscr_ratio = 100, - .show_pictures_in_profile = true, - .tankbar = false, - .defaultsetpoint = 1100, - .geocoding = { - .category = { 0 } - }, - .locale = { - .use_system_language = true, - }, - .planner_deco_mode = BUEHLMANN, - .vpmb_conservatism = 3, - .distance_threshold = 100, - .time_threshold = 300, -#if defined(SUBSURFACE_MOBILE) - .cloud_timeout = 10, -#else - .cloud_timeout = 5, -#endif - .auto_recalculate_thumbnails = true, - .extract_video_thumbnails = true, - .extract_video_thumbnails_position = 20, // The first fifth seems like a reasonable place -}; +extern void show_computer_list(); int quit, force_root, ignore_bt; #ifdef SUBSURFACE_MOBILE_DESKTOP @@ -317,35 +226,3 @@ void setup_system_prefs(void) default_prefs.units = IMPERIAL_units; } - -/* copy a preferences block, including making copies of all included strings */ -void copy_prefs(struct preferences *src, struct preferences *dest) -{ - *dest = *src; - dest->divelist_font = copy_string(src->divelist_font); - dest->default_filename = copy_string(src->default_filename); - dest->default_cylinder = copy_string(src->default_cylinder); - dest->cloud_base_url = copy_string(src->cloud_base_url); - dest->cloud_git_url = copy_string(src->cloud_git_url); - dest->proxy_host = copy_string(src->proxy_host); - dest->proxy_user = copy_string(src->proxy_user); - dest->proxy_pass = copy_string(src->proxy_pass); - dest->time_format = copy_string(src->time_format); - dest->date_format = copy_string(src->date_format); - dest->date_format_short = copy_string(src->date_format_short); - dest->cloud_storage_password = copy_string(src->cloud_storage_password); - dest->cloud_storage_email = copy_string(src->cloud_storage_email); - dest->cloud_storage_email_encoded = copy_string(src->cloud_storage_email_encoded); - dest->ffmpeg_executable = copy_string(src->ffmpeg_executable); -} - -/* - * Free strduped prefs before exit. - * - * These are not real leaks but they plug the holes found by eg. - * valgrind so you can find the real leaks. - */ -void free_prefs(void) -{ - // nop -} |