subsurface/core
Linus Torvalds fe5f15bdc5 Add support for libdivecomputer using DC_SAMPLE_GASMIX
New libdivecomputer versions use DC_SAMPLE_GASMIX to indicate a gas
change (which contains the cylinder index we're changing to) rather than
SAMPLE_EVENT_GASCHANGE*.

Unlike the old GASCHANGE model, and despite the name, DC_SAMPLE_GASMIX
does not actually say what the mix is, it only specifies a cylinder
index.  We had already extended SAMPLE_EVENT_GASCHANGE2 to have the
cylinder index in the otherwise unused "flags" field, so this is not all
that different from what we used to do.

And subsurface internally already had the logic that "if we know what
the cylinder index is, take the gas mix from the cylinder data", so
we've already been able to transparently use _either_ the actual gas mix
or the cylinder index to show the event.

But we do want to make it an event rather than some sample data, because
we want to show it as such in the profile.  But because we are happy
with just the cylinder index, we'll just translate the DC_SAMPLE_GASMIX
thing to the SAMPLE_EVENT_GASCHANGE2 event, and nothing really changes
for subsurface.

libdivecomputer has made other changes, like indicating the initial
cylinder index with an early DC_SAMPLE_GASMIX report, but we've seen
that before too (in the form of early SAMPLE_EVENT_GASCHANGE events), so
that doesn't really end up changing anything for us either.

HOWEVER, one thing that is worth noticing: do *not* apply this patch and
then use an old libdivecomputer library that sends both the
DC_SAMPLE_GASMIX samples _and_ the deprecated SAMPLE_EVENT_GASCHANGE
events.  It will all *work*, but since subsurface will take either,
you'll then get duplicate gas mix events.

It's not like that is in any way fatal, but it might be a bit confusing.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-01-16 17:45:00 -08:00
..
subsurface-qt Rename prefs.deco_mode to prefs.planner_deco_mode 2017-01-06 20:43:23 -08:00
android.cpp android: Add a subsurface_user_is_root for android 2016-12-28 22:40:18 -08:00
checkcloudconnection.cpp Allow the user to give longer cloud timeout on the command line 2016-07-23 12:54:30 +09:00
checkcloudconnection.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
cloudstorage.cpp Use preferences object to correctly store cloud status 2016-07-23 12:53:37 +09:00
cloudstorage.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
CMakeLists.txt Revert "Add a simple cp2130 libusb driver" 2016-09-22 14:56:31 -07:00
cochran.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
cochran.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
color.cpp Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
color.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
compressibility.r Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
configuredivecomputer.cpp Rewrite libdivecomputer custom serial code 2016-09-17 15:47:37 -07:00
configuredivecomputer.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
configuredivecomputerthreads.cpp Use get_descriptor instead of hard-coded switch's 2016-12-28 22:40:18 -08:00
configuredivecomputerthreads.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
datatrak.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
datatrak.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
deco.c Fix deco_mode confusion 2017-01-06 20:43:23 -08:00
deco.h ToolTipItem: show gf line based on correct gradient factor preferences 2016-10-27 20:36:14 -07:00
device.c Second attempt to fix crash 2016-09-20 09:26:35 -07:00
device.h Fill in divecomputer serial number and firmware version on loading 2016-08-14 10:22:41 -07:00
devicedetails.cpp Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
devicedetails.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
display.h Only do 9 minute interval for min/max/avg 2016-04-20 15:55:51 -07:00
dive.c Add cylinder equipment tooltips with gas volume 2017-01-12 14:17:09 -08:00
dive.h Use real gas compressibility in planner 2017-01-16 03:17:40 -08:00
divecomputer.cpp Settings update: Remove unused include and add FIXME comment 2016-08-27 11:40:44 -07:00
divecomputer.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
divelist.c Display surface interval in diveplan 2017-01-03 22:28:18 -08:00
divelist.h Display surface interval in diveplan 2017-01-03 22:28:18 -08:00
divelogexportlogic.cpp Settings update: Remove uneeded includes 2016-08-27 11:40:45 -07:00
divelogexportlogic.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
divesite.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
divesite.cpp Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
divesite.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
divesitehelpers.cpp Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
divesitehelpers.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
equipment.c Add HP117 to the cylinder list 2016-08-10 15:08:51 -07:00
exif.cpp Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
exif.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
file.c Clean up some warnings in file.c 2016-11-09 06:33:45 -08:00
file.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
gas-model.c Use real gas compressibility in planner 2017-01-16 03:17:40 -08:00
gaspressures.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
gaspressures.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
gettext.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
gettextfromc.cpp Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
gettextfromc.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
git-access.c Fix cloud storage authentication attempt counting 2016-08-14 10:22:35 -07:00
git-access.h git storage: init local repository 2016-04-27 15:05:37 -07:00
gpslocation.cpp Unify handling of QDateTime time zone information 2016-08-10 15:04:39 -07:00
gpslocation.h GPS provider: change haveGPS status if GPS source returns error 2016-04-17 22:59:12 -07:00
helpers.h Settings update: Add "Dive Computer" settings to SettingsObjectWrapper 2016-08-27 11:40:44 -07:00
imagedownloader.cpp Fix picture hashing logic for pictures on the web. 2016-12-30 19:43:00 +01:00
imagedownloader.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
isocialnetworkintegration.cpp Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
isocialnetworkintegration.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
libdivecomputer.c Add support for libdivecomputer using DC_SAMPLE_GASMIX 2017-01-16 17:45:00 -08:00
libdivecomputer.h Stop accessing the internals of dc_descriptor_t 2017-01-12 14:15:53 -08:00
linux.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
liquivision.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
load-git.c Settings update: Clean up save user id local 2016-08-27 10:55:40 -07:00
macos.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
membuffer.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
membuffer.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
metrics.cpp Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
metrics.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
ostctools.c ostctools: Add support for profile version 0x24 2017-01-12 14:15:53 -08:00
parse-xml.c Hooking up av1.xslt for log import 2016-12-31 09:56:08 +02:00
planner.c Use real gas compressibility in planner 2017-01-16 03:17:40 -08:00
planner.h Have divedatapoint store cylinder id instead of gasmix 2016-07-09 12:07:25 -07:00
pluginmanager.cpp Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
pluginmanager.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
pref.h Rename prefs.deco_mode to prefs.planner_deco_mode 2017-01-06 20:43:23 -08:00
prefs-macros.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
profile.c Fix deco_mode confusion 2017-01-06 20:43:23 -08:00
profile.h Don't calculate the 9 minute average 2016-04-20 16:00:28 -07:00
qt-gui.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
qt-init.cpp Settings update: Move loadPreferences out of qt-helper.cpp 2016-08-27 11:40:45 -07:00
qthelper.cpp Prevent crash on Mac when typing comma in GPS coordinates field 2017-01-14 09:09:58 -08:00
qthelper.h Fix deco_mode confusion 2017-01-06 20:43:23 -08:00
qthelperfromc.h Fix deco_mode confusion 2017-01-06 20:43:23 -08:00
qtserialbluetooth.cpp Fix compile error on Windows 2016-09-18 07:41:55 -07:00
save-git.c Add proper line ending for unit line in git save format 2016-07-21 20:00:04 +09:00
save-html.c Extend time parsing to before 1970 2016-04-29 09:07:17 -07:00
save-html.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
save-xml.c Extend time parsing to before 1970 2016-04-29 09:07:17 -07:00
serial_ftdi.c Fix warning about incompatible pointer 2016-09-18 07:11:45 -07:00
sha1.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
sha1.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
statistics.c Only consider non-zero average depth for statistics 2016-11-15 03:25:46 -08:00
statistics.h Only consider non-zero average depth for statistics 2016-11-15 03:25:46 -08:00
strndup.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
strtod.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
subsurfacestartup.c Add some additional parameters to help text 2017-01-06 20:44:02 -08:00
subsurfacestartup.h Allow switching the user from the command line 2016-04-29 12:14:59 -07:00
subsurfacesysinfo.cpp Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
subsurfacesysinfo.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
taxonomy.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
taxonomy.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
time.c Extend time parsing to before 1970 2016-04-29 09:07:17 -07:00
uemis-downloader.c Extend time parsing to before 1970 2016-04-29 09:07:17 -07:00
uemis.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
uemis.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
units.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
version.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
version.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
webservice.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
windows.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
windowtitleupdate.cpp Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
windowtitleupdate.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
worldmap-options.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
worldmap-save.c Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00
worldmap-save.h Move subsurface-core to core and qt-mobile to mobile-widgets 2016-04-04 22:33:58 -07:00