Add a new function to the public api to retrieve the dive metadata.

This commit is contained in:
Jef Driesen 2010-06-25 23:20:57 +02:00
parent e320791e86
commit 90e60fecee
20 changed files with 48 additions and 0 deletions

View File

@ -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 */
};

View File

@ -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 */
};

View File

@ -19,6 +19,7 @@ dc_datetime_gmtime
parser_get_type
parser_set_data
parser_get_datetime
parser_get_field
parser_samples_foreach
parser_destroy

View File

@ -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 */
};

View File

@ -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 */
};

View File

@ -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 */
};

View File

@ -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 */
};

View File

@ -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 */
};

View File

@ -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);

View File

@ -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)

View File

@ -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);

View File

@ -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 */
};

View File

@ -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 */
};

View File

@ -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 */
};

View File

@ -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 */
};

View File

@ -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 */
};

View File

@ -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 */
};

View File

@ -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 */
};

View File

@ -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 */
};

View File

@ -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 */
};