[PATCH] Air isn't special
subsurface at henrik.synth.no
subsurface at henrik.synth.no
Sun Jun 1 04:28:58 PDT 2014
From: Henrik Brautaset Aronsen <subsurface at henrik.synth.no>
The notion that air is special is a weird one. It clutters our code
base with special handling whenever o2 == 0 means AIR. (All my rec
dives are with EAN32. Why can't that be special instead? ;)
The only reason I see to treat air special is to leave out o2=21.0
in the dive log xml. So let's do it there instead (not included here).
Signed-off-by: Henrik Brautaset Aronsen <subsurface at henrik.synth.no>
---
dive.c | 13 ++++---------
planner.c | 3 ---
qt-ui/diveplanner.cpp | 2 +-
3 files changed, 5 insertions(+), 13 deletions(-)
diff --git a/dive.c b/dive.c
index 0d8f487..4e7a684 100644
--- a/dive.c
+++ b/dive.c
@@ -527,15 +527,10 @@ void sanitize_gasmix(struct gasmix *mix)
o2 = mix->o2.permille;
he = mix->he.permille;
- /* Regular air: leave empty */
- if (!he) {
- if (!o2)
- return;
- /* 20.8% to 21% O2 is just air */
- if (is_air(o2, he)) {
- mix->o2.permille = 0;
- return;
- }
+ /* Regular air: */
+ if (!he && !o2) {
+ mix->o2.permille = O2_IN_AIR;
+ return;
}
/* Sane mix? */
diff --git a/planner.c b/planner.c
index f062ee6..887a955 100644
--- a/planner.c
+++ b/planner.c
@@ -93,9 +93,6 @@ int get_gasidx(struct dive *dive, int o2, int he)
mix.o2.permille = o2;
mix.he.permille = he;
- /* we treat air as 0/0 because it is special */
- //if (is_air(o2, he))
- // o2 = 0;
while (++gasidx < MAX_CYLINDERS)
if (gasmix_distance(&dive->cylinder[gasidx].gasmix, &mix) < 200)
return gasidx;
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index 252c0ff..1d454ea 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -528,7 +528,7 @@ bool DivePlannerPointsModel::addGas(int o2, int he)
sanitize_gasmix(&mix);
if (is_air(o2, he))
- o2 = 0;
+ o2 = O2_IN_AIR;
for (int i = 0; i < MAX_CYLINDERS; i++) {
cylinder_t *cyl = &stagingDive->cylinder[i];
--
1.8.5.2 (Apple Git-48)
More information about the subsurface
mailing list