mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 13:10:19 +00:00
cf7c54bd56
This avoid memory-management troubles. Had to convert a few of the parsers (cochran, datatrak, liquivision) to C++. Also had to convert libdivecomputer.c. This was less painful than expected. std::string is used because parts of the code assumes that the data is null terminated after the last character of the data. std::string does precisely that. One disadvantage is that std::string clears its memory when resizing / initializing. Thus we read the file onto freshly cleared data, which some might thing is a performance regression. Until someone shows me that this matters, I don't care. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
39 lines
862 B
C++
39 lines
862 B
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef IMPORTCSV_H
|
|
#define IMPORTCSV_H
|
|
|
|
#include "filterpreset.h"
|
|
|
|
struct xml_params;
|
|
|
|
enum csv_format {
|
|
CSV_DEPTH,
|
|
CSV_TEMP,
|
|
CSV_PRESSURE,
|
|
POSEIDON_DEPTH,
|
|
POSEIDON_TEMP,
|
|
POSEIDON_SETPOINT,
|
|
POSEIDON_SENSOR1,
|
|
POSEIDON_SENSOR2,
|
|
POSEIDON_NDL,
|
|
POSEIDON_CEILING
|
|
};
|
|
|
|
#define MAXCOLDIGITS 10
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
int parse_csv_file(const char *filename, struct xml_params *params, const char *csvtemplate, struct divelog *log);
|
|
int try_to_open_csv(std::string &mem, enum csv_format type, struct divelog *log);
|
|
int parse_txt_file(const char *filename, const char *csv, struct divelog *log);
|
|
|
|
int parse_seabear_log(const char *filename, struct divelog *log);
|
|
int parse_manual_file(const char *filename, struct xml_params *params, struct divelog *log);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // IMPORTCSV_H
|