summaryrefslogtreecommitdiffstats
path: root/core/file.c
diff options
context:
space:
mode:
authorGravatar Miika Turkia <miika.turkia@gmail.com>2017-05-07 13:41:09 +0300
committerGravatar Miika Turkia <miika.turkia@gmail.com>2017-05-07 13:53:52 +0300
commit0dfa448d8c7132bd0058a6fb3bc820fdde2a4759 (patch)
treecd1b2e74436ea9c2aa41d6290b68fc8a0f8a0ef2 /core/file.c
parentab1813a4454cbe639e99eaee7cd1115bfed1cf8f (diff)
downloadsubsurface-0dfa448d8c7132bd0058a6fb3bc820fdde2a4759.tar.gz
Refactor Seabear import
Moving the GUI independent Seabear import functionality to Subsurface core. This will allow Robert to call it directly from download from DC. Tested with H3 against released and daily versions of Subsurface. The result differs somewhat, but it is actually fixing 2 bugs: - Temperature was mis-interpreted previously - Sample interval for a dive with 1 second interval was parsed incorrectly Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Diffstat (limited to 'core/file.c')
-rw-r--r--core/file.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/core/file.c b/core/file.c
index ba2956d60..6dc082fc7 100644
--- a/core/file.c
+++ b/core/file.c
@@ -1055,6 +1055,27 @@ int parse_csv_file(const char *filename, char **params, int pnr, const char *csv
}
#define SBPARAMS 40
+int parse_seabear_log(const char *filename)
+{
+ char *params[SBPARAMS];
+ int pnr = 0;
+
+ pnr = parse_seabear_header(filename, params, pnr);
+
+ if (parse_seabear_csv_file(filename, params, pnr, "csv") < 0) {
+ return -1;
+ }
+ // Seabear CSV stores NDL and TTS in Minutes, not seconds
+ struct dive *dive = dive_table.dives[dive_table.nr - 1];
+ for(int s_nr = 0 ; s_nr < dive->dc.samples ; s_nr++) {
+ struct sample *sample = dive->dc.sample + s_nr;
+ sample->ndl.seconds *= 60;
+ sample->tts.seconds *= 60;
+ }
+
+ return 0;
+}
+
int parse_seabear_csv_file(const char *filename, char **params, int pnr, const char *csvtemplate)
{
int ret, i;