<feed xmlns='http://www.w3.org/2005/Atom'>
<title>subsurface.git/core, branch v4.9.2</title>
<subtitle>forked from https://github.com/subsurface/subsurface</subtitle>
<id>https://git.tsegers.com/subsurface.git/atom?h=v4.9.2</id>
<link rel='self' href='https://git.tsegers.com/subsurface.git/atom?h=v4.9.2'/>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/'/>
<updated>2019-08-24T22:02:50Z</updated>
<entry>
<title>Update libdivecomputer to support the Aqualung i200c</title>
<updated>2019-08-24T22:02:50Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2019-08-24T21:10:25Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=d570cb789f4960b890b045a1512b0350dad5a795'/>
<id>urn:sha1:d570cb789f4960b890b045a1512b0350dad5a795</id>
<content type='text'>
I got confirmation from Tiago Thedim Dias that my libdivecomputer patch
makes BLE downloading work from the i200c, and already pushed out the
libdivecomputer changes earlier.  This updates the subproject in
subsurface to have those changes.

This also adds the bluetooth name patterns for the i300c and a few other
Aqualung dive computers we hadn't added yet.  That should make them show
up in the bleutooth device list even without having to check the "Show
all bluetooth devices" check-box.

Tiago claims he didn't need that, and I wonder if we have some overly
permissive match somewhere, but it's the right thing to do regardless.

Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Grantlee: generate vector of cylinder data on-demand</title>
<updated>2019-08-22T17:13:40Z</updated>
<author>
<name>Berthold Stoeger</name>
<email>bstoeger@mail.tuwien.ac.at</email>
</author>
<published>2019-08-12T16:43:21Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=e6cd4f8ae5d8b0bbc8e517b88d4ddc6045657227'/>
<id>urn:sha1:e6cd4f8ae5d8b0bbc8e517b88d4ddc6045657227</id>
<content type='text'>
Instead of generating cylinder data in the form of
CylinderObjectHelper objects for every DiveObjectHelper,
generate it only if needed. DiveObjectHelper is used extensively
in the mobile interface, which doesn't use the cylinder data.
Let's not generate unnecessary CylinderObjectHelpers in this
case!

Signed-off-by: Berthold Stoeger &lt;bstoeger@mail.tuwien.ac.at&gt;
</content>
</entry>
<entry>
<title>Cleanup: turn CylinderObjectHelper into value type</title>
<updated>2019-08-22T17:13:40Z</updated>
<author>
<name>Berthold Stoeger</name>
<email>bstoeger@mail.tuwien.ac.at</email>
</author>
<published>2019-08-12T16:26:42Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=f25fa2adc5dd37aca17335d8278fd00e39e9b733'/>
<id>urn:sha1:f25fa2adc5dd37aca17335d8278fd00e39e9b733</id>
<content type='text'>
CylinderObjectHelper is used for structured formatting of cylinder
values in grantlee types. Instead of keeping a reference to a
cylinder, turn it into a value type containing the formatted strings.

This should be distinctly safer, as we don't risk having stale
references flying around. Moreover, we don't have to use pointers
but can use containers containing plain CylinderObjectHelper. Thus,
no explicit memory management is needed, making the code distinctly
easier to understand.

Sadly, currently grantlee does not support Q_GADGET based Q_PROPERTY.
Therefore a GRANTLEE_*_LOOKUP block has to be added. This can be
removed in due course, as a patch to remedy this issue is in current
grantlee master.

Signed-off-by: Berthold Stoeger &lt;bstoeger@mail.tuwien.ac.at&gt;
</content>
</entry>
<entry>
<title>Cleanup: don't include dive.h in CylinderObjectHelper.hpp</title>
<updated>2019-08-22T17:13:40Z</updated>
<author>
<name>Berthold Stoeger</name>
<email>bstoeger@mail.tuwien.ac.at</email>
</author>
<published>2019-08-12T16:14:14Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=0d045f8c1470e011e0beff0ff0b0ec85975272e6'/>
<id>urn:sha1:0d045f8c1470e011e0beff0ff0b0ec85975272e6</id>
<content type='text'>
This only needs the declaration of cylinder_t, which is
found in equipment.h

Signed-off-by: Berthold Stoeger &lt;bstoeger@mail.tuwien.ac.at&gt;
</content>
</entry>
<entry>
<title>Replace table interpolation by two line fit for CNS</title>
<updated>2019-08-20T16:32:07Z</updated>
<author>
<name>Robert C. Helling</name>
<email>helling@atdotde.de</email>
</author>
<published>2019-08-17T19:46:00Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=a0912b38bd7b8f36c9c106a890820e24e70324ff'/>
<id>urn:sha1:a0912b38bd7b8f36c9c106a890820e24e70324ff</id>
<content type='text'>
We used a table lookup for CNS equivalent times. Turns
out the log of this table falls pretty much on a straight
line for po2 &lt;= 1.5bar. We now fit this tabel two two
lines, one for &lt;= 1.5 bar and one above. This four
parameter fit has half the sum of errors squared
than the five parameter fit using a fourth order
polynomial.

