]> git.tdb.fi Git - ext/subsurface.git/blobdiff - dive.c
Remove redundant duplicate pressure samples
[ext/subsurface.git] / dive.c
diff --git a/dive.c b/dive.c
index dad0e237bc8726f0c983ef73fdfa1d47fd8540c4..cd797d27663f6578ea32ea4cc2ae31a63037bde6 100644 (file)
--- a/dive.c
+++ b/dive.c
@@ -239,16 +239,26 @@ struct dive *fixup_dive(struct dive *dive)
        int i;
        double depthtime = 0;
        int lasttime = 0;
+       int lastindex = -1;
        int start = -1, end = -1;
        int maxdepth = 0, mintemp = 0;
        int lastdepth = 0;
-       int lasttemp = 0;
+       int lasttemp = 0, lastpressure = 0;
 
        for (i = 0; i < dive->samples; i++) {
                struct sample *sample = dive->sample + i;
                int time = sample->time.seconds;
                int depth = sample->depth.mm;
                int temp = sample->temperature.mkelvin;
+               int pressure = sample->cylinderpressure.mbar;
+               int index = sample->cylinderindex;
+
+               /* Remove duplicate redundant pressure information */
+               if (pressure == lastpressure && index == lastindex)
+                       sample->cylinderpressure.mbar = 0;
+
+               lastindex = index;
+               lastpressure = pressure;
 
                if (lastdepth)
                        end = time;