diff --git a/include/libdivecomputer/oceanic_atom2.h b/include/libdivecomputer/oceanic_atom2.h index 4c52420..4cae707 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_open2 (dc_device_t **device, dc_context_t *context, const char *name, unsigned int model); + dc_status_t oceanic_atom2_device_version (dc_device_t *device, unsigned char data[], unsigned int size); diff --git a/src/device.c b/src/device.c index 1bac4f4..d95585d 100644 --- a/src/device.c +++ b/src/device.c @@ -115,7 +115,7 @@ dc_device_open (dc_device_t **out, dc_context_t *context, dc_descriptor_t *descr rc = oceanic_veo250_device_open (&device, context, name); break; case DC_FAMILY_OCEANIC_ATOM2: - rc = oceanic_atom2_device_open (&device, context, name); + rc = oceanic_atom2_device_open2 (&device, context, name, dc_descriptor_get_model (descriptor)); break; case DC_FAMILY_MARES_NEMO: rc = mares_nemo_device_open (&device, context, name); diff --git a/src/libdivecomputer.symbols b/src/libdivecomputer.symbols index 8109f96..f27f6fd 100644 --- a/src/libdivecomputer.symbols +++ b/src/libdivecomputer.symbols @@ -92,6 +92,7 @@ mares_darwin_extract_dives mares_iconhd_device_open mares_iconhd_extract_dives oceanic_atom2_device_open +oceanic_atom2_device_open2 oceanic_atom2_device_version oceanic_atom2_device_keepalive oceanic_veo250_device_open diff --git a/src/oceanic_atom2.c b/src/oceanic_atom2.c index ba4fe4f..656812c 100644 --- a/src/oceanic_atom2.c +++ b/src/oceanic_atom2.c @@ -492,6 +492,14 @@ oceanic_atom2_quit (oceanic_atom2_device_t *device) dc_status_t oceanic_atom2_device_open (dc_device_t **out, dc_context_t *context, const char *name) +{ + return oceanic_atom2_device_open2 (out, context, name, 0); +} + + +dc_status_t +oceanic_atom2_device_open2 (dc_device_t **out, dc_context_t *context, const char *name, unsigned int model) + { if (out == NULL) return DC_STATUS_INVALIDARGS;