subsurface/core
Salvador Cuñat c888a1727e DataTrak import: Add support for WLog extensions.
WLog is a Win32 based ancient shareware program whose target was:
1) fully support divelogs coming from DataTrak (DOS or Win)
2) fill some meaningful data which wasn't supported by Uwatec software
3) have a more user-friendly GUI than Datatrak had
The problem achieving goals 1) and 2) at the same time was solved by
adding a complementary file with .add extension and - mandatory - same
base name than .log file (including directory tree).

This .add file has a fixed structure composed of a 12 bytes header,
including file type check and Nº of dives following; then a fixed 850
bytes size for each dive in the log file. Data fields size and position
are fixed inside these blocks and heavily zero padded, so they are easy
to parse.

A serious restriction imposed to the WLog user was *Do not edit the logs
with other software than Wlog*; this was due the order of dives in .log
file being the same than the order of dives in .add file. Thought you
could show a WLog divelog in Datatrak, editing it resulted in mixing all
extended data for dives following the edited one.
Thus, we have to trust files are correct and is to the user ensure this
is so. If extended data are mangled, they are mangled in WLog too and we
are not trying to fix the mess, just importing.

On the technical side, we try to be smart about tank names as neither
DataTrak nor WLog record them. So we just take the first tank in users
list matching the volume recorded in WLog.
For weights we add a translatable "unknown" string as an empty string
results in weight not being shown in subsurface-mobile (which could be a
reportable issue, BTW).

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
2020-09-03 11:38:13 -07:00
..
settings desktop: remove user survey 2020-04-19 14:27:54 -07:00
subsurface-qt cleanup: remove obsolete logic in getFormattedCylinder() 2020-08-21 08:40:56 -07:00
android.cpp build-system/android: remove libusb at QTest 2020-04-25 13:18:41 -07:00
applicationstate.cpp Turn application state into enum 2019-05-12 12:33:55 -07:00
applicationstate.h Turn application state into enum 2019-05-12 12:33:55 -07:00
btdiscovery.cpp core/bluetooth: stop discovery once the dive computer has been found 2020-08-22 19:35:58 -07:00
btdiscovery.h core/bluetooth: stop discovery once the dive computer has been found 2020-08-22 19:35:58 -07:00
checkcloudconnection.cpp Cloud storage: remove outdated certificate hack 2019-10-09 22:38:29 +03:00
checkcloudconnection.h get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
cloudstorage.cpp core: correct cloudstorage.cpp to use static qPrefCloudStorage functions. 2019-12-05 11:48:26 -08:00
cloudstorage.h get rid of some foreach and Q_FOREACH constructs 2019-04-12 12:59:17 +03:00
CMakeLists.txt media: add small C++ helper describing a picture struct 2020-05-06 13:58:09 -07:00
cochran.c Fix incorrect Farenheit to Kelvin formula. 2020-05-22 19:19:58 +02:00
cochran.h Cochran import: better support for older models 2017-05-31 21:53:00 -07:00
color.cpp Cleanup: silence clang missing braces warning in core/color.cpp 2018-09-01 11:31:18 -07:00
color.h Indicate negative cylider pressure 2019-08-08 08:56:44 -07:00
compressibility.r
configuredivecomputer.cpp Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
configuredivecomputer.h Fix broken windows build with latest MXE 2019-08-29 12:55:25 -07:00
configuredivecomputerthreads.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
configuredivecomputerthreads.h
connectionlistmodel.cpp core/bt: ensure that BT/BLE addresses with name sort first 2020-05-15 04:05:06 +03:00
connectionlistmodel.h Mobile: reinstate roleNames function in ConnectionListModel 2019-04-16 23:43:14 +12:00
datatrak.c DataTrak import: Add support for WLog extensions. 2020-09-03 11:38:13 -07:00
datatrak.h Cleanup: const-ify functions taking dives and divecomputers 2018-08-23 14:41:01 -07:00
deco.c cleanup: move the inertgas enum from qthelper.hpp to deco.c 2020-05-06 00:22:31 +02:00
deco.h Parser: remove global state 2019-08-08 16:26:31 -07:00
device.c core: replace (void) with UNUSED(x) and include ssrf.h 2018-05-24 08:34:14 -07:00
device.h cleanup: move clearing of device nodes to clear_dive_file_data() 2020-04-24 10:40:12 -07:00
devicedetails.cpp
devicedetails.h
display.h cleanup: make enumerate_devices of external linkage 2020-05-01 08:53:45 -07:00
dive.c Planner: Properly initialize salinity 2020-09-02 09:43:38 -07:00
dive.h cleanup: constify time_during_dive_with_offset() function 2020-05-22 14:40:49 -07:00
divecomputer.cpp cleanup: move clearing of device nodes to clear_dive_file_data() 2020-04-24 10:40:12 -07:00
divecomputer.h cleanup: move get_dc_nickname from qthelper.cpp to divecomputer.cpp 2020-04-24 10:40:12 -07:00
divefilter.cpp filter: properly search for tags 2020-05-16 12:40:08 -07:00
divefilter.h filter: add a week to maximum default date time 2020-04-24 10:05:27 -07:00
divelist.c core: fix dive renumbering logic on import 2020-08-17 13:21:49 -07:00
divelist.h cleanup: remove unused function append_dive() 2020-05-02 14:52:51 +02:00
divelogexportlogic.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
divelogexportlogic.h avoid duplicate and inconsistent applying of QDir::separator() 2019-03-27 07:36:33 -07:00
divemode.h Cleanup: move planner/deco related declarations planner/deco.h 2019-08-08 16:26:31 -07:00
divesite-helper.cpp Dive site: use own copy of taxonomy in dive-site-edit widget 2018-10-13 21:41:41 -04:00
divesite.c mobile/edit: don't add dive site twice to table 2020-03-17 14:05:24 -07:00
divesite.h cleanup: move dive_table from dive.h to divelist.h 2020-05-01 09:42:31 -07:00
divesitehelpers.cpp cleanup: split uiLanguage() in two functions 2020-03-22 12:01:09 -07:00
divesitehelpers.h Geo lookup: don't pass arguments / result via global object 2018-10-11 16:25:02 -07:00
downloadfromdcthread.cpp core/bt: match DC descriptor in lower case 2020-05-15 02:49:46 +03:00
downloadfromdcthread.h android/usb: better memory management 2020-03-16 07:58:20 -07:00
equipment.c media: use table instead of linked list for media 2020-05-06 13:58:09 -07:00
equipment.h cleanup: move copy_cylinders from dive.c to equipment.c 2020-05-06 13:58:09 -07:00
errorhelper.c Don't expose 'detach_buffer()' to membuffer users 2019-10-27 12:42:54 -07:00
errorhelper.h Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
exif.cpp cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
exif.h
file.c DataTrak import: Add support for WLog extensions. 2020-09-03 11:38:13 -07:00
file.h DataTrak import: Add support for WLog extensions. 2020-09-03 11:38:13 -07:00
format.cpp Cleanup: Slightly shorten code in vqasprintf_loc() 2018-04-09 11:29:43 -07:00
format.h Cleanup: Move *_loc formatting functions into new format.cpp file 2018-04-09 11:29:43 -07:00
fulltext.cpp cleanup: consistently use get_cylinder() accessor 2020-08-21 08:48:22 -07:00
fulltext.h fulltext: rename fulltext_reload() to fulltext_populate() 2020-04-08 08:08:19 -07:00
gas-model.c Cleanup: replace macro by inline function in gas-model.c 2019-08-08 15:22:09 -07:00
gas.c Cleanup: move gas-functions to own translation unit 2019-06-19 13:11:10 -07:00
gas.h Cleanup: move gas-functions to own translation unit 2019-06-19 13:11:10 -07:00
gaspressures.c Cylinders: access cylinders with get_cylinder() 2019-11-09 19:19:04 +01:00
gaspressures.h Cleanup: Make gaspressures.h a regular include file 2019-06-19 13:11:10 -07:00
gettext.h
gettextfromc.cpp Localization: make cache thread safe and robust against use-after-free 2018-06-24 20:31:14 +02:00
gettextfromc.h Localization: remove gettextFromC::instance() 2018-06-24 20:31:14 +02:00
git-access.c git-storage: add global flag to indicate successful cloud sync 2020-06-14 13:35:33 -07:00
git-access.h git-storage: add global flag to indicate successful cloud sync 2020-06-14 13:35:33 -07:00
gpslocation.cpp mobile/location-service: stop using broken adjustment function 2020-07-11 11:57:54 -07:00
gpslocation.h mobile: use undo-command to apply gps fixes 2020-03-09 12:41:57 -07:00
imagedownloader.cpp code cleanup: consistently initialize zero duration_t 2020-01-10 02:37:03 +09:00
imagedownloader.h Profile: add "synchronous" mode for picture plotting 2019-02-07 16:06:43 +01:00
import-cobalt.c Cleanup: return cylinder from cylinder_start() in parser 2019-11-09 19:19:04 +01:00
import-csv.c Print correct template name on CSV export 2020-05-26 11:33:10 -07:00
import-csv.h Parser: parse into custom dive site table 2019-04-12 18:19:07 +03:00
import-divinglog.c Cylinders: access cylinders with get_cylinder() 2019-11-09 19:19:04 +01:00
import-shearwater.c Cylinders: access cylinders with get_cylinder() 2019-11-09 19:19:04 +01:00
import-suunto.c Cleanup: return cylinder from cylinder_start() in parser 2019-11-09 19:19:04 +01:00
ios.cpp cloud-storage: simplify creation of git authorship 2020-04-09 17:05:44 -07:00
libdivecomputer.c Update to current libdivecomputer 2020-08-21 08:47:08 -07:00
libdivecomputer.h android/usb: pass in the UsbDevice when downloading 2020-03-16 07:58:20 -07:00
liquivision.c cleanup: move dive_table from dive.h to divelist.h 2020-05-01 09:42:31 -07:00
load-git.c Remove 'string marker after running out of strings' warning 2020-05-12 11:36:59 -07:00
macos.c cloud-storage: simplify creation of git authorship 2020-04-09 17:05:44 -07:00
membuffer.c cleanup: move FRACTION macro from dive.h to units.h 2020-05-01 09:42:31 -07:00
membuffer.h Don't expose 'detach_buffer()' to membuffer users 2019-10-27 12:42:54 -07:00
metadata.cpp cleanup: create common QDateTime -> timestamp conversion function 2020-05-22 12:31:06 -07:00
metadata.h Add 'location_t' data structure 2018-10-21 19:55:09 +03:00
metrics.cpp
metrics.h
ostctools.c cleanup: move dive_table from dive.h to divelist.h 2020-05-01 09:42:31 -07:00
parse-gpx.cpp cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
parse-gpx.h cleanup: only include QString in desktop-widgets/importgps.h 2020-05-01 09:42:31 -07:00
parse-xml.c cleanup: remove indirection when passing arguments to parser functions 2020-06-16 08:20:53 -07:00
parse.c media: use table instead of linked list for media 2020-05-06 13:58:09 -07:00
parse.h media: use table instead of linked list for media 2020-05-06 13:58:09 -07:00
picture.c core: move picture-related function from dive.c to picture.c 2020-05-06 13:58:09 -07:00
picture.h core: move picture-related function from dive.c to picture.c 2020-05-06 13:58:09 -07:00
pictureobj.cpp media: add small C++ helper describing a picture struct 2020-05-06 13:58:09 -07:00
pictureobj.h media: add small C++ helper describing a picture struct 2020-05-06 13:58:09 -07:00
planner.c cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
planner.h cleanup: move DECOTIMESTEP from dive.h to planner.h 2020-05-01 09:42:31 -07:00
plannernotes.c Cylinders: access cylinders with get_cylinder() 2019-11-09 19:19:04 +01:00
pref.h mobile: remove filter settings 2020-03-01 10:21:44 -08:00
profile.c cleanup: make analyze_plot_info local to profile.c 2020-05-01 08:53:45 -07:00
profile.h profile: fix displaying of profiles with multiple pressure sensors 2020-07-02 09:27:50 -07:00
qt-ble.cpp core/BLE: delay characteristics discovery until service discovery complete 2020-08-22 19:35:58 -07:00
qt-ble.h Update to new libdivecomputer version 2020-01-27 09:51:31 -08:00
qt-gui.h core,tests: change qml register function 2018-09-11 17:22:58 -07:00
qt-init.cpp translations: use German translation for non-Swiss German locales 2020-03-22 12:02:48 -07:00
qthelper.cpp core/localized-parsing: correctly handle group and decimal separator 2020-08-16 16:23:19 -07:00
qthelper.h helper functions: remove timestamp argument from gettiemzoneoffset() 2020-07-11 12:00:10 -07:00
qtserialbluetooth.cpp core: fix compile issue with older g++ 2020-06-18 09:05:13 -07:00
save-git.c media: use table instead of linked list for media 2020-05-06 13:58:09 -07:00
save-html.c cleanup: make local functions of static linkage 2020-05-29 09:20:17 -07:00
save-html.h Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
save-profiledata.c Fix CSV for profile export 2020-04-18 13:41:29 +02:00
save-profiledata.h Cleanup: move file-related function declarations to file.h 2019-08-08 16:26:31 -07:00
save-xml.c Save SAC, OTU and CNS in the XML export 2020-05-14 13:27:07 -07:00
selection.cpp selection: create global single_selected_trip() function 2020-05-03 15:02:21 -07:00
selection.h selection: create global single_selected_trip() function 2020-05-03 15:02:21 -07:00
serial_ftdi.c core: fix libdivecomputer dc_custom callbacks structures 2020-06-18 09:05:13 -07:00
serial_usb_android.cpp android/usb: remove "autoselect driver" option for unknown VID/PIDs 2020-03-16 07:58:20 -07:00
serial_usb_android.h android/usb: pass in the UsbDevice when downloading 2020-03-16 07:58:20 -07:00
sha1.c
sha1.h
ssrf.h core: remove LOG_STP from mobile 2019-12-13 07:04:00 -05:00
statistics.c cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
statistics.h Core: dynamically allocate the result of get_gas_used() 2019-11-09 19:19:04 +01:00
strndup.h
strtod.c Core: introduce new subsurface-string header 2018-05-14 10:13:39 -07:00
structured_list.h media: use table instead of linked list for media 2020-05-06 13:58:09 -07:00
subsurface-string.h Core: don't inline rarely used function 2018-05-14 10:13:39 -07:00
subsurface-time.h cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
subsurfacestartup.c desktop: remove user survey 2020-04-19 14:27:54 -07:00
subsurfacestartup.h Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
subsurfacesysinfo.cpp drop support for Qt 5.4 and before 2019-03-27 07:36:33 -07:00
subsurfacesysinfo.h drop support for Qt 5.4 and before 2019-03-27 07:36:33 -07:00
table.h media: create sort_picture_table function via macro 2020-05-06 13:58:09 -07:00
tag.c Don't expose 'detach_buffer()' to membuffer users 2019-10-27 12:42:54 -07:00
tag.h Cleanup: move tag functions into own translation unit 2019-06-19 13:11:10 -07:00
taxonomy.c Dive site: use own copy of taxonomy in dive-site-edit widget 2018-10-13 21:41:41 -04:00
taxonomy.h Dive site: use own copy of taxonomy in dive-site-edit widget 2018-10-13 21:41:41 -04:00
time.c cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
timer.c Add timestamps to libdivecomputer.log 2020-03-10 17:42:54 -07:00
timer.h Add timestamps to libdivecomputer.log 2020-03-10 17:42:54 -07:00
trip.c cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
trip.h selection: add selection flag for trips 2020-05-03 15:02:21 -07:00
uemis-downloader.c cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
uemis.c Core: remove MAX_CYLINDERS restriction 2019-11-09 19:19:04 +01:00
uemis.h Dive site: use pointer instead of uuid in uemis_helper 2018-10-29 00:09:31 +00:00
units.c Fix broken windows build with latest MXE 2019-08-29 12:55:25 -07:00
units.h cleanup: Change Salty to Brackish 2020-05-05 08:25:21 -07:00
unix.c cloud-storage: simplify creation of git authorship 2020-04-09 17:05:44 -07:00
uploadDiveLogsDE.cpp core: fix incorrect changes in divelogs.de export 2020-02-17 10:50:51 -08:00
uploadDiveLogsDE.h Cleanup: remove const bool parameters and return types 2020-02-09 12:13:18 -08:00
uploadDiveShare.cpp core: divehare avoid race problem. 2019-12-12 10:10:01 -05:00
uploadDiveShare.h core: divehare change slot names 2019-12-12 10:10:01 -05:00
version.c
version.h
videoframeextractor.cpp Cleanup: move error reporting function declarations to errorhelper.h 2019-08-08 16:26:30 -07:00
videoframeextractor.h Dive media: Extract thumbnails from videos with ffmpeg 2018-07-28 15:31:25 -07:00
webservice.h
windows.c cloud-storage: simplify creation of git authorship 2020-04-09 17:05:44 -07:00
windowtitleupdate.cpp Cleanup: Make WindowsTitleUpdate a global object 2018-07-30 13:55:23 -07:00
windowtitleupdate.h Cleanup: Make WindowsTitleUpdate a global object 2018-07-30 13:55:23 -07:00
worldmap-options.h
worldmap-save.c cleanup: move dive_table from dive.h to divelist.h 2020-05-01 09:42:31 -07:00
worldmap-save.h Cleanup: remove const bool parameters and return types 2020-02-09 12:13:18 -08:00
xmp_parser.cpp cleanup: move declaration of utc_mk* functions to new subsurface-time.h header 2020-05-01 09:42:31 -07:00
xmp_parser.h Metadata: rudimentary support for XMP metadataa in MP4-based videos 2018-09-25 14:59:14 -07:00