subsurface/backend-shared
Berthold Stoeger f120fecccb core: use std::vector<> to store divecomputer samples
This is a hairy one, because the sample code is rather tricky.

There was a pattern of looping through pairs of adjacent samples,
for interpolation purposes. Add an range adapter to generalize
such loops.

Removes the finish_sample() function: The code would call
prepare_sample() to start parsing of samples and then
finish_sample() to actuall add it. I.e. a kind of commit().

Since, with one exception, all users of prepare_sample()
called finish_sample() in all code paths, we might just add
the sample in the first place. The exception was sample_end()
in parse.cpp. This brings a small change: samples are now
added, even if they could only be parsed partially. I doubt
that this makes any difference, since it will only happen
for broken divelogs anyway.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2024-08-13 19:28:30 +02:00
..
CMakeLists.txt ui: create a RoundRectItem class 2021-01-03 13:56:05 -08:00
exportfuncs.cpp core: use std::vector<> to store divecomputer samples 2024-08-13 19:28:30 +02:00
exportfuncs.h cleanup: more Coverity silencing 2024-01-17 14:23:19 -08:00
plannershared.cpp Make MND display depend on O2 narcotic preference 2020-07-11 10:37:49 -07:00
plannershared.h Cleanup: rename plannerShared to PlannerShared 2020-02-04 02:17:52 +01:00
README build-system: add new root dir backend-shared 2019-12-24 08:44:23 +09:00
roundrectitem.cpp statistics: convert chart to QQuickItem 2021-01-10 15:16:52 -08:00
roundrectitem.h statistics: convert chart to QQuickItem 2021-01-10 15:16:52 -08:00

This directory contains shared UI backend code shared between
the desktop version and the mobile version.

The backend code sits between the actual functionality, which
are implemented in core and qt-models, and the UI/QML which
are implemented in desktop-widgets and mobile-widgets.

The idea of backend is not to duplicate code, and at the same time
limit the UI and QML to only deal with real GUI.

The first implementations for backend are "export" and "diveplanner".