aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Subsurface-mobile.pro1
-rw-r--r--core/CMakeLists.txt1
-rw-r--r--core/pref.c128
-rw-r--r--core/subsurfacestartup.c131
4 files changed, 134 insertions, 127 deletions
diff --git a/Subsurface-mobile.pro b/Subsurface-mobile.pro
index 190270bec..d9ea5bc99 100644
--- a/Subsurface-mobile.pro
+++ b/Subsurface-mobile.pro
@@ -46,6 +46,7 @@ SOURCES += subsurface-mobile-main.cpp \
core/file.c \
core/fulltext.cpp \
core/subsurfacestartup.c \
+ core/pref.c \
core/profile.c \
core/device.cpp \
core/dive.c \
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
-}