Add a new function to the public api to retrieve the dive metadata.
This commit is contained in:
parent
e320791e86
commit
90e60fecee
@ -42,6 +42,7 @@ static const parser_backend_t cressi_edy_parser_backend = {
|
|||||||
PARSER_TYPE_CRESSI_EDY,
|
PARSER_TYPE_CRESSI_EDY,
|
||||||
cressi_edy_parser_set_data, /* set_data */
|
cressi_edy_parser_set_data, /* set_data */
|
||||||
cressi_edy_parser_get_datetime, /* datetime */
|
cressi_edy_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
cressi_edy_parser_samples_foreach, /* samples_foreach */
|
cressi_edy_parser_samples_foreach, /* samples_foreach */
|
||||||
cressi_edy_parser_destroy /* destroy */
|
cressi_edy_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -48,6 +48,7 @@ static const parser_backend_t hw_ostc_parser_backend = {
|
|||||||
PARSER_TYPE_HW_OSTC,
|
PARSER_TYPE_HW_OSTC,
|
||||||
hw_ostc_parser_set_data, /* set_data */
|
hw_ostc_parser_set_data, /* set_data */
|
||||||
hw_ostc_parser_get_datetime, /* datetime */
|
hw_ostc_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
hw_ostc_parser_samples_foreach, /* samples_foreach */
|
hw_ostc_parser_samples_foreach, /* samples_foreach */
|
||||||
hw_ostc_parser_destroy /* destroy */
|
hw_ostc_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -19,6 +19,7 @@ dc_datetime_gmtime
|
|||||||
parser_get_type
|
parser_get_type
|
||||||
parser_set_data
|
parser_set_data
|
||||||
parser_get_datetime
|
parser_get_datetime
|
||||||
|
parser_get_field
|
||||||
parser_samples_foreach
|
parser_samples_foreach
|
||||||
parser_destroy
|
parser_destroy
|
||||||
|
|
||||||
|
|||||||
@ -41,6 +41,7 @@ static const parser_backend_t mares_iconhd_parser_backend = {
|
|||||||
PARSER_TYPE_MARES_ICONHD,
|
PARSER_TYPE_MARES_ICONHD,
|
||||||
mares_iconhd_parser_set_data, /* set_data */
|
mares_iconhd_parser_set_data, /* set_data */
|
||||||
mares_iconhd_parser_get_datetime, /* datetime */
|
mares_iconhd_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
mares_iconhd_parser_samples_foreach, /* samples_foreach */
|
mares_iconhd_parser_samples_foreach, /* samples_foreach */
|
||||||
mares_iconhd_parser_destroy /* destroy */
|
mares_iconhd_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -52,6 +52,7 @@ static const parser_backend_t mares_nemo_parser_backend = {
|
|||||||
PARSER_TYPE_MARES_NEMO,
|
PARSER_TYPE_MARES_NEMO,
|
||||||
mares_nemo_parser_set_data, /* set_data */
|
mares_nemo_parser_set_data, /* set_data */
|
||||||
mares_nemo_parser_get_datetime, /* datetime */
|
mares_nemo_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
mares_nemo_parser_samples_foreach, /* samples_foreach */
|
mares_nemo_parser_samples_foreach, /* samples_foreach */
|
||||||
mares_nemo_parser_destroy /* destroy */
|
mares_nemo_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -57,6 +57,7 @@ static const parser_backend_t oceanic_atom2_parser_backend = {
|
|||||||
PARSER_TYPE_OCEANIC_ATOM2,
|
PARSER_TYPE_OCEANIC_ATOM2,
|
||||||
oceanic_atom2_parser_set_data, /* set_data */
|
oceanic_atom2_parser_set_data, /* set_data */
|
||||||
oceanic_atom2_parser_get_datetime, /* datetime */
|
oceanic_atom2_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
oceanic_atom2_parser_samples_foreach, /* samples_foreach */
|
oceanic_atom2_parser_samples_foreach, /* samples_foreach */
|
||||||
oceanic_atom2_parser_destroy /* destroy */
|
oceanic_atom2_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -44,6 +44,7 @@ static const parser_backend_t oceanic_veo250_parser_backend = {
|
|||||||
PARSER_TYPE_OCEANIC_VEO250,
|
PARSER_TYPE_OCEANIC_VEO250,
|
||||||
oceanic_veo250_parser_set_data, /* set_data */
|
oceanic_veo250_parser_set_data, /* set_data */
|
||||||
oceanic_veo250_parser_get_datetime, /* datetime */
|
oceanic_veo250_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
oceanic_veo250_parser_samples_foreach, /* samples_foreach */
|
oceanic_veo250_parser_samples_foreach, /* samples_foreach */
|
||||||
oceanic_veo250_parser_destroy /* destroy */
|
oceanic_veo250_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -43,6 +43,7 @@ static const parser_backend_t oceanic_vtpro_parser_backend = {
|
|||||||
PARSER_TYPE_OCEANIC_VTPRO,
|
PARSER_TYPE_OCEANIC_VTPRO,
|
||||||
oceanic_vtpro_parser_set_data, /* set_data */
|
oceanic_vtpro_parser_set_data, /* set_data */
|
||||||
oceanic_vtpro_parser_get_datetime, /* datetime */
|
oceanic_vtpro_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
oceanic_vtpro_parser_samples_foreach, /* samples_foreach */
|
oceanic_vtpro_parser_samples_foreach, /* samples_foreach */
|
||||||
oceanic_vtpro_parser_destroy /* destroy */
|
oceanic_vtpro_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -46,6 +46,8 @@ struct parser_backend_t {
|
|||||||
|
|
||||||
parser_status_t (*datetime) (parser_t *parser, dc_datetime_t *datetime);
|
parser_status_t (*datetime) (parser_t *parser, dc_datetime_t *datetime);
|
||||||
|
|
||||||
|
parser_status_t (*field) (parser_t *parser, parser_field_type_t type, unsigned int flags, void *value);
|
||||||
|
|
||||||
parser_status_t (*samples_foreach) (parser_t *parser, sample_callback_t callback, void *userdata);
|
parser_status_t (*samples_foreach) (parser_t *parser, sample_callback_t callback, void *userdata);
|
||||||
|
|
||||||
parser_status_t (*destroy) (parser_t *parser);
|
parser_status_t (*destroy) (parser_t *parser);
|
||||||
|
|||||||
12
src/parser.c
12
src/parser.c
@ -71,6 +71,18 @@ parser_get_datetime (parser_t *parser, dc_datetime_t *datetime)
|
|||||||
return parser->backend->datetime (parser, datetime);
|
return parser->backend->datetime (parser, datetime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parser_status_t
|
||||||
|
parser_get_field (parser_t *parser, parser_field_type_t type, unsigned int flags, void *value)
|
||||||
|
{
|
||||||
|
if (parser == NULL)
|
||||||
|
return PARSER_STATUS_UNSUPPORTED;
|
||||||
|
|
||||||
|
if (parser->backend->field == NULL)
|
||||||
|
return PARSER_STATUS_UNSUPPORTED;
|
||||||
|
|
||||||
|
return parser->backend->field (parser, type, flags, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
parser_status_t
|
parser_status_t
|
||||||
parser_samples_foreach (parser_t *parser, sample_callback_t callback, void *userdata)
|
parser_samples_foreach (parser_t *parser, sample_callback_t callback, void *userdata)
|
||||||
|
|||||||
17
src/parser.h
17
src/parser.h
@ -68,6 +68,14 @@ typedef enum parser_sample_type_t {
|
|||||||
SAMPLE_TYPE_VENDOR
|
SAMPLE_TYPE_VENDOR
|
||||||
} parser_sample_type_t;
|
} parser_sample_type_t;
|
||||||
|
|
||||||
|
typedef enum parser_field_type_t {
|
||||||
|
FIELD_TYPE_DIVETIME,
|
||||||
|
FIELD_TYPE_MAXDEPTH,
|
||||||
|
FIELD_TYPE_AVGDEPTH,
|
||||||
|
FIELD_TYPE_GASMIX_COUNT,
|
||||||
|
FIELD_TYPE_GASMIX
|
||||||
|
} parser_field_type_t;
|
||||||
|
|
||||||
typedef enum parser_sample_event_t {
|
typedef enum parser_sample_event_t {
|
||||||
SAMPLE_EVENT_NONE,
|
SAMPLE_EVENT_NONE,
|
||||||
SAMPLE_EVENT_DECOSTOP,
|
SAMPLE_EVENT_DECOSTOP,
|
||||||
@ -111,6 +119,12 @@ typedef enum parser_sample_vendor_t {
|
|||||||
SAMPLE_VENDOR_OCEANIC_ATOM2
|
SAMPLE_VENDOR_OCEANIC_ATOM2
|
||||||
} parser_sample_vendor_t;
|
} parser_sample_vendor_t;
|
||||||
|
|
||||||
|
typedef struct gasmix_t {
|
||||||
|
double helium;
|
||||||
|
double oxygen;
|
||||||
|
double nitrogen;
|
||||||
|
} gasmix_t;
|
||||||
|
|
||||||
typedef union parser_sample_value_t {
|
typedef union parser_sample_value_t {
|
||||||
unsigned int time;
|
unsigned int time;
|
||||||
double depth;
|
double depth;
|
||||||
@ -148,6 +162,9 @@ parser_set_data (parser_t *parser, const unsigned char *data, unsigned int size)
|
|||||||
parser_status_t
|
parser_status_t
|
||||||
parser_get_datetime (parser_t *parser, dc_datetime_t *datetime);
|
parser_get_datetime (parser_t *parser, dc_datetime_t *datetime);
|
||||||
|
|
||||||
|
parser_status_t
|
||||||
|
parser_get_field (parser_t *parser, parser_field_type_t type, unsigned int flags, void *value);
|
||||||
|
|
||||||
parser_status_t
|
parser_status_t
|
||||||
parser_samples_foreach (parser_t *parser, sample_callback_t callback, void *userdata);
|
parser_samples_foreach (parser_t *parser, sample_callback_t callback, void *userdata);
|
||||||
|
|
||||||
|
|||||||
@ -50,6 +50,7 @@ static const parser_backend_t reefnet_sensus_parser_backend = {
|
|||||||
PARSER_TYPE_REEFNET_SENSUS,
|
PARSER_TYPE_REEFNET_SENSUS,
|
||||||
reefnet_sensus_parser_set_data, /* set_data */
|
reefnet_sensus_parser_set_data, /* set_data */
|
||||||
reefnet_sensus_parser_get_datetime, /* datetime */
|
reefnet_sensus_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
reefnet_sensus_parser_samples_foreach, /* samples_foreach */
|
reefnet_sensus_parser_samples_foreach, /* samples_foreach */
|
||||||
reefnet_sensus_parser_destroy /* destroy */
|
reefnet_sensus_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -49,6 +49,7 @@ static const parser_backend_t reefnet_sensuspro_parser_backend = {
|
|||||||
PARSER_TYPE_REEFNET_SENSUSPRO,
|
PARSER_TYPE_REEFNET_SENSUSPRO,
|
||||||
reefnet_sensuspro_parser_set_data, /* set_data */
|
reefnet_sensuspro_parser_set_data, /* set_data */
|
||||||
reefnet_sensuspro_parser_get_datetime, /* datetime */
|
reefnet_sensuspro_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
reefnet_sensuspro_parser_samples_foreach, /* samples_foreach */
|
reefnet_sensuspro_parser_samples_foreach, /* samples_foreach */
|
||||||
reefnet_sensuspro_parser_destroy /* destroy */
|
reefnet_sensuspro_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -49,6 +49,7 @@ static const parser_backend_t reefnet_sensusultra_parser_backend = {
|
|||||||
PARSER_TYPE_REEFNET_SENSUSULTRA,
|
PARSER_TYPE_REEFNET_SENSUSULTRA,
|
||||||
reefnet_sensusultra_parser_set_data, /* set_data */
|
reefnet_sensusultra_parser_set_data, /* set_data */
|
||||||
reefnet_sensusultra_parser_get_datetime, /* datetime */
|
reefnet_sensusultra_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
reefnet_sensusultra_parser_samples_foreach, /* samples_foreach */
|
reefnet_sensusultra_parser_samples_foreach, /* samples_foreach */
|
||||||
reefnet_sensusultra_parser_destroy /* destroy */
|
reefnet_sensusultra_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -45,6 +45,7 @@ static const parser_backend_t suunto_d9_parser_backend = {
|
|||||||
PARSER_TYPE_SUUNTO_D9,
|
PARSER_TYPE_SUUNTO_D9,
|
||||||
suunto_d9_parser_set_data, /* set_data */
|
suunto_d9_parser_set_data, /* set_data */
|
||||||
suunto_d9_parser_get_datetime, /* datetime */
|
suunto_d9_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
suunto_d9_parser_samples_foreach, /* samples_foreach */
|
suunto_d9_parser_samples_foreach, /* samples_foreach */
|
||||||
suunto_d9_parser_destroy /* destroy */
|
suunto_d9_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -43,6 +43,7 @@ static const parser_backend_t suunto_eon_parser_backend = {
|
|||||||
PARSER_TYPE_SUUNTO_EON,
|
PARSER_TYPE_SUUNTO_EON,
|
||||||
suunto_eon_parser_set_data, /* set_data */
|
suunto_eon_parser_set_data, /* set_data */
|
||||||
suunto_eon_parser_get_datetime, /* datetime */
|
suunto_eon_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
suunto_eon_parser_samples_foreach, /* samples_foreach */
|
suunto_eon_parser_samples_foreach, /* samples_foreach */
|
||||||
suunto_eon_parser_destroy /* destroy */
|
suunto_eon_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -40,6 +40,7 @@ static const parser_backend_t suunto_solution_parser_backend = {
|
|||||||
PARSER_TYPE_SUUNTO_SOLUTION,
|
PARSER_TYPE_SUUNTO_SOLUTION,
|
||||||
suunto_solution_parser_set_data, /* set_data */
|
suunto_solution_parser_set_data, /* set_data */
|
||||||
NULL, /* datetime */
|
NULL, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
suunto_solution_parser_samples_foreach, /* samples_foreach */
|
suunto_solution_parser_samples_foreach, /* samples_foreach */
|
||||||
suunto_solution_parser_destroy /* destroy */
|
suunto_solution_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -41,6 +41,7 @@ static const parser_backend_t suunto_vyper_parser_backend = {
|
|||||||
PARSER_TYPE_SUUNTO_VYPER,
|
PARSER_TYPE_SUUNTO_VYPER,
|
||||||
suunto_vyper_parser_set_data, /* set_data */
|
suunto_vyper_parser_set_data, /* set_data */
|
||||||
suunto_vyper_parser_get_datetime, /* datetime */
|
suunto_vyper_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
suunto_vyper_parser_samples_foreach, /* samples_foreach */
|
suunto_vyper_parser_samples_foreach, /* samples_foreach */
|
||||||
suunto_vyper_parser_destroy /* destroy */
|
suunto_vyper_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -43,6 +43,7 @@ static const parser_backend_t uwatec_memomouse_parser_backend = {
|
|||||||
PARSER_TYPE_UWATEC_MEMOMOUSE,
|
PARSER_TYPE_UWATEC_MEMOMOUSE,
|
||||||
uwatec_memomouse_parser_set_data, /* set_data */
|
uwatec_memomouse_parser_set_data, /* set_data */
|
||||||
uwatec_memomouse_parser_get_datetime, /* datetime */
|
uwatec_memomouse_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
uwatec_memomouse_parser_samples_foreach, /* samples_foreach */
|
uwatec_memomouse_parser_samples_foreach, /* samples_foreach */
|
||||||
uwatec_memomouse_parser_destroy /* destroy */
|
uwatec_memomouse_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
@ -49,6 +49,7 @@ static const parser_backend_t uwatec_smart_parser_backend = {
|
|||||||
PARSER_TYPE_UWATEC_SMART,
|
PARSER_TYPE_UWATEC_SMART,
|
||||||
uwatec_smart_parser_set_data, /* set_data */
|
uwatec_smart_parser_set_data, /* set_data */
|
||||||
uwatec_smart_parser_get_datetime, /* datetime */
|
uwatec_smart_parser_get_datetime, /* datetime */
|
||||||
|
NULL, /* fields */
|
||||||
uwatec_smart_parser_samples_foreach, /* samples_foreach */
|
uwatec_smart_parser_samples_foreach, /* samples_foreach */
|
||||||
uwatec_smart_parser_destroy /* destroy */
|
uwatec_smart_parser_destroy /* destroy */
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user