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,
|
||||
cressi_edy_parser_set_data, /* set_data */
|
||||
cressi_edy_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
cressi_edy_parser_samples_foreach, /* samples_foreach */
|
||||
cressi_edy_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -48,6 +48,7 @@ static const parser_backend_t hw_ostc_parser_backend = {
|
||||
PARSER_TYPE_HW_OSTC,
|
||||
hw_ostc_parser_set_data, /* set_data */
|
||||
hw_ostc_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
hw_ostc_parser_samples_foreach, /* samples_foreach */
|
||||
hw_ostc_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -19,6 +19,7 @@ dc_datetime_gmtime
|
||||
parser_get_type
|
||||
parser_set_data
|
||||
parser_get_datetime
|
||||
parser_get_field
|
||||
parser_samples_foreach
|
||||
parser_destroy
|
||||
|
||||
|
||||
@ -41,6 +41,7 @@ static const parser_backend_t mares_iconhd_parser_backend = {
|
||||
PARSER_TYPE_MARES_ICONHD,
|
||||
mares_iconhd_parser_set_data, /* set_data */
|
||||
mares_iconhd_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
mares_iconhd_parser_samples_foreach, /* samples_foreach */
|
||||
mares_iconhd_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -52,6 +52,7 @@ static const parser_backend_t mares_nemo_parser_backend = {
|
||||
PARSER_TYPE_MARES_NEMO,
|
||||
mares_nemo_parser_set_data, /* set_data */
|
||||
mares_nemo_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
mares_nemo_parser_samples_foreach, /* samples_foreach */
|
||||
mares_nemo_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -57,6 +57,7 @@ static const parser_backend_t oceanic_atom2_parser_backend = {
|
||||
PARSER_TYPE_OCEANIC_ATOM2,
|
||||
oceanic_atom2_parser_set_data, /* set_data */
|
||||
oceanic_atom2_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
oceanic_atom2_parser_samples_foreach, /* samples_foreach */
|
||||
oceanic_atom2_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -44,6 +44,7 @@ static const parser_backend_t oceanic_veo250_parser_backend = {
|
||||
PARSER_TYPE_OCEANIC_VEO250,
|
||||
oceanic_veo250_parser_set_data, /* set_data */
|
||||
oceanic_veo250_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
oceanic_veo250_parser_samples_foreach, /* samples_foreach */
|
||||
oceanic_veo250_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -43,6 +43,7 @@ static const parser_backend_t oceanic_vtpro_parser_backend = {
|
||||
PARSER_TYPE_OCEANIC_VTPRO,
|
||||
oceanic_vtpro_parser_set_data, /* set_data */
|
||||
oceanic_vtpro_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
oceanic_vtpro_parser_samples_foreach, /* samples_foreach */
|
||||
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 (*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 (*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);
|
||||
}
|
||||
|
||||
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_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
|
||||
} 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 {
|
||||
SAMPLE_EVENT_NONE,
|
||||
SAMPLE_EVENT_DECOSTOP,
|
||||
@ -111,6 +119,12 @@ typedef enum parser_sample_vendor_t {
|
||||
SAMPLE_VENDOR_OCEANIC_ATOM2
|
||||
} parser_sample_vendor_t;
|
||||
|
||||
typedef struct gasmix_t {
|
||||
double helium;
|
||||
double oxygen;
|
||||
double nitrogen;
|
||||
} gasmix_t;
|
||||
|
||||
typedef union parser_sample_value_t {
|
||||
unsigned int time;
|
||||
double depth;
|
||||
@ -148,6 +162,9 @@ parser_set_data (parser_t *parser, const unsigned char *data, unsigned int size)
|
||||
parser_status_t
|
||||
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_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,
|
||||
reefnet_sensus_parser_set_data, /* set_data */
|
||||
reefnet_sensus_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
reefnet_sensus_parser_samples_foreach, /* samples_foreach */
|
||||
reefnet_sensus_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -49,6 +49,7 @@ static const parser_backend_t reefnet_sensuspro_parser_backend = {
|
||||
PARSER_TYPE_REEFNET_SENSUSPRO,
|
||||
reefnet_sensuspro_parser_set_data, /* set_data */
|
||||
reefnet_sensuspro_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
reefnet_sensuspro_parser_samples_foreach, /* samples_foreach */
|
||||
reefnet_sensuspro_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -49,6 +49,7 @@ static const parser_backend_t reefnet_sensusultra_parser_backend = {
|
||||
PARSER_TYPE_REEFNET_SENSUSULTRA,
|
||||
reefnet_sensusultra_parser_set_data, /* set_data */
|
||||
reefnet_sensusultra_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
reefnet_sensusultra_parser_samples_foreach, /* samples_foreach */
|
||||
reefnet_sensusultra_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -45,6 +45,7 @@ static const parser_backend_t suunto_d9_parser_backend = {
|
||||
PARSER_TYPE_SUUNTO_D9,
|
||||
suunto_d9_parser_set_data, /* set_data */
|
||||
suunto_d9_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
suunto_d9_parser_samples_foreach, /* samples_foreach */
|
||||
suunto_d9_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -43,6 +43,7 @@ static const parser_backend_t suunto_eon_parser_backend = {
|
||||
PARSER_TYPE_SUUNTO_EON,
|
||||
suunto_eon_parser_set_data, /* set_data */
|
||||
suunto_eon_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
suunto_eon_parser_samples_foreach, /* samples_foreach */
|
||||
suunto_eon_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -40,6 +40,7 @@ static const parser_backend_t suunto_solution_parser_backend = {
|
||||
PARSER_TYPE_SUUNTO_SOLUTION,
|
||||
suunto_solution_parser_set_data, /* set_data */
|
||||
NULL, /* datetime */
|
||||
NULL, /* fields */
|
||||
suunto_solution_parser_samples_foreach, /* samples_foreach */
|
||||
suunto_solution_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -41,6 +41,7 @@ static const parser_backend_t suunto_vyper_parser_backend = {
|
||||
PARSER_TYPE_SUUNTO_VYPER,
|
||||
suunto_vyper_parser_set_data, /* set_data */
|
||||
suunto_vyper_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
suunto_vyper_parser_samples_foreach, /* samples_foreach */
|
||||
suunto_vyper_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -43,6 +43,7 @@ static const parser_backend_t uwatec_memomouse_parser_backend = {
|
||||
PARSER_TYPE_UWATEC_MEMOMOUSE,
|
||||
uwatec_memomouse_parser_set_data, /* set_data */
|
||||
uwatec_memomouse_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
uwatec_memomouse_parser_samples_foreach, /* samples_foreach */
|
||||
uwatec_memomouse_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
@ -49,6 +49,7 @@ static const parser_backend_t uwatec_smart_parser_backend = {
|
||||
PARSER_TYPE_UWATEC_SMART,
|
||||
uwatec_smart_parser_set_data, /* set_data */
|
||||
uwatec_smart_parser_get_datetime, /* datetime */
|
||||
NULL, /* fields */
|
||||
uwatec_smart_parser_samples_foreach, /* samples_foreach */
|
||||
uwatec_smart_parser_destroy /* destroy */
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user