[PATCH 2/4] Stop accessing the internals of dc_descriptor_t

Anton Lundin glance at acc.umu.se
Thu Dec 29 07:08:48 PST 2016


This removes our own declaration of dc_descriptor_t and all our accesses
to its internals, and switches to use the libdivecomputer functions to
access those instead.

Signed-off-by: Anton Lundin <glance at acc.umu.se>
---
 core/libdivecomputer.c | 6 +++---
 core/libdivecomputer.h | 7 -------
 core/ostctools.c       | 4 ++--
 3 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/core/libdivecomputer.c b/core/libdivecomputer.c
index 5bdbb9e..8a8b215 100644
--- a/core/libdivecomputer.c
+++ b/core/libdivecomputer.c
@@ -1079,14 +1079,14 @@ dc_status_t libdc_buffer_parser(struct dive *dive, device_data_t *data, unsigned
 	dc_status_t rc;
 	dc_parser_t *parser = NULL;
 
-	switch (data->descriptor->type) {
+	switch (dc_descriptor_get_type(data->descriptor)) {
 	case DC_FAMILY_UWATEC_ALADIN:
 	case DC_FAMILY_UWATEC_MEMOMOUSE:
 		rc = uwatec_memomouse_parser_create(&parser, data->context, 0, 0);
 		break;
 	case DC_FAMILY_UWATEC_SMART:
 	case DC_FAMILY_UWATEC_MERIDIAN:
-		rc = uwatec_smart_parser_create (&parser, data->context, data->descriptor->model, 0, 0);
+		rc = uwatec_smart_parser_create (&parser, data->context, dc_descriptor_get_model(data->descriptor), 0, 0);
 		break;
 	case DC_FAMILY_HW_OSTC:
 #if defined(SSRF_CUSTOM_SERIAL)
@@ -1120,7 +1120,7 @@ dc_status_t libdc_buffer_parser(struct dive *dive, device_data_t *data, unsigned
 	}
 	// Do not parse Aladin/Memomouse headers as they are fakes
 	// Do not return on error, we can still parse the samples
-	if (data->descriptor->type != DC_FAMILY_UWATEC_ALADIN && data->descriptor->type != DC_FAMILY_UWATEC_MEMOMOUSE) {
+	if (dc_descriptor_get_type(data->descriptor) != DC_FAMILY_UWATEC_ALADIN && dc_descriptor_get_type(data->descriptor) != DC_FAMILY_UWATEC_MEMOMOUSE) {
 		rc = libdc_header_parser (parser, data, dive);
 		if (rc != DC_STATUS_SUCCESS) {
 			report_error("Error parsing the dive header data. Dive # %d\nStatus = %s", dive->number, errmsg(rc));
diff --git a/core/libdivecomputer.h b/core/libdivecomputer.h
index ecf4dff..aba972d 100644
--- a/core/libdivecomputer.h
+++ b/core/libdivecomputer.h
@@ -18,13 +18,6 @@
 extern "C" {
 #endif
 
-struct dc_descriptor_t {
-	const char *vendor;
-	const char *product;
-	dc_family_t type;
-	unsigned int model;
-};
-
 /* don't forget to include the UI toolkit specific display-XXX.h first
    to get the definition of progressbar_t */
 typedef struct device_data_t
diff --git a/core/ostctools.c b/core/ostctools.c
index caf7dc2..c3fb66c 100644
--- a/core/ostctools.c
+++ b/core/ostctools.c
@@ -20,8 +20,8 @@ static int ostc_prepare_data(int data_model, dc_family_t dc_fam, device_data_t *
 	data_descriptor = get_descriptor(dc_fam, data_model);
 	if (data_descriptor) {
 		dev_data->descriptor = data_descriptor;
-		dev_data->vendor = copy_string(data_descriptor->vendor);
-		dev_data->model = copy_string(data_descriptor->product);
+		dev_data->vendor = copy_string(dc_descriptor_get_vendor(data_descriptor));
+		dev_data->model = copy_string(dc_descriptor_get_product(data_descriptor));
 	} else {
 		return 0;
 	}
-- 
2.9.3



More information about the subsurface mailing list