diff --git a/include/libdivecomputer/parser.h b/include/libdivecomputer/parser.h index 2713d9b..6c49d0b 100644 --- a/include/libdivecomputer/parser.h +++ b/include/libdivecomputer/parser.h @@ -270,6 +270,9 @@ dc_parser_new2 (dc_parser_t **parser, dc_context_t *context, dc_descriptor_t *de dc_family_t dc_parser_get_type (dc_parser_t *parser); +dc_status_t +dc_parser_set_clock (dc_parser_t *parser, unsigned int devtime, dc_ticks_t systime); + dc_status_t dc_parser_set_atmospheric (dc_parser_t *parser, double atmospheric); diff --git a/src/atomics_cobalt_parser.c b/src/atomics_cobalt_parser.c index 0b24bee..905b730 100644 --- a/src/atomics_cobalt_parser.c +++ b/src/atomics_cobalt_parser.c @@ -53,6 +53,7 @@ static const dc_parser_vtable_t atomics_cobalt_parser_vtable = { sizeof(atomics_cobalt_parser_t), DC_FAMILY_ATOMICS_COBALT, atomics_cobalt_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ atomics_cobalt_parser_set_density, /* set_density */ atomics_cobalt_parser_get_datetime, /* datetime */ diff --git a/src/citizen_aqualand_parser.c b/src/citizen_aqualand_parser.c index 806578c..5b95555 100644 --- a/src/citizen_aqualand_parser.c +++ b/src/citizen_aqualand_parser.c @@ -45,6 +45,7 @@ static const dc_parser_vtable_t citizen_aqualand_parser_vtable = { sizeof(citizen_aqualand_parser_t), DC_FAMILY_CITIZEN_AQUALAND, citizen_aqualand_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ citizen_aqualand_parser_get_datetime, /* datetime */ diff --git a/src/cochran_commander_parser.c b/src/cochran_commander_parser.c index f1906ae..a4515ea 100644 --- a/src/cochran_commander_parser.c +++ b/src/cochran_commander_parser.c @@ -108,6 +108,7 @@ static const dc_parser_vtable_t cochran_commander_parser_vtable = { sizeof(cochran_commander_parser_t), DC_FAMILY_COCHRAN_COMMANDER, cochran_commander_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ cochran_commander_parser_get_datetime, /* datetime */ diff --git a/src/cressi_edy_parser.c b/src/cressi_edy_parser.c index 9d41635..3817fc7 100644 --- a/src/cressi_edy_parser.c +++ b/src/cressi_edy_parser.c @@ -47,6 +47,7 @@ static const dc_parser_vtable_t cressi_edy_parser_vtable = { sizeof(cressi_edy_parser_t), DC_FAMILY_CRESSI_EDY, cressi_edy_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ cressi_edy_parser_get_datetime, /* datetime */ diff --git a/src/cressi_goa_parser.c b/src/cressi_goa_parser.c index 8e25d5f..deb44b3 100644 --- a/src/cressi_goa_parser.c +++ b/src/cressi_goa_parser.c @@ -64,6 +64,7 @@ static const dc_parser_vtable_t cressi_goa_parser_vtable = { sizeof(cressi_goa_parser_t), DC_FAMILY_CRESSI_GOA, cressi_goa_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ cressi_goa_parser_get_datetime, /* datetime */ diff --git a/src/cressi_leonardo_parser.c b/src/cressi_leonardo_parser.c index 1899876..eefebdf 100644 --- a/src/cressi_leonardo_parser.c +++ b/src/cressi_leonardo_parser.c @@ -48,6 +48,7 @@ static const dc_parser_vtable_t cressi_leonardo_parser_vtable = { sizeof(cressi_leonardo_parser_t), DC_FAMILY_CRESSI_LEONARDO, cressi_leonardo_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ cressi_leonardo_parser_get_datetime, /* datetime */ diff --git a/src/deepsix_excursion_parser.c b/src/deepsix_excursion_parser.c index ad8aca0..8f14708 100644 --- a/src/deepsix_excursion_parser.c +++ b/src/deepsix_excursion_parser.c @@ -54,6 +54,7 @@ static const dc_parser_vtable_t deepsix_parser_vtable = { sizeof(deepsix_excursion_parser_t), DC_FAMILY_DEEPSIX_EXCURSION, deepsix_excursion_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ deepsix_excursion_parser_get_datetime, /* datetime */ diff --git a/src/diverite_nitekq_parser.c b/src/diverite_nitekq_parser.c index a4a13cf..5623769 100644 --- a/src/diverite_nitekq_parser.c +++ b/src/diverite_nitekq_parser.c @@ -58,6 +58,7 @@ static const dc_parser_vtable_t diverite_nitekq_parser_vtable = { sizeof(diverite_nitekq_parser_t), DC_FAMILY_DIVERITE_NITEKQ, diverite_nitekq_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ diverite_nitekq_parser_get_datetime, /* datetime */ diff --git a/src/divesystem_idive_parser.c b/src/divesystem_idive_parser.c index c19bfd4..1d19797 100644 --- a/src/divesystem_idive_parser.c +++ b/src/divesystem_idive_parser.c @@ -91,6 +91,7 @@ static const dc_parser_vtable_t divesystem_idive_parser_vtable = { sizeof(divesystem_idive_parser_t), DC_FAMILY_DIVESYSTEM_IDIVE, divesystem_idive_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ divesystem_idive_parser_get_datetime, /* datetime */ diff --git a/src/hw_ostc_parser.c b/src/hw_ostc_parser.c index 343cc6d..90994f8 100644 --- a/src/hw_ostc_parser.c +++ b/src/hw_ostc_parser.c @@ -137,6 +137,7 @@ static const dc_parser_vtable_t hw_ostc_parser_vtable = { sizeof(hw_ostc_parser_t), DC_FAMILY_HW_OSTC, hw_ostc_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ hw_ostc_parser_get_datetime, /* datetime */ diff --git a/src/libdivecomputer.symbols b/src/libdivecomputer.symbols index a8cb63c..a9d2d39 100644 --- a/src/libdivecomputer.symbols +++ b/src/libdivecomputer.symbols @@ -87,6 +87,7 @@ dc_custom_open dc_parser_new dc_parser_new2 +dc_parser_set_clock dc_parser_set_atmospheric dc_parser_set_density dc_parser_get_type diff --git a/src/liquivision_lynx_parser.c b/src/liquivision_lynx_parser.c index 8009ff8..764d20e 100644 --- a/src/liquivision_lynx_parser.c +++ b/src/liquivision_lynx_parser.c @@ -126,6 +126,7 @@ static const dc_parser_vtable_t liquivision_lynx_parser_vtable = { sizeof(liquivision_lynx_parser_t), DC_FAMILY_LIQUIVISION_LYNX, liquivision_lynx_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ liquivision_lynx_parser_get_datetime, /* datetime */ diff --git a/src/mares_darwin_parser.c b/src/mares_darwin_parser.c index 3bca55c..88e831c 100644 --- a/src/mares_darwin_parser.c +++ b/src/mares_darwin_parser.c @@ -56,6 +56,7 @@ static const dc_parser_vtable_t mares_darwin_parser_vtable = { sizeof(mares_darwin_parser_t), DC_FAMILY_MARES_DARWIN, mares_darwin_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ mares_darwin_parser_get_datetime, /* datetime */ diff --git a/src/mares_iconhd_parser.c b/src/mares_iconhd_parser.c index 5398cfc..3b17482 100644 --- a/src/mares_iconhd_parser.c +++ b/src/mares_iconhd_parser.c @@ -273,6 +273,7 @@ static const dc_parser_vtable_t mares_iconhd_parser_vtable = { sizeof(mares_iconhd_parser_t), DC_FAMILY_MARES_ICONHD, mares_iconhd_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ mares_iconhd_parser_get_datetime, /* datetime */ diff --git a/src/mares_nemo_parser.c b/src/mares_nemo_parser.c index 85957a0..2f26605 100644 --- a/src/mares_nemo_parser.c +++ b/src/mares_nemo_parser.c @@ -68,6 +68,7 @@ static const dc_parser_vtable_t mares_nemo_parser_vtable = { sizeof(mares_nemo_parser_t), DC_FAMILY_MARES_NEMO, mares_nemo_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ mares_nemo_parser_get_datetime, /* datetime */ diff --git a/src/mclean_extreme_parser.c b/src/mclean_extreme_parser.c index 5f99fda..694bf60 100644 --- a/src/mclean_extreme_parser.c +++ b/src/mclean_extreme_parser.c @@ -67,6 +67,7 @@ static const dc_parser_vtable_t mclean_extreme_parser_vtable = { sizeof(mclean_extreme_parser_t), DC_FAMILY_MCLEAN_EXTREME, mclean_extreme_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ mclean_extreme_parser_get_datetime, /* datetime */ diff --git a/src/oceanic_atom2_parser.c b/src/oceanic_atom2_parser.c index 90a9cfc..66bec88 100644 --- a/src/oceanic_atom2_parser.c +++ b/src/oceanic_atom2_parser.c @@ -140,6 +140,7 @@ static const dc_parser_vtable_t oceanic_atom2_parser_vtable = { sizeof(oceanic_atom2_parser_t), DC_FAMILY_OCEANIC_ATOM2, oceanic_atom2_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ oceanic_atom2_parser_get_datetime, /* datetime */ diff --git a/src/oceanic_veo250_parser.c b/src/oceanic_veo250_parser.c index 1eff473..4e59ede 100644 --- a/src/oceanic_veo250_parser.c +++ b/src/oceanic_veo250_parser.c @@ -57,6 +57,7 @@ static const dc_parser_vtable_t oceanic_veo250_parser_vtable = { sizeof(oceanic_veo250_parser_t), DC_FAMILY_OCEANIC_VEO250, oceanic_veo250_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ oceanic_veo250_parser_get_datetime, /* datetime */ diff --git a/src/oceanic_vtpro_parser.c b/src/oceanic_vtpro_parser.c index 6c8d200..1c60e62 100644 --- a/src/oceanic_vtpro_parser.c +++ b/src/oceanic_vtpro_parser.c @@ -53,6 +53,7 @@ static const dc_parser_vtable_t oceanic_vtpro_parser_vtable = { sizeof(oceanic_vtpro_parser_t), DC_FAMILY_OCEANIC_VTPRO, oceanic_vtpro_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ oceanic_vtpro_parser_get_datetime, /* datetime */ diff --git a/src/parser-private.h b/src/parser-private.h index 73ef161..af1a76e 100644 --- a/src/parser-private.h +++ b/src/parser-private.h @@ -52,6 +52,8 @@ struct dc_parser_vtable_t { dc_status_t (*set_data) (dc_parser_t *parser, const unsigned char *data, unsigned int size); + dc_status_t (*set_clock) (dc_parser_t *parser, unsigned int devtime, dc_ticks_t systime); + dc_status_t (*set_atmospheric) (dc_parser_t *parser, double atmospheric); dc_status_t (*set_density) (dc_parser_t *parser, double density); diff --git a/src/parser.c b/src/parser.c index 1f74ea8..1ae480a 100644 --- a/src/parser.c +++ b/src/parser.c @@ -270,6 +270,19 @@ dc_parser_get_type (dc_parser_t *parser) } +dc_status_t +dc_parser_set_clock (dc_parser_t *parser, unsigned int devtime, dc_ticks_t systime) +{ + if (parser == NULL) + return DC_STATUS_UNSUPPORTED; + + if (parser->vtable->set_clock == NULL) + return DC_STATUS_UNSUPPORTED; + + return parser->vtable->set_clock (parser, devtime, systime); +} + + dc_status_t dc_parser_set_atmospheric (dc_parser_t *parser, double atmospheric) { diff --git a/src/reefnet_sensus_parser.c b/src/reefnet_sensus_parser.c index 4af1660..a93914b 100644 --- a/src/reefnet_sensus_parser.c +++ b/src/reefnet_sensus_parser.c @@ -49,6 +49,7 @@ struct reefnet_sensus_parser_t { }; static dc_status_t reefnet_sensus_parser_set_data (dc_parser_t *abstract, const unsigned char *data, unsigned int size); +static dc_status_t reefnet_sensus_parser_set_clock (dc_parser_t *abstract, unsigned int devtime, dc_ticks_t systime); static dc_status_t reefnet_sensus_parser_set_atmospheric (dc_parser_t *abstract, double atmospheric); static dc_status_t reefnet_sensus_parser_set_density (dc_parser_t *abstract, double density); static dc_status_t reefnet_sensus_parser_get_datetime (dc_parser_t *abstract, dc_datetime_t *datetime); @@ -59,6 +60,7 @@ static const dc_parser_vtable_t reefnet_sensus_parser_vtable = { sizeof(reefnet_sensus_parser_t), DC_FAMILY_REEFNET_SENSUS, reefnet_sensus_parser_set_data, /* set_data */ + reefnet_sensus_parser_set_clock, /* set_clock */ reefnet_sensus_parser_set_atmospheric, /* set_atmospheric */ reefnet_sensus_parser_set_density, /* set_density */ reefnet_sensus_parser_get_datetime, /* datetime */ @@ -128,6 +130,17 @@ reefnet_sensus_parser_set_calibration (dc_parser_t *abstract, double atmospheric static dc_status_t +reefnet_sensus_parser_set_clock (dc_parser_t *abstract, unsigned int devtime, dc_ticks_t systime) +{ + reefnet_sensus_parser_t *parser = (reefnet_sensus_parser_t *) abstract; + + parser->devtime = devtime; + parser->systime = systime; + + return DC_STATUS_SUCCESS; +} + + reefnet_sensus_parser_set_atmospheric (dc_parser_t *abstract, double atmospheric) { reefnet_sensus_parser_t *parser = (reefnet_sensus_parser_t *) abstract; diff --git a/src/reefnet_sensuspro_parser.c b/src/reefnet_sensuspro_parser.c index f8f23eb..ad371d7 100644 --- a/src/reefnet_sensuspro_parser.c +++ b/src/reefnet_sensuspro_parser.c @@ -48,6 +48,7 @@ struct reefnet_sensuspro_parser_t { }; static dc_status_t reefnet_sensuspro_parser_set_data (dc_parser_t *abstract, const unsigned char *data, unsigned int size); +static dc_status_t reefnet_sensuspro_parser_set_clock (dc_parser_t *abstract, unsigned int devtime, dc_ticks_t systime); static dc_status_t reefnet_sensuspro_parser_set_atmospheric (dc_parser_t *abstract, double atmospheric); static dc_status_t reefnet_sensuspro_parser_set_density (dc_parser_t *abstract, double density); static dc_status_t reefnet_sensuspro_parser_get_datetime (dc_parser_t *abstract, dc_datetime_t *datetime); @@ -58,6 +59,7 @@ static const dc_parser_vtable_t reefnet_sensuspro_parser_vtable = { sizeof(reefnet_sensuspro_parser_t), DC_FAMILY_REEFNET_SENSUSPRO, reefnet_sensuspro_parser_set_data, /* set_data */ + reefnet_sensuspro_parser_set_clock, /* set_clock */ reefnet_sensuspro_parser_set_atmospheric, /* set_atmospheric */ reefnet_sensuspro_parser_set_density, /* set_density */ reefnet_sensuspro_parser_get_datetime, /* datetime */ @@ -126,6 +128,18 @@ reefnet_sensuspro_parser_set_calibration (dc_parser_t *abstract, double atmosphe } +static dc_status_t +reefnet_sensuspro_parser_set_clock (dc_parser_t *abstract, unsigned int devtime, dc_ticks_t systime) +{ + reefnet_sensuspro_parser_t *parser = (reefnet_sensuspro_parser_t *) abstract; + + parser->devtime = devtime; + parser->systime = systime; + + return DC_STATUS_SUCCESS; +} + + static dc_status_t reefnet_sensuspro_parser_set_atmospheric (dc_parser_t *abstract, double atmospheric) { diff --git a/src/reefnet_sensusultra_parser.c b/src/reefnet_sensusultra_parser.c index f19364e..bc52f1f 100644 --- a/src/reefnet_sensusultra_parser.c +++ b/src/reefnet_sensusultra_parser.c @@ -48,6 +48,7 @@ struct reefnet_sensusultra_parser_t { }; static dc_status_t reefnet_sensusultra_parser_set_data (dc_parser_t *abstract, const unsigned char *data, unsigned int size); +static dc_status_t reefnet_sensusultra_parser_set_clock (dc_parser_t *abstract, unsigned int devtime, dc_ticks_t systime); static dc_status_t reefnet_sensusultra_parser_set_atmospheric (dc_parser_t *abstract, double atmospheric); static dc_status_t reefnet_sensusultra_parser_set_density (dc_parser_t *abstract, double density); static dc_status_t reefnet_sensusultra_parser_get_datetime (dc_parser_t *abstract, dc_datetime_t *datetime); @@ -58,6 +59,7 @@ static const dc_parser_vtable_t reefnet_sensusultra_parser_vtable = { sizeof(reefnet_sensusultra_parser_t), DC_FAMILY_REEFNET_SENSUSULTRA, reefnet_sensusultra_parser_set_data, /* set_data */ + reefnet_sensusultra_parser_set_clock, /* set_clock */ reefnet_sensusultra_parser_set_atmospheric, /* set_atmospheric */ reefnet_sensusultra_parser_set_density, /* set_density */ reefnet_sensusultra_parser_get_datetime, /* datetime */ @@ -126,6 +128,18 @@ reefnet_sensusultra_parser_set_calibration (dc_parser_t *abstract, double atmosp } +static dc_status_t +reefnet_sensusultra_parser_set_clock (dc_parser_t *abstract, unsigned int devtime, dc_ticks_t systime) +{ + reefnet_sensusultra_parser_t *parser = (reefnet_sensusultra_parser_t *) abstract; + + parser->devtime = devtime; + parser->systime = systime; + + return DC_STATUS_SUCCESS; +} + + static dc_status_t reefnet_sensusultra_parser_set_atmospheric (dc_parser_t *abstract, double atmospheric) { diff --git a/src/seac_screen_parser.c b/src/seac_screen_parser.c index 2a8647d..8c588d2 100644 --- a/src/seac_screen_parser.c +++ b/src/seac_screen_parser.c @@ -57,6 +57,7 @@ static const dc_parser_vtable_t seac_screen_parser_vtable = { sizeof(seac_screen_parser_t), DC_FAMILY_SEAC_SCREEN, seac_screen_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ seac_screen_parser_get_datetime, /* datetime */ diff --git a/src/shearwater_predator_parser.c b/src/shearwater_predator_parser.c index b658e6e..3787d0a 100644 --- a/src/shearwater_predator_parser.c +++ b/src/shearwater_predator_parser.c @@ -152,6 +152,7 @@ static const dc_parser_vtable_t shearwater_predator_parser_vtable = { sizeof(shearwater_predator_parser_t), DC_FAMILY_SHEARWATER_PREDATOR, shearwater_predator_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ shearwater_predator_parser_get_datetime, /* datetime */ @@ -164,6 +165,7 @@ static const dc_parser_vtable_t shearwater_petrel_parser_vtable = { sizeof(shearwater_predator_parser_t), DC_FAMILY_SHEARWATER_PETREL, shearwater_predator_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ shearwater_predator_parser_get_datetime, /* datetime */ diff --git a/src/sporasub_sp2_parser.c b/src/sporasub_sp2_parser.c index 3869a39..5ac44b8 100644 --- a/src/sporasub_sp2_parser.c +++ b/src/sporasub_sp2_parser.c @@ -46,6 +46,7 @@ static const dc_parser_vtable_t sporasub_sp2_parser_vtable = { sizeof(sporasub_sp2_parser_t), DC_FAMILY_SPORASUB_SP2, sporasub_sp2_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ sporasub_sp2_parser_get_datetime, /* datetime */ diff --git a/src/suunto_d9_parser.c b/src/suunto_d9_parser.c index 164b01e..0abb079 100644 --- a/src/suunto_d9_parser.c +++ b/src/suunto_d9_parser.c @@ -101,6 +101,7 @@ static const dc_parser_vtable_t suunto_d9_parser_vtable = { sizeof(suunto_d9_parser_t), DC_FAMILY_SUUNTO_D9, suunto_d9_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ suunto_d9_parser_get_datetime, /* datetime */ diff --git a/src/suunto_eon_parser.c b/src/suunto_eon_parser.c index 28d94c2..8e80aca 100644 --- a/src/suunto_eon_parser.c +++ b/src/suunto_eon_parser.c @@ -52,6 +52,7 @@ static const dc_parser_vtable_t suunto_eon_parser_vtable = { sizeof(suunto_eon_parser_t), DC_FAMILY_SUUNTO_EON, suunto_eon_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ suunto_eon_parser_get_datetime, /* datetime */ diff --git a/src/suunto_eonsteel_parser.c b/src/suunto_eonsteel_parser.c index fa9d880..db24cf3 100644 --- a/src/suunto_eonsteel_parser.c +++ b/src/suunto_eonsteel_parser.c @@ -1525,6 +1525,7 @@ static const dc_parser_vtable_t suunto_eonsteel_parser_vtable = { sizeof(suunto_eonsteel_parser_t), DC_FAMILY_SUUNTO_EONSTEEL, suunto_eonsteel_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ suunto_eonsteel_parser_get_datetime, /* datetime */ diff --git a/src/suunto_solution_parser.c b/src/suunto_solution_parser.c index 440a067..59648d5 100644 --- a/src/suunto_solution_parser.c +++ b/src/suunto_solution_parser.c @@ -47,6 +47,7 @@ static const dc_parser_vtable_t suunto_solution_parser_vtable = { sizeof(suunto_solution_parser_t), DC_FAMILY_SUUNTO_SOLUTION, suunto_solution_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ NULL, /* datetime */ diff --git a/src/suunto_vyper_parser.c b/src/suunto_vyper_parser.c index e14ffc8..4970b86 100644 --- a/src/suunto_vyper_parser.c +++ b/src/suunto_vyper_parser.c @@ -53,6 +53,7 @@ static const dc_parser_vtable_t suunto_vyper_parser_vtable = { sizeof(suunto_vyper_parser_t), DC_FAMILY_SUUNTO_VYPER, suunto_vyper_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ suunto_vyper_parser_get_datetime, /* datetime */ diff --git a/src/tecdiving_divecomputereu_parser.c b/src/tecdiving_divecomputereu_parser.c index 7b8d76b..d060996 100644 --- a/src/tecdiving_divecomputereu_parser.c +++ b/src/tecdiving_divecomputereu_parser.c @@ -45,6 +45,7 @@ static const dc_parser_vtable_t tecdiving_divecomputereu_parser_vtable = { sizeof(tecdiving_divecomputereu_parser_t), DC_FAMILY_TECDIVING_DIVECOMPUTEREU, tecdiving_divecomputereu_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ tecdiving_divecomputereu_parser_get_datetime, /* datetime */ diff --git a/src/uwatec_memomouse_parser.c b/src/uwatec_memomouse_parser.c index ae2267c..3c818fa 100644 --- a/src/uwatec_memomouse_parser.c +++ b/src/uwatec_memomouse_parser.c @@ -39,6 +39,7 @@ struct uwatec_memomouse_parser_t { }; static dc_status_t uwatec_memomouse_parser_set_data (dc_parser_t *abstract, const unsigned char *data, unsigned int size); +static dc_status_t uwatec_memomouse_parser_set_clock (dc_parser_t *abstract, unsigned int devtime, dc_ticks_t systime); static dc_status_t uwatec_memomouse_parser_get_datetime (dc_parser_t *abstract, dc_datetime_t *datetime); static dc_status_t uwatec_memomouse_parser_get_field (dc_parser_t *abstract, dc_field_type_t type, unsigned int flags, void *value); static dc_status_t uwatec_memomouse_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata); @@ -47,6 +48,7 @@ static const dc_parser_vtable_t uwatec_memomouse_parser_vtable = { sizeof(uwatec_memomouse_parser_t), DC_FAMILY_UWATEC_MEMOMOUSE, uwatec_memomouse_parser_set_data, /* set_data */ + uwatec_memomouse_parser_set_clock, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ uwatec_memomouse_parser_get_datetime, /* datetime */ @@ -88,6 +90,18 @@ uwatec_memomouse_parser_set_data (dc_parser_t *abstract, const unsigned char *da } +static dc_status_t +uwatec_memomouse_parser_set_clock (dc_parser_t *abstract, unsigned int devtime, dc_ticks_t systime) +{ + uwatec_memomouse_parser_t *parser = (uwatec_memomouse_parser_t *) abstract; + + parser->devtime = devtime; + parser->systime = systime; + + return DC_STATUS_SUCCESS; +} + + static dc_status_t uwatec_memomouse_parser_get_datetime (dc_parser_t *abstract, dc_datetime_t *datetime) { diff --git a/src/uwatec_smart_parser.c b/src/uwatec_smart_parser.c index ec1a25e..3c4e348 100644 --- a/src/uwatec_smart_parser.c +++ b/src/uwatec_smart_parser.c @@ -167,6 +167,7 @@ static const dc_parser_vtable_t uwatec_smart_parser_vtable = { sizeof(uwatec_smart_parser_t), DC_FAMILY_UWATEC_SMART, uwatec_smart_parser_set_data, /* set_data */ + NULL, /* set_clock */ NULL, /* set_atmospheric */ NULL, /* set_density */ uwatec_smart_parser_get_datetime, /* datetime */