summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/dive.c3
-rw-r--r--core/pref.h1
-rw-r--r--core/subsurface-qt/SettingsObjectWrapper.cpp14
-rw-r--r--core/subsurface-qt/SettingsObjectWrapper.h4
-rw-r--r--core/subsurfacestartup.c1
5 files changed, 21 insertions, 2 deletions
diff --git a/core/dive.c b/core/dive.c
index 6d5ba1dbb..c4f5dd778 100644
--- a/core/dive.c
+++ b/core/dive.c
@@ -3653,9 +3653,8 @@ fraction_t best_o2(depth_t depth, struct dive *dive)
fraction_t best_He(depth_t depth, struct dive *dive)
{
fraction_t fhe;
- int ead = 30000; //this should be user-configurable
int pnarcotic, ambient;
- pnarcotic = depth_to_mbar(ead, dive);
+ pnarcotic = depth_to_mbar(prefs.bestmixead, dive);
ambient = depth_to_mbar(depth.mm, dive);
fhe.permille = (100 - 100 * pnarcotic / ambient) * 10; //use integer arithmetic to round up to nearest percent
if (fhe.permille < 0)
diff --git a/core/pref.h b/core/pref.h
index be684fd90..be343796a 100644
--- a/core/pref.h
+++ b/core/pref.h
@@ -92,6 +92,7 @@ struct preferences {
int descrate;
int bottompo2;
int decopo2;
+ int bestmixead;
int proxy_type;
char *proxy_host;
int proxy_port;
diff --git a/core/subsurface-qt/SettingsObjectWrapper.cpp b/core/subsurface-qt/SettingsObjectWrapper.cpp
index ed305ef28..eeb4c96c2 100644
--- a/core/subsurface-qt/SettingsObjectWrapper.cpp
+++ b/core/subsurface-qt/SettingsObjectWrapper.cpp
@@ -915,6 +915,11 @@ int DivePlannerSettings::decopo2() const
return prefs.decopo2;
}
+int DivePlannerSettings::bestmixead() const
+{
+ return prefs.bestmixead;
+}
+
int DivePlannerSettings::reserveGas() const
{
return prefs.reserve_gas;
@@ -1089,6 +1094,15 @@ void DivePlannerSettings::setDecopo2(int value)
emit decopo2Changed(value);
}
+void DivePlannerSettings::setBestmixead(int value)
+{
+ QSettings s;
+ s.beginGroup(group);
+ s.setValue("bestmixead", value);
+ prefs.bestmixead = value;
+ emit bestmixeadChanged(value);
+}
+
void DivePlannerSettings::setReserveGas(int value)
{
QSettings s;
diff --git a/core/subsurface-qt/SettingsObjectWrapper.h b/core/subsurface-qt/SettingsObjectWrapper.h
index f115e2d86..b4b898a3d 100644
--- a/core/subsurface-qt/SettingsObjectWrapper.h
+++ b/core/subsurface-qt/SettingsObjectWrapper.h
@@ -327,6 +327,7 @@ class DivePlannerSettings : public QObject {
Q_PROPERTY(int descrate READ descrate WRITE setDescrate NOTIFY descrateChanged)
Q_PROPERTY(int bottompo2 READ bottompo2 WRITE setBottompo2 NOTIFY bottompo2Changed)
Q_PROPERTY(int decopo2 READ decopo2 WRITE setDecopo2 NOTIFY decopo2Changed)
+ Q_PROPERTY(int bestmixead READ bestmixead WRITE setBestmixead NOTIFY bestmixeadChanged)
Q_PROPERTY(int reserve_gas READ reserveGas WRITE setReserveGas NOTIFY reserveGasChanged)
Q_PROPERTY(int min_switch_duration READ minSwitchDuration WRITE setMinSwitchDuration NOTIFY minSwitchDurationChanged)
Q_PROPERTY(int bottomsac READ bottomSac WRITE setBottomSac NOTIFY bottomSacChanged)
@@ -352,6 +353,7 @@ public:
int descrate() const;
int bottompo2() const;
int decopo2() const;
+ int bestmixead() const;
int reserveGas() const;
int minSwitchDuration() const;
int bottomSac() const;
@@ -376,6 +378,7 @@ public slots:
void setDescrate(int value);
void setBottompo2(int value);
void setDecopo2(int value);
+ void setBestmixead(int value);
void setReserveGas(int value);
void setMinSwitchDuration(int value);
void setBottomSac(int value);
@@ -400,6 +403,7 @@ signals:
void descrateChanged(int value);
void bottompo2Changed(int value);
void decopo2Changed(int value);
+ void bestmixeadChanged(int value);
void reserveGasChanged(int value);
void minSwitchDurationChanged(int value);
void bottomSacChanged(int value);
diff --git a/core/subsurfacestartup.c b/core/subsurfacestartup.c
index c2881a17f..f58efb114 100644
--- a/core/subsurfacestartup.c
+++ b/core/subsurfacestartup.c
@@ -52,6 +52,7 @@ struct preferences default_prefs = {
.descrate = 18000 / 60,
.bottompo2 = 1400,
.decopo2 = 1600,
+ .bestmixead = 30000,
.doo2breaks = false,
.drop_stone_mode = false,
.switch_at_req_stop = false,