aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-05-07Planner: Correctly fill out last_manual_time in fake_dc()Gravatar Berthold Stoeger
By not filling out this value, entering of manual dives was broken for dive lengths starting with a digit 5 or higher. Fixes #1211 Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-05-07Planner: don't return static data in fake_dc()Gravatar Berthold Stoeger
fake_dc() used to return a statically allocated dc with statically allocated samples. This is of course a questionable practice in the light of multi-threading / resource ownership. Once these problems were recognized, the parameter "alloc" was added. If set to true, the function would still return a statically allocated dc, but heap-allocated samples, which could then be copied in a different dc. All in all an ownership nightmare and a recipie for disaster. The returned static dc was only used as a pointer to the samples anyway. There are four callers of fake_dc() and they all have access to a dc-structure without samples. Therefore, change the semantics of fake_dc() to fill out the passed in dc. If the caller does not care about the samples, it can simply reset the sample number to zero after work. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-05-07Travis: fix Android build by forcing Ubuntu:xenial for containerGravatar Dirk Hohndel
The build fails with newer versions and Ubuntu:latest switched to bionic a few weeks ago. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-05-04Desktop: fix time format in main tabGravatar Dirk Hohndel
Fixes #1234 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-05-03Profile: Fix crash on addition of dive to fresh logbookGravatar Berthold Stoeger
If there is no current dive, the macro current_dc returns NULL. This led to a null-pointer dereference. Reported-by: Martin Měřinský <mermar@centrum.cz> Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-05-01CSV import: include visibility and rating in importGravatar Miika Turkia
Add support for visibility and rating to CSV import dialog. Fixes #1212 Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-05-01CSV import: parse (unit) style headersGravatar Miika Turkia
Commit fc010456 introduced the units to column headers. Thus the matching of these labels must take the unit into account when doing automatic matching of the header line with our field naming. Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-04-29Ubuntu build script updateGravatar Dirk Hohndel
Make sure we list the currently supported releases. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-29When looking for gas change events only use thoseGravatar Robert C. Helling
This function looks for the last gas change before a given time. We should initialize it with a gaschange event as we might later use this event to read a gasmix from it. Signed-off-by: Robert C. Helling <helling@atdotde.de>
2018-04-29cmake: add the GCC_OPTIMIZATION_FLAGS variableGravatar Lubomir I. Ivanov
Instead of always adding -O2 for CMAKE_C_FLAGS_DEBUG and CMAKE_CXX_FLAGS_DEBUG allow the user to pass a custom value via GCC_OPTIMIZATION_FLAGS. Passing -DGCC_OPTIMIZATION_FLAGS:STRING=-O0 would disable all optimizations. Suggested-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2018-04-28Plot OC-pO2 graph for SCR divesGravatar Willem Ferguson
This commit allows plotting the OC-equivalent pO2 graph for PSCR dives. This happens in both the cases where there is no external O2-monitoring AND when there is external pO2 monitoring. The calculations are only done for PSCR dives and is achieved as follows: 1) Within plot-info create a pressure-t called OC_pO2 in profile.h and populate this variable with the open-circuit pO2 values in profile.c. 2) Create a new partialPressureGasItem ocpo2GasItem in profilewidget2.h and, in profilewidget2.cpp, initialise it to read the plot-info OC_pO2 values and enable its display by using the setVisible method. The diveplotdatamodel was also touched in order to achieve this. 3) Create a pref button that controls the display of OC-pO2 for SCR dives 4) Change the colour of the OC-pO2 grpah to orange 5) Change the connection of the crr_OC_pO2 signal to be appropriate 6) rename the OC_pO2 attribute to scr_OC-pO2 Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
2018-04-27Android: correctly detect the different BT device typesGravatar Dirk Hohndel
The previous code would not add the non-LE address for dual stack devices. Unfortunately, even with this fix we still don't get the correct result for the dual stack Shearwater Petrel 2 that I have for testing as Android incorrectly reports it as a BLE-only device. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-27Android: fix error in build scriptGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-27iOS: fix typo in build scriptGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-27Create one function to determine the supported transportsGravatar Dirk Hohndel
This should make sure we create a consistent view based on all the information available. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-27libdc transport debuggingGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-27QML UI: add supported dive computers to log fileGravatar Dirk Hohndel
In a more compact format than before. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-27Redesign the flow for checking supported DCs on AndroidGravatar Dirk Hohndel
Only filter against the hard coded list if no other supported transports are available for a dive computer. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-27Use libdc information about supported transportsGravatar Dirk Hohndel
For example, even on platforms that support libusb, libdivecomputer might be compiled without such support. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-27Android: rebuild libdivecomputer if SHA changesGravatar Dirk Hohndel
Just like we already do for iOS. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-27Do a better job of picking which transport to useGravatar Linus Torvalds
If the user specified bluetooth, we really should pick bluetooth, not probe and possibly fall back to something else. We should also honor the users choice of BLE vs classic BT. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-04-27Configure ostc3: Remove obsoleted settingGravatar Anton Lundin
In firmware version 2.97 the setting 0x38, SETPOINT FALLBACK, has bin obsoleted and we get a error when trying to write to it. This removes this setting. Signed-off-by: Anton Lundin <glance@acc.umu.se>
2018-04-25Update references to Subsurface-NGGravatar Dirk Hohndel
We switched branch names for our own flavor of libdivecomputer. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-25Compile fix when compiling without BLE enabledGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24Only offer dive computers with supported transportsGravatar Dirk Hohndel
On Android we still need to do more filtering as only some of the USB divecomputers are supported. But on iOS this takes care of it without the hard coded list. Additionally, if built without BT or BLE support, the corresponding dive computers are no longer shown (e.g. Perdix AI on Windows). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24Update libdivecomputer submoduleGravatar Dirk Hohndel
This is the flag-day update that goes along with the last three patches. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24use libdivecomputer 'fingerprint' to avoid downloading extra dataGravatar Linus Torvalds
This opportunistically uses a cache of 'fingerprints' for already downloaded dives. As we download data from a dive computer, we save the fingerprint and dive ID of the most recent dive in a per-divecopmputer fingerprint cache file. The next time we download from that dive computer, we will load the cache file for that dive computer if it exists, verify that we still have the dive that is referenced in that cachefile, and if so use the fingerprint to let libdivecomputer potentially stop downloading dives early. This doesn't much matter for most dive computers, but some (like the Scubapro G2) are not able to download one dive at a time, and need the fingerprint to avoid doing a full dump. That is particularly noticeable over bluetooth, where a full dump can be very slow. NOTE! The fingerprint cache is a separate entity from the dive log itself. Unlike the dive log, it doesn't synchronize over the cloud, so if you download using different clients (say, your phone and your laptop), the fingerprint cache entries are per device. So you may still end up downloading dives you already have, because the fingerprint code basically only works to avoid duplicate downloads on the same installation. Also, note that we only have a cache of one single entry per dive computer and downloader, so if you download dives and then don't save the end result, the fingerprint will now point to a dive that you don't actually have in your dive list. As a result, next time you download, the fingerprint won't match any existing dive, and we'll resort to the old non-optimized behavior. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-04-24Actually tie in the new libdivecomputer IO model to open the dive computer ↵Gravatar Linus Torvalds
device This creates a new libdivecomputer_device_open() helper, and makes downloading and configuration use it to open the dive computer device using the proper protocol. The IRDA case was tested by Sébastien Dugué - I had initially left it undone believing that "nobody uses IRDA". Reported-and-tested-by: Sébastien Dugué <sebastien.dugue.subsurface@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-04-24Convert our custom IO model to new libdivecomputer IO modelGravatar Linus Torvalds
This converts our old custom IO model to the new model that libdivecomputer introduced. This is partly based on Jef's rough patch to make things build, with further work by me. The FTDI code is temporarily disabled here, because it will need to be integrated with the new way of opening devices. The ble_serial code goes away entirely, since now libdivecomputer knows about BLE transport natively, and doesn't need to have any serial wrapper around it. Signed-off-by: Jef Driesen <jef@libdivecomputer.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-04-24Travis: add building for iOSGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24iOS: allow building for the simulator & switch debug/release buildsGravatar Dirk Hohndel
It makes sense to be able to control this with command line options. On Travis this avoids the signing problem and makes the build much faster. Still should be enough to catch iOS breakage. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24Travis: add iOS buildGravatar Dirk Hohndel
Disable most warnings for iOS test build as otherwise the Travis log file will exceed 4MB and the build will fail. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24iOS: don't show all the libgit2 warningsGravatar Dirk Hohndel
We aren't concerned about the code quality of libgit2 and with these warnings the build log overflows. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-24Updated with new round of comments.Gravatar jan Iversen
Signed-off-by: Jan Iversen <jani@apache.org>
2018-04-24updated with review comments.Gravatar jan Iversen
Signed-off-by: Jan Iversen <jani@apache.org>
2018-04-24Incorporated review comments in INSTALLGravatar jan iversen
updated INSTALL to reflect the review comments Among others made homebrew / manual install equal choices as well as Xcode / QtCreator. Signed-off-by: Jan Iversen <jani@apache.org>
2018-04-24Updated INSTALL, based on first time building experience.Gravatar jan Iversen
INSTALL is updated to reflect how to install/build subusurface on Mac. It has also been updated with several generic parts. 3 parts are still outstanding (to come soon): QtWebKit, need to document how to download/build Mac, final touches iOS, need to document the build process Signed-off-by: Jan Iversen <jani@apache.org>
2018-04-23Add -libpath argument for qtmacdeployGravatar Allen Hall
Resolves ERROR: no file at "/usr/lib/libgit2.dylib" when building on MacOS. [Dirk Hohndel: SOB in PR #1201 - copying it into the commit for consistenty] Signed-off-by: Allen Hall <revenant83@hotmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-23iOS: build Release by defaultGravatar Dirk Hohndel
And add -debug option to build.sh for debug builds. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-22Updated doc. for handling of libdcGravatar jan Iversen
git.subsurface-divelog.org no longer exist. Signed-off-by: Jan Iversen <jani@apache.org>
2018-04-19CSV import: fix setpoint (typo)Gravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-04-19Cleanup: Make local function waitFor() of static linkageGravatar Berthold Stoeger
Moreover, remove it from the `extern "C"` block, since extern/static is oxymoronic. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-04-19Coding style: remove superfluous semicolonsGravatar Berthold Stoeger
Remove a semicolon after Q_OBJECT and a few others after the closing braces of while loops. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-04-16QML UI: fix incorrect icon referencesGravatar Dirk Hohndel
Not sure why this has worked in the past - it was simply wrong. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-16QML UI: ensure delegate height is not a fractionGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-16QML UI: dive list performance: enable cachingGravatar Dirk Hohndel
We had turned this off since it caused rendering issues, but that appears to be fixed now - and it should help to get us smoother rendering of the dive list. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-16QML UI: dive list performance: no background rectangleGravatar Dirk Hohndel
This is one of the suggested performance enhancement to reduce redundant painting. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-16QML UI: make the code easier to readGravatar Dirk Hohndel
And maybe this will make it faster as well? Depends on how the binding is implemented, I guess. But at least it's less confusing to read now. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-16QML UI: show offline notice when going offlineGravatar Dirk Hohndel
The logic was backwards and showed the notice when the user switched to auto sync mode. Fixes #1204 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-04-16QML UI: change auto cloud sync menu textsGravatar Dirk Hohndel
This way the menu items describe what happens when you tap on that menu item. That seems more consistent and intuitive. See #1204 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>