mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Support gaschange events on Divesoft Freedom import
Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
5cb20ee4c9
commit
b000e1b591
1 changed files with 29 additions and 1 deletions
30
parse-xml.c
30
parse-xml.c
|
@ -2534,7 +2534,8 @@ int parse_cobalt_buffer(sqlite3 *handle, const char *url, const char *buffer, in
|
||||||
int parse_dlf_buffer(char *buffer, size_t size)
|
int parse_dlf_buffer(char *buffer, size_t size)
|
||||||
{
|
{
|
||||||
char *ptr = (char *)buffer;
|
char *ptr = (char *)buffer;
|
||||||
bool event;
|
bool event, found;
|
||||||
|
int i;
|
||||||
|
|
||||||
/* Skipping the dive header for now */
|
/* Skipping the dive header for now */
|
||||||
ptr += 32;
|
ptr += 32;
|
||||||
|
@ -2545,6 +2546,33 @@ int parse_dlf_buffer(char *buffer, size_t size)
|
||||||
event = ptr[0] & 0x0f;
|
event = ptr[0] & 0x0f;
|
||||||
if (event == 1) {
|
if (event == 1) {
|
||||||
/* dive event */
|
/* dive event */
|
||||||
|
switch(ptr[4]) {
|
||||||
|
case 5:
|
||||||
|
event_start();
|
||||||
|
cur_event.time.seconds = ((ptr[0] >> 4) & 0x0f) +
|
||||||
|
((ptr[1] << 4) & 0xff0) +
|
||||||
|
(ptr[2] & 0x0f) * 3600; /* hours */
|
||||||
|
strcpy(cur_event.name, "gaschange");
|
||||||
|
cur_event.type = 25;
|
||||||
|
cur_event.value = ptr[6];
|
||||||
|
event_end();
|
||||||
|
|
||||||
|
found = false;
|
||||||
|
for (i = 0; i < cur_cylinder_index; ++i) {
|
||||||
|
if (cur_dive->cylinder[i].gasmix.o2.permille == ptr[6] * 10 && cur_dive->cylinder[i].gasmix.he.permille == ptr[7] * 10)
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!found) {
|
||||||
|
cylinder_start();
|
||||||
|
cur_dive->cylinder[cur_cylinder_index].gasmix.o2.permille = ptr[6] * 10;
|
||||||
|
cur_dive->cylinder[cur_cylinder_index].gasmix.he.permille = ptr[7] * 10;
|
||||||
|
cylinder_end();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
fprintf(stderr, "DEBUG (event): %d\n", ptr[4]);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
sample_start();
|
sample_start();
|
||||||
cur_sample->time.seconds = ((ptr[0] >> 4) & 0x0f) +
|
cur_sample->time.seconds = ((ptr[0] >> 4) & 0x0f) +
|
||||||
|
|
Loading…
Add table
Reference in a new issue