Fitting the log has the advantage that this never
crosses 0, which would have the bad effect of
resulting in negative CNS values as we divide
by the table value.

We don't adopt a maximum pO2 cut-off for the CNS calculation
but rather live with the large values that the interpolation
formula produces when extrapolating.

Signed-off-by: Robert C. Helling &lt;helling@atdotde.de&gt;
</content>
</entry>
<entry>
<title>Fix the dive site XML saving</title>
<updated>2019-08-19T19:28:20Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2019-08-19T18:21:57Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=8c408da9abcc001b0aa469e56818dde542897db0'/>
<id>urn:sha1:8c408da9abcc001b0aa469e56818dde542897db0</id>
<content type='text'>
It turns out that the dive site saving was subtly but horribly buggy.
To save the value of the dive site, it did

    show_utf8_blanked(b, t-&gt;value, " value='", "'/&gt;\n", 1, anonymize);

which looks sane on the face of it, but the problem is that it puts the
final closing xml marker in the 'append this at the end' case.

That means that if the value is empty, the value won't be saved, but
neither will the closing tag.  Resulting in an xml line that looks like
this:

  &lt;geo cat='3' origin='0'  &lt;geo cat='5' origin='0' value='Other name'/&gt;

where the first geo tag was saved without the ending marker.

That then makes all the xml nesting entirely wrong, and the whole file
fails to save.

Now, the code around it does check that 't-&gt;value' is not NULL, but it
doesn't check for a value that is empty or all spaces (which also will
make 'show_utf8()' just skip it.

Fix it by saving the end marker separately:

    show_utf8_blanked(b, t-&gt;value, " value='", "'", 1, anonymize);
    put_format(b, "/&gt;\n");

so that the xml is valid even if the goe marker value wasn'r.

Reported-by: Bob Barker &lt;barkerb1965@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Add BLE name recognition for the Deepblu Cosmiq+</title>
<updated>2019-08-18T20:28:48Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2019-08-17T22:17:50Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=25db28b905c96378d6e046eea6e57079b3d401d8'/>
<id>urn:sha1:25db28b905c96378d6e046eea6e57079b3d401d8</id>
<content type='text'>
It needs a newer version of libdivecomputer to actually download, but
early very experimental code exists in the Subsurface-NG branch.

Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>DiveObjectHelper: warn if object is generated from the null pointer</title>
<updated>2019-08-12T23:28:49Z</updated>
<author>
<name>Berthold Stoeger</name>
<email>bstoeger@mail.tuwien.ac.at</email>
</author>
<published>2019-08-12T22:00:35Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=62cbfc332542b09dc4d7d82f7b1ee61bdde6d800'/>
<id>urn:sha1:62cbfc332542b09dc4d7d82f7b1ee61bdde6d800</id>
<content type='text'>
Signed-off-by: Berthold Stoeger &lt;bstoeger@mail.tuwien.ac.at&gt;
</content>
</entry>
<entry>
<title>DiveObjectHelper: remove default argument</title>
<updated>2019-08-12T23:28:49Z</updated>
<author>
<name>Berthold Stoeger</name>
<email>bstoeger@mail.tuwien.ac.at</email>
</author>
<published>2019-08-12T21:51:44Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=88119b356df1dcb2f97064d213f439b636276544'/>
<id>urn:sha1:88119b356df1dcb2f97064d213f439b636276544</id>
<content type='text'>
We don't support null-dives in DiveObjectHelper. Defaulting the
dive parameter to NULL seems to send the wrong message.

Signed-off-by: Berthold Stoeger &lt;bstoeger@mail.tuwien.ac.at&gt;
</content>
</entry>
<entry>
<title>Mobile: properly recognize single-weightsystem dives</title>
<updated>2019-08-11T19:23:33Z</updated>
<author>
<name>Berthold Stoeger</name>
<email>bstoeger@mail.tuwien.ac.at</email>
</author>
<published>2019-08-10T15:53:11Z</published>
<link rel='alternate' type='text/html' href='https://git.tsegers.com/subsurface.git/commit/?id=75be9e727d12ebd122f5dc96737248067afc9629'/>
<id>urn:sha1:75be9e727d12ebd122f5dc96737248067afc9629</id>
<content type='text'>
When removing the max-weightsystem restriction, the semantics of
the DiveObjectHelper::singleWeightSystem() function changed:
it now returned false for "no weightsystem". Change it back,
to 0 or 1 weightsystems, because the mobile frontend uses this
to check whether it can edit dive systems.

Signed-off-by: Berthold Stoeger &lt;bstoeger@mail.tuwien.ac.at&gt;
</content>
</entry>
</feed>
