From 985323eefbb1c0621fdbcb55536aa543a5fe714a Mon Sep 17 00:00:00 2001 From: Jef Driesen Date: Sun, 13 May 2012 19:18:01 +0200 Subject: [PATCH] Move the version function to the device specific api. The version function requires device specific knowledge to use it (at least the required buffer size), it is already called internally when necessary, and only a few backends support it. Thus there is no good reason to keep it in the high-level public api. --- examples/suunto_d9_test.c | 8 ++++---- examples/suunto_vyper2_test.c | 8 ++++---- examples/uwatec_smart_test.c | 4 ++-- include/libdivecomputer/atomics_cobalt.h | 3 +++ include/libdivecomputer/hw_frog.h | 3 +++ include/libdivecomputer/oceanic_atom2.h | 3 +++ include/libdivecomputer/oceanic_veo250.h | 3 +++ include/libdivecomputer/oceanic_vtpro.h | 3 +++ include/libdivecomputer/suunto_d9.h | 3 +++ include/libdivecomputer/suunto_vyper2.h | 3 +++ include/libdivecomputer/uwatec_smart.h | 3 +++ src/atomics_cobalt.c | 4 +--- src/cressi_edy.c | 1 - src/device-private.h | 2 -- src/device.c | 13 ------------- src/hw_frog.c | 4 +--- src/hw_ostc.c | 1 - src/libdivecomputer.symbols | 9 ++++++++- src/mares_darwin.c | 1 - src/mares_iconhd.c | 1 - src/mares_nemo.c | 1 - src/mares_puck.c | 1 - src/oceanic_atom2.c | 4 +--- src/oceanic_veo250.c | 4 +--- src/oceanic_vtpro.c | 4 +--- src/reefnet_sensus.c | 1 - src/reefnet_sensuspro.c | 1 - src/reefnet_sensusultra.c | 1 - src/suunto_d9.c | 11 ++++++++++- src/suunto_eon.c | 1 - src/suunto_solution.c | 1 - src/suunto_vyper.c | 1 - src/suunto_vyper2.c | 11 ++++++++++- src/uwatec_aladin.c | 1 - src/uwatec_memomouse.c | 1 - src/uwatec_smart.c | 4 +--- src/zeagle_n2ition3.c | 1 - 37 files changed, 68 insertions(+), 61 deletions(-) diff --git a/examples/suunto_d9_test.c b/examples/suunto_d9_test.c index 4c49743..d83d1b6 100644 --- a/examples/suunto_d9_test.c +++ b/examples/suunto_d9_test.c @@ -44,9 +44,9 @@ test_dump_sdm (const char* name) return rc; } - message ("dc_device_version\n"); + message ("suunto_d9_device_version\n"); unsigned char version[SUUNTO_D9_VERSION_SIZE] = {0}; - rc = dc_device_version (device, version, sizeof (version)); + rc = suunto_d9_device_version (device, version, sizeof (version)); if (rc != DC_STATUS_SUCCESS) { WARNING ("Cannot identify computer."); dc_device_close (device); @@ -95,9 +95,9 @@ test_dump_memory (const char* name, const char* filename) return rc; } - message ("dc_device_version\n"); + message ("suunto_d9_device_version\n"); unsigned char version[SUUNTO_D9_VERSION_SIZE] = {0}; - rc = dc_device_version (device, version, sizeof (version)); + rc = suunto_d9_device_version (device, version, sizeof (version)); if (rc != DC_STATUS_SUCCESS) { WARNING ("Cannot identify computer."); dc_device_close (device); diff --git a/examples/suunto_vyper2_test.c b/examples/suunto_vyper2_test.c index 8d7724c..d515b6d 100644 --- a/examples/suunto_vyper2_test.c +++ b/examples/suunto_vyper2_test.c @@ -44,9 +44,9 @@ test_dump_sdm (const char* name) return rc; } - message ("dc_device_version\n"); + message ("suunto_vyper2_device_version\n"); unsigned char version[SUUNTO_VYPER2_VERSION_SIZE] = {0}; - rc = dc_device_version (device, version, sizeof (version)); + rc = suunto_vyper2_device_version (device, version, sizeof (version)); if (rc != DC_STATUS_SUCCESS) { WARNING ("Cannot identify computer."); dc_device_close (device); @@ -95,9 +95,9 @@ test_dump_memory (const char* name, const char* filename) return rc; } - message ("dc_device_version\n"); + message ("suunto_vyper2_device_version\n"); unsigned char version[SUUNTO_VYPER2_VERSION_SIZE] = {0}; - rc = dc_device_version (device, version, sizeof (version)); + rc = suunto_vyper2_device_version (device, version, sizeof (version)); if (rc != DC_STATUS_SUCCESS) { WARNING ("Cannot identify computer."); dc_device_close (device); diff --git a/examples/uwatec_smart_test.c b/examples/uwatec_smart_test.c index c3b88dd..8b2ceb3 100644 --- a/examples/uwatec_smart_test.c +++ b/examples/uwatec_smart_test.c @@ -46,9 +46,9 @@ test_dump_memory (const char* filename) return rc; } - message ("dc_device_version\n"); + message ("uwatec_smart_device_version\n"); unsigned char version[UWATEC_SMART_VERSION_SIZE] = {0}; - rc = dc_device_version (device, version, sizeof (version)); + rc = uwatec_smart_device_version (device, version, sizeof (version)); if (rc != DC_STATUS_SUCCESS) { WARNING ("Cannot identify computer."); dc_device_close (device); diff --git a/include/libdivecomputer/atomics_cobalt.h b/include/libdivecomputer/atomics_cobalt.h index a78f04d..b8a36ca 100644 --- a/include/libdivecomputer/atomics_cobalt.h +++ b/include/libdivecomputer/atomics_cobalt.h @@ -33,6 +33,9 @@ extern "C" { dc_status_t atomics_cobalt_device_open (dc_device_t **device, dc_context_t *context); +dc_status_t +atomics_cobalt_device_version (dc_device_t *device, unsigned char data[], unsigned int size); + dc_status_t atomics_cobalt_device_set_simulation (dc_device_t *device, unsigned int simulation); diff --git a/include/libdivecomputer/hw_frog.h b/include/libdivecomputer/hw_frog.h index 3d59445..a831ba4 100644 --- a/include/libdivecomputer/hw_frog.h +++ b/include/libdivecomputer/hw_frog.h @@ -37,6 +37,9 @@ extern "C" { dc_status_t hw_frog_device_open (dc_device_t **device, dc_context_t *context, const char *name); +dc_status_t +hw_frog_device_version (dc_device_t *device, unsigned char data[], unsigned int size); + dc_status_t hw_frog_device_clock (dc_device_t *device, const dc_datetime_t *datetime); diff --git a/include/libdivecomputer/oceanic_atom2.h b/include/libdivecomputer/oceanic_atom2.h index f66954a..c8cce4f 100644 --- a/include/libdivecomputer/oceanic_atom2.h +++ b/include/libdivecomputer/oceanic_atom2.h @@ -33,6 +33,9 @@ extern "C" { dc_status_t oceanic_atom2_device_open (dc_device_t **device, dc_context_t *context, const char *name); +dc_status_t +oceanic_atom2_device_version (dc_device_t *device, unsigned char data[], unsigned int size); + dc_status_t oceanic_atom2_device_keepalive (dc_device_t *device); diff --git a/include/libdivecomputer/oceanic_veo250.h b/include/libdivecomputer/oceanic_veo250.h index bf7bbcb..53df7b2 100644 --- a/include/libdivecomputer/oceanic_veo250.h +++ b/include/libdivecomputer/oceanic_veo250.h @@ -33,6 +33,9 @@ extern "C" { dc_status_t oceanic_veo250_device_open (dc_device_t **device, dc_context_t *context, const char *name); +dc_status_t +oceanic_veo250_device_version (dc_device_t *device, unsigned char data[], unsigned int size); + dc_status_t oceanic_veo250_device_keepalive (dc_device_t *device); diff --git a/include/libdivecomputer/oceanic_vtpro.h b/include/libdivecomputer/oceanic_vtpro.h index 4d9825b..e862694 100644 --- a/include/libdivecomputer/oceanic_vtpro.h +++ b/include/libdivecomputer/oceanic_vtpro.h @@ -33,6 +33,9 @@ extern "C" { dc_status_t oceanic_vtpro_device_open (dc_device_t **device, dc_context_t *context, const char *name); +dc_status_t +oceanic_vtpro_device_version (dc_device_t *device, unsigned char data[], unsigned int size); + dc_status_t oceanic_vtpro_device_keepalive (dc_device_t *device); diff --git a/include/libdivecomputer/suunto_d9.h b/include/libdivecomputer/suunto_d9.h index f2f9977..734efd8 100644 --- a/include/libdivecomputer/suunto_d9.h +++ b/include/libdivecomputer/suunto_d9.h @@ -35,6 +35,9 @@ extern "C" { dc_status_t suunto_d9_device_open (dc_device_t **device, dc_context_t *context, const char *name, unsigned int model); +dc_status_t +suunto_d9_device_version (dc_device_t *device, unsigned char data[], unsigned int size); + dc_status_t suunto_d9_device_reset_maxdepth (dc_device_t *device); diff --git a/include/libdivecomputer/suunto_vyper2.h b/include/libdivecomputer/suunto_vyper2.h index dbefdd1..dabde04 100644 --- a/include/libdivecomputer/suunto_vyper2.h +++ b/include/libdivecomputer/suunto_vyper2.h @@ -34,6 +34,9 @@ extern "C" { dc_status_t suunto_vyper2_device_open (dc_device_t **device, dc_context_t *context, const char *name); +dc_status_t +suunto_vyper2_device_version (dc_device_t *device, unsigned char data[], unsigned int size); + dc_status_t suunto_vyper2_device_reset_maxdepth (dc_device_t *device); diff --git a/include/libdivecomputer/uwatec_smart.h b/include/libdivecomputer/uwatec_smart.h index a8add5b..191f389 100644 --- a/include/libdivecomputer/uwatec_smart.h +++ b/include/libdivecomputer/uwatec_smart.h @@ -35,6 +35,9 @@ extern "C" { dc_status_t uwatec_smart_device_open (dc_device_t **device, dc_context_t *context); +dc_status_t +uwatec_smart_device_version (dc_device_t *device, unsigned char data[], unsigned int size); + dc_status_t uwatec_smart_device_set_timestamp (dc_device_t *device, unsigned int timestamp); diff --git a/src/atomics_cobalt.c b/src/atomics_cobalt.c index aa597fd..44d2d79 100644 --- a/src/atomics_cobalt.c +++ b/src/atomics_cobalt.c @@ -60,14 +60,12 @@ typedef struct atomics_cobalt_device_t { } atomics_cobalt_device_t; static dc_status_t atomics_cobalt_device_set_fingerprint (dc_device_t *abstract, const unsigned char data[], unsigned int size); -static dc_status_t atomics_cobalt_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size); static dc_status_t atomics_cobalt_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata); static dc_status_t atomics_cobalt_device_close (dc_device_t *abstract); static const device_backend_t atomics_cobalt_device_backend = { DC_FAMILY_ATOMICS_COBALT, atomics_cobalt_device_set_fingerprint, /* set_fingerprint */ - atomics_cobalt_device_version, /* version */ NULL, /* read */ NULL, /* write */ NULL, /* dump */ @@ -205,7 +203,7 @@ atomics_cobalt_device_set_simulation (dc_device_t *abstract, unsigned int simula } -static dc_status_t +dc_status_t atomics_cobalt_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size) { atomics_cobalt_device_t *device = (atomics_cobalt_device_t *) abstract; diff --git a/src/cressi_edy.c b/src/cressi_edy.c index 92a4053..56eeac1 100644 --- a/src/cressi_edy.c +++ b/src/cressi_edy.c @@ -66,7 +66,6 @@ static dc_status_t cressi_edy_device_close (dc_device_t *abstract); static const device_backend_t cressi_edy_device_backend = { DC_FAMILY_CRESSI_EDY, cressi_edy_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ cressi_edy_device_read, /* read */ NULL, /* write */ cressi_edy_device_dump, /* dump */ diff --git a/src/device-private.h b/src/device-private.h index 83179a4..e5fee79 100644 --- a/src/device-private.h +++ b/src/device-private.h @@ -59,8 +59,6 @@ struct device_backend_t { dc_status_t (*set_fingerprint) (dc_device_t *device, const unsigned char data[], unsigned int size); - dc_status_t (*version) (dc_device_t *device, unsigned char data[], unsigned int size); - dc_status_t (*read) (dc_device_t *device, unsigned int address, unsigned char data[], unsigned int size); dc_status_t (*write) (dc_device_t *device, unsigned int address, const unsigned char data[], unsigned int size); diff --git a/src/device.c b/src/device.c index 149cee8..5f599b4 100644 --- a/src/device.c +++ b/src/device.c @@ -193,19 +193,6 @@ dc_device_set_fingerprint (dc_device_t *device, const unsigned char data[], unsi } -dc_status_t -dc_device_version (dc_device_t *device, unsigned char data[], unsigned int size) -{ - if (device == NULL) - return DC_STATUS_UNSUPPORTED; - - if (device->backend->version == NULL) - return DC_STATUS_UNSUPPORTED; - - return device->backend->version (device, data, size); -} - - dc_status_t dc_device_read (dc_device_t *device, unsigned int address, unsigned char data[], unsigned int size) { diff --git a/src/hw_frog.c b/src/hw_frog.c index 4d19ab2..45e5b04 100644 --- a/src/hw_frog.c +++ b/src/hw_frog.c @@ -64,14 +64,12 @@ typedef struct hw_frog_device_t { } hw_frog_device_t; static dc_status_t hw_frog_device_set_fingerprint (dc_device_t *abstract, const unsigned char data[], unsigned int size); -static dc_status_t hw_frog_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size); static dc_status_t hw_frog_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata); static dc_status_t hw_frog_device_close (dc_device_t *abstract); static const device_backend_t hw_frog_device_backend = { DC_FAMILY_HW_FROG, hw_frog_device_set_fingerprint, /* set_fingerprint */ - hw_frog_device_version, /* version */ NULL, /* read */ NULL, /* write */ NULL, /* dump */ @@ -294,7 +292,7 @@ hw_frog_device_set_fingerprint (dc_device_t *abstract, const unsigned char data[ } -static dc_status_t +dc_status_t hw_frog_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size) { hw_frog_device_t *device = (hw_frog_device_t *) abstract; diff --git a/src/hw_ostc.c b/src/hw_ostc.c index c500858..735f6e5 100644 --- a/src/hw_ostc.c +++ b/src/hw_ostc.c @@ -62,7 +62,6 @@ static dc_status_t hw_ostc_device_close (dc_device_t *abstract); static const device_backend_t hw_ostc_device_backend = { DC_FAMILY_HW_OSTC, hw_ostc_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ NULL, /* read */ NULL, /* write */ hw_ostc_device_dump, /* dump */ diff --git a/src/libdivecomputer.symbols b/src/libdivecomputer.symbols index 24718d3..8ab0339 100644 --- a/src/libdivecomputer.symbols +++ b/src/libdivecomputer.symbols @@ -72,7 +72,6 @@ dc_device_read dc_device_set_cancel dc_device_set_events dc_device_set_fingerprint -dc_device_version dc_device_write cressi_edy_device_open @@ -85,10 +84,13 @@ mares_darwin_extract_dives mares_iconhd_device_open mares_iconhd_extract_dives oceanic_atom2_device_open +oceanic_atom2_device_version oceanic_atom2_device_keepalive oceanic_veo250_device_open +oceanic_veo250_device_version oceanic_veo250_device_keepalive oceanic_vtpro_device_open +oceanic_vtpro_device_version oceanic_vtpro_device_keepalive reefnet_sensus_device_open reefnet_sensus_device_set_timestamp @@ -109,6 +111,7 @@ reefnet_sensusultra_device_write_parameter reefnet_sensusultra_device_write_user reefnet_sensusultra_extract_dives suunto_d9_device_open +suunto_d9_device_version suunto_d9_device_reset_maxdepth suunto_solution_device_open suunto_solution_extract_dives @@ -117,6 +120,7 @@ suunto_eon_device_write_interval suunto_eon_device_write_name suunto_eon_extract_dives suunto_vyper2_device_open +suunto_vyper2_device_version suunto_vyper2_device_reset_maxdepth suunto_vyper_device_open suunto_vyper_device_read_dive @@ -129,6 +133,7 @@ uwatec_memomouse_device_open uwatec_memomouse_device_set_timestamp uwatec_memomouse_extract_dives uwatec_smart_device_open +uwatec_smart_device_version uwatec_smart_device_set_timestamp uwatec_smart_extract_dives hw_ostc_device_open @@ -140,9 +145,11 @@ hw_ostc_device_reset hw_ostc_device_screenshot hw_ostc_extract_dives hw_frog_device_open +hw_frog_device_version hw_frog_device_clock hw_frog_device_display hw_frog_device_customtext zeagle_n2ition3_device_open atomics_cobalt_device_open +atomics_cobalt_device_version atomics_cobalt_device_set_simulation diff --git a/src/mares_darwin.c b/src/mares_darwin.c index c1af997..8da7e9f 100644 --- a/src/mares_darwin.c +++ b/src/mares_darwin.c @@ -63,7 +63,6 @@ static dc_status_t mares_darwin_device_close (dc_device_t *abstract); static const device_backend_t mares_darwin_device_backend = { DC_FAMILY_MARES_DARWIN, mares_darwin_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ mares_common_device_read, /* read */ NULL, /* write */ mares_darwin_device_dump, /* dump */ diff --git a/src/mares_iconhd.c b/src/mares_iconhd.c index 7d5e551..9e8dd07 100644 --- a/src/mares_iconhd.c +++ b/src/mares_iconhd.c @@ -67,7 +67,6 @@ static dc_status_t mares_iconhd_device_close (dc_device_t *abstract); static const device_backend_t mares_iconhd_device_backend = { DC_FAMILY_MARES_ICONHD, mares_iconhd_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ mares_iconhd_device_read, /* read */ NULL, /* write */ mares_iconhd_device_dump, /* dump */ diff --git a/src/mares_nemo.c b/src/mares_nemo.c index 07010ae..b805c90 100644 --- a/src/mares_nemo.c +++ b/src/mares_nemo.c @@ -61,7 +61,6 @@ static dc_status_t mares_nemo_device_close (dc_device_t *abstract); static const device_backend_t mares_nemo_device_backend = { DC_FAMILY_MARES_NEMO, mares_nemo_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ NULL, /* read */ NULL, /* write */ mares_nemo_device_dump, /* dump */ diff --git a/src/mares_puck.c b/src/mares_puck.c index 96e9f8a..d379a13 100644 --- a/src/mares_puck.c +++ b/src/mares_puck.c @@ -51,7 +51,6 @@ static dc_status_t mares_puck_device_close (dc_device_t *abstract); static const device_backend_t mares_puck_device_backend = { DC_FAMILY_MARES_PUCK, mares_puck_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ mares_common_device_read, /* read */ NULL, /* write */ mares_puck_device_dump, /* dump */ diff --git a/src/oceanic_atom2.c b/src/oceanic_atom2.c index 4c71a10..3c039dd 100644 --- a/src/oceanic_atom2.c +++ b/src/oceanic_atom2.c @@ -48,7 +48,6 @@ typedef struct oceanic_atom2_device_t { unsigned char version[PAGESIZE]; } oceanic_atom2_device_t; -static dc_status_t oceanic_atom2_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size); static dc_status_t oceanic_atom2_device_read (dc_device_t *abstract, unsigned int address, unsigned char data[], unsigned int size); static dc_status_t oceanic_atom2_device_write (dc_device_t *abstract, unsigned int address, const unsigned char data[], unsigned int size); static dc_status_t oceanic_atom2_device_close (dc_device_t *abstract); @@ -56,7 +55,6 @@ static dc_status_t oceanic_atom2_device_close (dc_device_t *abstract); static const device_backend_t oceanic_atom2_device_backend = { DC_FAMILY_OCEANIC_ATOM2, oceanic_common_device_set_fingerprint, /* set_fingerprint */ - oceanic_atom2_device_version, /* version */ oceanic_atom2_device_read, /* read */ oceanic_atom2_device_write, /* write */ oceanic_common_device_dump, /* dump */ @@ -455,7 +453,7 @@ oceanic_atom2_device_keepalive (dc_device_t *abstract) } -static dc_status_t +dc_status_t oceanic_atom2_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size) { oceanic_atom2_device_t *device = (oceanic_atom2_device_t*) abstract; diff --git a/src/oceanic_veo250.c b/src/oceanic_veo250.c index 4003f4d..1005f24 100644 --- a/src/oceanic_veo250.c +++ b/src/oceanic_veo250.c @@ -49,14 +49,12 @@ typedef struct oceanic_veo250_device_t { unsigned char version[PAGESIZE]; } oceanic_veo250_device_t; -static dc_status_t oceanic_veo250_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size); static dc_status_t oceanic_veo250_device_read (dc_device_t *abstract, unsigned int address, unsigned char data[], unsigned int size); static dc_status_t oceanic_veo250_device_close (dc_device_t *abstract); static const device_backend_t oceanic_veo250_device_backend = { DC_FAMILY_OCEANIC_VEO250, oceanic_common_device_set_fingerprint, /* set_fingerprint */ - oceanic_veo250_device_version, /* version */ oceanic_veo250_device_read, /* read */ NULL, /* write */ oceanic_common_device_dump, /* dump */ @@ -362,7 +360,7 @@ oceanic_veo250_device_keepalive (dc_device_t *abstract) } -static dc_status_t +dc_status_t oceanic_veo250_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size) { oceanic_veo250_device_t *device = (oceanic_veo250_device_t*) abstract; diff --git a/src/oceanic_vtpro.c b/src/oceanic_vtpro.c index 21f9e97..ec9980f 100644 --- a/src/oceanic_vtpro.c +++ b/src/oceanic_vtpro.c @@ -49,14 +49,12 @@ typedef struct oceanic_vtpro_device_t { unsigned char version[PAGESIZE]; } oceanic_vtpro_device_t; -static dc_status_t oceanic_vtpro_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size); static dc_status_t oceanic_vtpro_device_read (dc_device_t *abstract, unsigned int address, unsigned char data[], unsigned int size); static dc_status_t oceanic_vtpro_device_close (dc_device_t *abstract); static const device_backend_t oceanic_vtpro_device_backend = { DC_FAMILY_OCEANIC_VTPRO, oceanic_common_device_set_fingerprint, /* set_fingerprint */ - oceanic_vtpro_device_version, /* version */ oceanic_vtpro_device_read, /* read */ NULL, /* write */ oceanic_common_device_dump, /* dump */ @@ -403,7 +401,7 @@ oceanic_vtpro_device_keepalive (dc_device_t *abstract) } -static dc_status_t +dc_status_t oceanic_vtpro_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size) { oceanic_vtpro_device_t *device = (oceanic_vtpro_device_t*) abstract; diff --git a/src/reefnet_sensus.c b/src/reefnet_sensus.c index da22ee5..270aed0 100644 --- a/src/reefnet_sensus.c +++ b/src/reefnet_sensus.c @@ -56,7 +56,6 @@ static dc_status_t reefnet_sensus_device_close (dc_device_t *abstract); static const device_backend_t reefnet_sensus_device_backend = { DC_FAMILY_REEFNET_SENSUS, reefnet_sensus_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ NULL, /* read */ NULL, /* write */ reefnet_sensus_device_dump, /* dump */ diff --git a/src/reefnet_sensuspro.c b/src/reefnet_sensuspro.c index 770fead..551a750 100644 --- a/src/reefnet_sensuspro.c +++ b/src/reefnet_sensuspro.c @@ -55,7 +55,6 @@ static dc_status_t reefnet_sensuspro_device_close (dc_device_t *abstract); static const device_backend_t reefnet_sensuspro_device_backend = { DC_FAMILY_REEFNET_SENSUSPRO, reefnet_sensuspro_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ NULL, /* read */ NULL, /* write */ reefnet_sensuspro_device_dump, /* dump */ diff --git a/src/reefnet_sensusultra.c b/src/reefnet_sensusultra.c index 3bcc30f..bd4eb2e 100644 --- a/src/reefnet_sensusultra.c +++ b/src/reefnet_sensusultra.c @@ -64,7 +64,6 @@ static dc_status_t reefnet_sensusultra_device_close (dc_device_t *abstract); static const device_backend_t reefnet_sensusultra_device_backend = { DC_FAMILY_REEFNET_SENSUSULTRA, reefnet_sensusultra_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ NULL, /* read */ NULL, /* write */ reefnet_sensusultra_device_dump, /* dump */ diff --git a/src/suunto_d9.c b/src/suunto_d9.c index d82fbf1..5fd008b 100644 --- a/src/suunto_d9.c +++ b/src/suunto_d9.c @@ -55,7 +55,6 @@ static const suunto_common2_device_backend_t suunto_d9_device_backend = { { DC_FAMILY_SUUNTO_D9, suunto_common2_device_set_fingerprint, /* set_fingerprint */ - suunto_common2_device_version, /* version */ suunto_common2_device_read, /* read */ suunto_common2_device_write, /* write */ suunto_common2_device_dump, /* dump */ @@ -299,6 +298,16 @@ suunto_d9_device_packet (dc_device_t *abstract, const unsigned char command[], u } +dc_status_t +suunto_d9_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size) +{ + if (! device_is_suunto_d9 (abstract)) + return DC_STATUS_INVALIDARGS; + + return suunto_common2_device_version (abstract, data, size); +} + + dc_status_t suunto_d9_device_reset_maxdepth (dc_device_t *abstract) { diff --git a/src/suunto_eon.c b/src/suunto_eon.c index 9f06e20..fb61b53 100644 --- a/src/suunto_eon.c +++ b/src/suunto_eon.c @@ -50,7 +50,6 @@ static dc_status_t suunto_eon_device_close (dc_device_t *abstract); static const device_backend_t suunto_eon_device_backend = { DC_FAMILY_SUUNTO_EON, suunto_common_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ NULL, /* read */ NULL, /* write */ suunto_eon_device_dump, /* dump */ diff --git a/src/suunto_solution.c b/src/suunto_solution.c index b4c7054..9af41b2 100644 --- a/src/suunto_solution.c +++ b/src/suunto_solution.c @@ -52,7 +52,6 @@ static dc_status_t suunto_solution_device_close (dc_device_t *abstract); static const device_backend_t suunto_solution_device_backend = { DC_FAMILY_SUUNTO_SOLUTION, NULL, /* set_fingerprint */ - NULL, /* version */ NULL, /* read */ NULL, /* write */ suunto_solution_device_dump, /* dump */ diff --git a/src/suunto_vyper.c b/src/suunto_vyper.c index 10715ae..bfd17b1 100644 --- a/src/suunto_vyper.c +++ b/src/suunto_vyper.c @@ -63,7 +63,6 @@ static dc_status_t suunto_vyper_device_close (dc_device_t *abstract); static const device_backend_t suunto_vyper_device_backend = { DC_FAMILY_SUUNTO_VYPER, suunto_common_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ suunto_vyper_device_read, /* read */ suunto_vyper_device_write, /* write */ suunto_vyper_device_dump, /* dump */ diff --git a/src/suunto_vyper2.c b/src/suunto_vyper2.c index 71df789..2cc32f9 100644 --- a/src/suunto_vyper2.c +++ b/src/suunto_vyper2.c @@ -47,7 +47,6 @@ static const suunto_common2_device_backend_t suunto_vyper2_device_backend = { { DC_FAMILY_SUUNTO_VYPER2, suunto_common2_device_set_fingerprint, /* set_fingerprint */ - suunto_common2_device_version, /* version */ suunto_common2_device_read, /* read */ suunto_common2_device_write, /* write */ suunto_common2_device_dump, /* dump */ @@ -225,6 +224,16 @@ suunto_vyper2_device_packet (dc_device_t *abstract, const unsigned char command[ } +dc_status_t +suunto_vyper2_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size) +{ + if (! device_is_suunto_vyper2 (abstract)) + return DC_STATUS_INVALIDARGS; + + return suunto_common2_device_version (abstract, data, size); +} + + dc_status_t suunto_vyper2_device_reset_maxdepth (dc_device_t *abstract) { diff --git a/src/uwatec_aladin.c b/src/uwatec_aladin.c index a6d337a..7a87ed7 100644 --- a/src/uwatec_aladin.c +++ b/src/uwatec_aladin.c @@ -61,7 +61,6 @@ static dc_status_t uwatec_aladin_device_close (dc_device_t *abstract); static const device_backend_t uwatec_aladin_device_backend = { DC_FAMILY_UWATEC_ALADIN, uwatec_aladin_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ NULL, /* read */ NULL, /* write */ uwatec_aladin_device_dump, /* dump */ diff --git a/src/uwatec_memomouse.c b/src/uwatec_memomouse.c index bf4bc5c..8314bee 100644 --- a/src/uwatec_memomouse.c +++ b/src/uwatec_memomouse.c @@ -57,7 +57,6 @@ static dc_status_t uwatec_memomouse_device_close (dc_device_t *abstract); static const device_backend_t uwatec_memomouse_device_backend = { DC_FAMILY_UWATEC_MEMOMOUSE, uwatec_memomouse_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ NULL, /* read */ NULL, /* write */ uwatec_memomouse_device_dump, /* dump */ diff --git a/src/uwatec_smart.c b/src/uwatec_smart.c index 93b8295..1378647 100644 --- a/src/uwatec_smart.c +++ b/src/uwatec_smart.c @@ -44,7 +44,6 @@ typedef struct uwatec_smart_device_t { } uwatec_smart_device_t; static dc_status_t uwatec_smart_device_set_fingerprint (dc_device_t *device, const unsigned char data[], unsigned int size); -static dc_status_t uwatec_smart_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size); static dc_status_t uwatec_smart_device_dump (dc_device_t *abstract, dc_buffer_t *buffer); static dc_status_t uwatec_smart_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata); static dc_status_t uwatec_smart_device_close (dc_device_t *abstract); @@ -52,7 +51,6 @@ static dc_status_t uwatec_smart_device_close (dc_device_t *abstract); static const device_backend_t uwatec_smart_device_backend = { DC_FAMILY_UWATEC_SMART, uwatec_smart_device_set_fingerprint, /* set_fingerprint */ - uwatec_smart_device_version, /* version */ NULL, /* read */ NULL, /* write */ uwatec_smart_device_dump, /* dump */ @@ -271,7 +269,7 @@ uwatec_smart_device_set_fingerprint (dc_device_t *abstract, const unsigned char } -static dc_status_t +dc_status_t uwatec_smart_device_version (dc_device_t *abstract, unsigned char data[], unsigned int size) { uwatec_smart_device_t *device = (uwatec_smart_device_t *) abstract; diff --git a/src/zeagle_n2ition3.c b/src/zeagle_n2ition3.c index a7a6721..6161d65 100644 --- a/src/zeagle_n2ition3.c +++ b/src/zeagle_n2ition3.c @@ -62,7 +62,6 @@ static dc_status_t zeagle_n2ition3_device_close (dc_device_t *abstract); static const device_backend_t zeagle_n2ition3_device_backend = { DC_FAMILY_ZEAGLE_N2ITION3, zeagle_n2ition3_device_set_fingerprint, /* set_fingerprint */ - NULL, /* version */ zeagle_n2ition3_device_read, /* read */ NULL, /* write */ zeagle_n2ition3_device_dump, /* dump */