Rename the backend structure to vtable.
The term "backend" can be confusing because it can refer to both the virtual function table and the device/parser backends. The use of the term "vtable" avoids this.
This commit is contained in:
parent
63d0f41758
commit
007479fc92
@ -66,7 +66,7 @@ static dc_status_t atomics_cobalt_device_set_fingerprint (dc_device_t *abstract,
|
||||
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 = {
|
||||
static const dc_device_vtable_t atomics_cobalt_device_vtable = {
|
||||
DC_FAMILY_ATOMICS_COBALT,
|
||||
atomics_cobalt_device_set_fingerprint, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -82,7 +82,7 @@ device_is_atomics_cobalt (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &atomics_cobalt_device_backend;
|
||||
return abstract->vtable == &atomics_cobalt_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -101,7 +101,7 @@ atomics_cobalt_device_open (dc_device_t **out, dc_context_t *context)
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &atomics_cobalt_device_backend);
|
||||
device_init (&device->base, context, &atomics_cobalt_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->context = NULL;
|
||||
|
||||
@ -48,7 +48,7 @@ static dc_status_t atomics_cobalt_parser_get_field (dc_parser_t *abstract, dc_fi
|
||||
static dc_status_t atomics_cobalt_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t atomics_cobalt_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t atomics_cobalt_parser_backend = {
|
||||
static const dc_parser_vtable_t atomics_cobalt_parser_vtable = {
|
||||
DC_FAMILY_ATOMICS_COBALT,
|
||||
atomics_cobalt_parser_set_data, /* set_data */
|
||||
atomics_cobalt_parser_get_datetime, /* datetime */
|
||||
@ -64,7 +64,7 @@ parser_is_atomics_cobalt (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &atomics_cobalt_parser_backend;
|
||||
return abstract->vtable == &atomics_cobalt_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -82,7 +82,7 @@ atomics_cobalt_parser_create (dc_parser_t **out, dc_context_t *context)
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &atomics_cobalt_parser_backend);
|
||||
parser_init (&parser->base, context, &atomics_cobalt_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->atmospheric = 0.0;
|
||||
|
||||
@ -63,7 +63,7 @@ static dc_status_t cressi_edy_device_dump (dc_device_t *abstract, dc_buffer_t *b
|
||||
static dc_status_t cressi_edy_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t cressi_edy_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t cressi_edy_device_backend = {
|
||||
static const dc_device_vtable_t cressi_edy_device_vtable = {
|
||||
DC_FAMILY_CRESSI_EDY,
|
||||
cressi_edy_device_set_fingerprint, /* set_fingerprint */
|
||||
cressi_edy_device_read, /* read */
|
||||
@ -79,7 +79,7 @@ device_is_cressi_edy (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &cressi_edy_device_backend;
|
||||
return abstract->vtable == &cressi_edy_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -187,7 +187,7 @@ cressi_edy_device_open (dc_device_t **out, dc_context_t *context, const char *na
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &cressi_edy_device_backend);
|
||||
device_init (&device->base, context, &cressi_edy_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -40,7 +40,7 @@ static dc_status_t cressi_edy_parser_get_field (dc_parser_t *abstract, dc_field_
|
||||
static dc_status_t cressi_edy_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t cressi_edy_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t cressi_edy_parser_backend = {
|
||||
static const dc_parser_vtable_t cressi_edy_parser_vtable = {
|
||||
DC_FAMILY_CRESSI_EDY,
|
||||
cressi_edy_parser_set_data, /* set_data */
|
||||
cressi_edy_parser_get_datetime, /* datetime */
|
||||
@ -56,7 +56,7 @@ parser_is_cressi_edy (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &cressi_edy_parser_backend;
|
||||
return abstract->vtable == &cressi_edy_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -74,7 +74,7 @@ cressi_edy_parser_create (dc_parser_t **out, dc_context_t *context, unsigned int
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &cressi_edy_parser_backend);
|
||||
parser_init (&parser->base, context, &cressi_edy_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->model = model;
|
||||
|
||||
@ -59,7 +59,7 @@ static dc_status_t cressi_leonardo_device_dump (dc_device_t *abstract, dc_buffer
|
||||
static dc_status_t cressi_leonardo_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t cressi_leonardo_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t cressi_leonardo_device_backend = {
|
||||
static const dc_device_vtable_t cressi_leonardo_device_vtable = {
|
||||
DC_FAMILY_CRESSI_LEONARDO,
|
||||
cressi_leonardo_device_set_fingerprint, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -75,7 +75,7 @@ device_is_cressi_leonardo (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &cressi_leonardo_device_backend;
|
||||
return abstract->vtable == &cressi_leonardo_device_vtable;
|
||||
}
|
||||
|
||||
dc_status_t
|
||||
@ -92,7 +92,7 @@ cressi_leonardo_device_open (dc_device_t **out, dc_context_t *context, const cha
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &cressi_leonardo_device_backend);
|
||||
device_init (&device->base, context, &cressi_leonardo_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -41,7 +41,7 @@ static dc_status_t cressi_leonardo_parser_get_field (dc_parser_t *abstract, dc_f
|
||||
static dc_status_t cressi_leonardo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t cressi_leonardo_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t cressi_leonardo_parser_backend = {
|
||||
static const dc_parser_vtable_t cressi_leonardo_parser_vtable = {
|
||||
DC_FAMILY_CRESSI_EDY,
|
||||
cressi_leonardo_parser_set_data, /* set_data */
|
||||
cressi_leonardo_parser_get_datetime, /* datetime */
|
||||
@ -57,7 +57,7 @@ parser_is_cressi_leonardo (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &cressi_leonardo_parser_backend;
|
||||
return abstract->vtable == &cressi_leonardo_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -75,7 +75,7 @@ cressi_leonardo_parser_create (dc_parser_t **out, dc_context_t *context)
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &cressi_leonardo_parser_backend);
|
||||
parser_init (&parser->base, context, &cressi_leonardo_parser_vtable);
|
||||
|
||||
*out = (dc_parser_t*) parser;
|
||||
|
||||
|
||||
@ -34,12 +34,12 @@ extern "C" {
|
||||
#define EVENT_PROGRESS_INITIALIZER {0, UINT_MAX}
|
||||
|
||||
struct dc_device_t;
|
||||
struct device_backend_t;
|
||||
struct dc_device_vtable_t;
|
||||
|
||||
typedef struct device_backend_t device_backend_t;
|
||||
typedef struct dc_device_vtable_t dc_device_vtable_t;
|
||||
|
||||
struct dc_device_t {
|
||||
const device_backend_t *backend;
|
||||
const dc_device_vtable_t *vtable;
|
||||
// Library context.
|
||||
dc_context_t *context;
|
||||
// Event notifications.
|
||||
@ -54,7 +54,7 @@ struct dc_device_t {
|
||||
dc_event_clock_t clock;
|
||||
};
|
||||
|
||||
struct device_backend_t {
|
||||
struct dc_device_vtable_t {
|
||||
dc_family_t type;
|
||||
|
||||
dc_status_t (*set_fingerprint) (dc_device_t *device, const unsigned char data[], unsigned int size);
|
||||
@ -71,7 +71,7 @@ struct device_backend_t {
|
||||
};
|
||||
|
||||
void
|
||||
device_init (dc_device_t *device, dc_context_t *context, const device_backend_t *backend);
|
||||
device_init (dc_device_t *device, dc_context_t *context, const dc_device_vtable_t *vtable);
|
||||
|
||||
void
|
||||
device_event_emit (dc_device_t *device, dc_event_type_t event, const void *data);
|
||||
|
||||
34
src/device.c
34
src/device.c
@ -39,9 +39,9 @@
|
||||
|
||||
|
||||
void
|
||||
device_init (dc_device_t *device, dc_context_t *context, const device_backend_t *backend)
|
||||
device_init (dc_device_t *device, dc_context_t *context, const dc_device_vtable_t *vtable)
|
||||
{
|
||||
device->backend = backend;
|
||||
device->vtable = vtable;
|
||||
|
||||
device->context = context;
|
||||
|
||||
@ -156,7 +156,7 @@ dc_device_get_type (dc_device_t *device)
|
||||
if (device == NULL)
|
||||
return DC_FAMILY_NULL;
|
||||
|
||||
return device->backend->type;
|
||||
return device->vtable->type;
|
||||
}
|
||||
|
||||
|
||||
@ -193,10 +193,10 @@ dc_device_set_fingerprint (dc_device_t *device, const unsigned char data[], unsi
|
||||
if (device == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
if (device->backend->set_fingerprint == NULL)
|
||||
if (device->vtable->set_fingerprint == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
return device->backend->set_fingerprint (device, data, size);
|
||||
return device->vtable->set_fingerprint (device, data, size);
|
||||
}
|
||||
|
||||
|
||||
@ -206,10 +206,10 @@ dc_device_read (dc_device_t *device, unsigned int address, unsigned char data[],
|
||||
if (device == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
if (device->backend->read == NULL)
|
||||
if (device->vtable->read == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
return device->backend->read (device, address, data, size);
|
||||
return device->vtable->read (device, address, data, size);
|
||||
}
|
||||
|
||||
|
||||
@ -219,10 +219,10 @@ dc_device_write (dc_device_t *device, unsigned int address, const unsigned char
|
||||
if (device == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
if (device->backend->write == NULL)
|
||||
if (device->vtable->write == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
return device->backend->write (device, address, data, size);
|
||||
return device->vtable->write (device, address, data, size);
|
||||
}
|
||||
|
||||
|
||||
@ -232,10 +232,10 @@ dc_device_dump (dc_device_t *device, dc_buffer_t *buffer)
|
||||
if (device == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
if (device->backend->dump == NULL)
|
||||
if (device->vtable->dump == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
return device->backend->dump (device, buffer);
|
||||
return device->vtable->dump (device, buffer);
|
||||
}
|
||||
|
||||
|
||||
@ -245,7 +245,7 @@ device_dump_read (dc_device_t *device, unsigned char data[], unsigned int size,
|
||||
if (device == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
if (device->backend->read == NULL)
|
||||
if (device->vtable->read == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
// Enable progress notifications.
|
||||
@ -261,7 +261,7 @@ device_dump_read (dc_device_t *device, unsigned char data[], unsigned int size,
|
||||
len = blocksize;
|
||||
|
||||
// Read the packet.
|
||||
dc_status_t rc = device->backend->read (device, nbytes, data + nbytes, len);
|
||||
dc_status_t rc = device->vtable->read (device, nbytes, data + nbytes, len);
|
||||
if (rc != DC_STATUS_SUCCESS)
|
||||
return rc;
|
||||
|
||||
@ -282,10 +282,10 @@ dc_device_foreach (dc_device_t *device, dc_dive_callback_t callback, void *userd
|
||||
if (device == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
if (device->backend->foreach == NULL)
|
||||
if (device->vtable->foreach == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
return device->backend->foreach (device, callback, userdata);
|
||||
return device->vtable->foreach (device, callback, userdata);
|
||||
}
|
||||
|
||||
|
||||
@ -295,10 +295,10 @@ dc_device_close (dc_device_t *device)
|
||||
if (device == NULL)
|
||||
return DC_STATUS_SUCCESS;
|
||||
|
||||
if (device->backend->close == NULL)
|
||||
if (device->vtable->close == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
return device->backend->close (device);
|
||||
return device->vtable->close (device);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -67,7 +67,7 @@ static dc_status_t hw_frog_device_set_fingerprint (dc_device_t *abstract, const
|
||||
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 = {
|
||||
static const dc_device_vtable_t hw_frog_device_vtable = {
|
||||
DC_FAMILY_HW_FROG,
|
||||
hw_frog_device_set_fingerprint, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -84,7 +84,7 @@ device_is_hw_frog (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &hw_frog_device_backend;
|
||||
return abstract->vtable == &hw_frog_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -198,7 +198,7 @@ hw_frog_device_open (dc_device_t **out, dc_context_t *context, const char *name)
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &hw_frog_device_backend);
|
||||
device_init (&device->base, context, &hw_frog_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -59,7 +59,7 @@ static dc_status_t hw_ostc_device_dump (dc_device_t *abstract, dc_buffer_t *buff
|
||||
static dc_status_t hw_ostc_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t hw_ostc_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t hw_ostc_device_backend = {
|
||||
static const dc_device_vtable_t hw_ostc_device_vtable = {
|
||||
DC_FAMILY_HW_OSTC,
|
||||
hw_ostc_device_set_fingerprint, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -76,7 +76,7 @@ device_is_hw_ostc (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &hw_ostc_device_backend;
|
||||
return abstract->vtable == &hw_ostc_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -127,7 +127,7 @@ hw_ostc_device_open (dc_device_t **out, dc_context_t *context, const char *name)
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &hw_ostc_device_backend);
|
||||
device_init (&device->base, context, &hw_ostc_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -48,7 +48,7 @@ static dc_status_t hw_ostc_parser_get_field (dc_parser_t *abstract, dc_field_typ
|
||||
static dc_status_t hw_ostc_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t hw_ostc_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t hw_ostc_parser_backend = {
|
||||
static const dc_parser_vtable_t hw_ostc_parser_vtable = {
|
||||
DC_FAMILY_HW_OSTC,
|
||||
hw_ostc_parser_set_data, /* set_data */
|
||||
hw_ostc_parser_get_datetime, /* datetime */
|
||||
@ -64,7 +64,7 @@ parser_is_hw_ostc (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &hw_ostc_parser_backend;
|
||||
return abstract->vtable == &hw_ostc_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -82,7 +82,7 @@ hw_ostc_parser_create (dc_parser_t **out, dc_context_t *context, unsigned int fr
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &hw_ostc_parser_backend);
|
||||
parser_init (&parser->base, context, &hw_ostc_parser_vtable);
|
||||
|
||||
parser->frog = frog;
|
||||
|
||||
|
||||
@ -39,12 +39,12 @@
|
||||
#define FP_SIZE 5
|
||||
|
||||
void
|
||||
mares_common_device_init (mares_common_device_t *device, dc_context_t *context, const device_backend_t *backend)
|
||||
mares_common_device_init (mares_common_device_t *device, dc_context_t *context, const dc_device_vtable_t *vtable)
|
||||
{
|
||||
assert (device != NULL);
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, backend);
|
||||
device_init (&device->base, context, vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -47,7 +47,7 @@ typedef struct mares_common_device_t {
|
||||
} mares_common_device_t;
|
||||
|
||||
void
|
||||
mares_common_device_init (mares_common_device_t *device, dc_context_t *context, const device_backend_t *backend);
|
||||
mares_common_device_init (mares_common_device_t *device, dc_context_t *context, const dc_device_vtable_t *vtable);
|
||||
|
||||
dc_status_t
|
||||
mares_common_device_read (dc_device_t *abstract, unsigned int address, unsigned char data[], unsigned int size);
|
||||
|
||||
@ -60,7 +60,7 @@ static dc_status_t mares_darwin_device_dump (dc_device_t *abstract, dc_buffer_t
|
||||
static dc_status_t mares_darwin_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t mares_darwin_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t mares_darwin_device_backend = {
|
||||
static const dc_device_vtable_t mares_darwin_device_vtable = {
|
||||
DC_FAMILY_MARES_DARWIN,
|
||||
mares_darwin_device_set_fingerprint, /* set_fingerprint */
|
||||
mares_common_device_read, /* read */
|
||||
@ -96,7 +96,7 @@ device_is_mares_darwin (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &mares_darwin_device_backend;
|
||||
return abstract->vtable == &mares_darwin_device_vtable;
|
||||
}
|
||||
|
||||
dc_status_t
|
||||
@ -113,7 +113,7 @@ mares_darwin_device_open (dc_device_t **out, dc_context_t *context, const char *
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
mares_common_device_init (&device->base, context, &mares_darwin_device_backend);
|
||||
mares_common_device_init (&device->base, context, &mares_darwin_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
memset (device->fingerprint, 0, sizeof (device->fingerprint));
|
||||
|
||||
@ -46,7 +46,7 @@ static dc_status_t mares_darwin_parser_get_field (dc_parser_t *abstract, dc_fiel
|
||||
static dc_status_t mares_darwin_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t mares_darwin_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t mares_darwin_parser_backend = {
|
||||
static const dc_parser_vtable_t mares_darwin_parser_vtable = {
|
||||
DC_FAMILY_MARES_DARWIN,
|
||||
mares_darwin_parser_set_data, /* set_data */
|
||||
mares_darwin_parser_get_datetime, /* datetime */
|
||||
@ -62,7 +62,7 @@ parser_is_mares_darwin (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &mares_darwin_parser_backend;
|
||||
return abstract->vtable == &mares_darwin_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -80,7 +80,7 @@ mares_darwin_parser_create (dc_parser_t **out, dc_context_t *context, unsigned i
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &mares_darwin_parser_backend);
|
||||
parser_init (&parser->base, context, &mares_darwin_parser_vtable);
|
||||
|
||||
if (model == DARWINAIR) {
|
||||
parser->headersize = 60;
|
||||
|
||||
@ -70,7 +70,7 @@ static dc_status_t mares_iconhd_device_dump (dc_device_t *abstract, dc_buffer_t
|
||||
static dc_status_t mares_iconhd_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t mares_iconhd_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t mares_iconhd_device_backend = {
|
||||
static const dc_device_vtable_t mares_iconhd_device_vtable = {
|
||||
DC_FAMILY_MARES_ICONHD,
|
||||
mares_iconhd_device_set_fingerprint, /* set_fingerprint */
|
||||
mares_iconhd_device_read, /* read */
|
||||
@ -86,7 +86,7 @@ device_is_mares_iconhd (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &mares_iconhd_device_backend;
|
||||
return abstract->vtable == &mares_iconhd_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -250,7 +250,7 @@ mares_iconhd_device_open (dc_device_t **out, dc_context_t *context, const char *
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &mares_iconhd_device_backend);
|
||||
device_init (&device->base, context, &mares_iconhd_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -43,7 +43,7 @@ static dc_status_t mares_iconhd_parser_get_field (dc_parser_t *abstract, dc_fiel
|
||||
static dc_status_t mares_iconhd_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t mares_iconhd_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t mares_iconhd_parser_backend = {
|
||||
static const dc_parser_vtable_t mares_iconhd_parser_vtable = {
|
||||
DC_FAMILY_MARES_ICONHD,
|
||||
mares_iconhd_parser_set_data, /* set_data */
|
||||
mares_iconhd_parser_get_datetime, /* datetime */
|
||||
@ -59,7 +59,7 @@ parser_is_mares_iconhd (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &mares_iconhd_parser_backend;
|
||||
return abstract->vtable == &mares_iconhd_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -77,7 +77,7 @@ mares_iconhd_parser_create (dc_parser_t **out, dc_context_t *context, unsigned i
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &mares_iconhd_parser_backend);
|
||||
parser_init (&parser->base, context, &mares_iconhd_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->model = model;
|
||||
|
||||
@ -58,7 +58,7 @@ static dc_status_t mares_nemo_device_dump (dc_device_t *abstract, dc_buffer_t *b
|
||||
static dc_status_t mares_nemo_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t mares_nemo_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t mares_nemo_device_backend = {
|
||||
static const dc_device_vtable_t mares_nemo_device_vtable = {
|
||||
DC_FAMILY_MARES_NEMO,
|
||||
mares_nemo_device_set_fingerprint, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -90,7 +90,7 @@ device_is_mares_nemo (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &mares_nemo_device_backend;
|
||||
return abstract->vtable == &mares_nemo_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -108,7 +108,7 @@ mares_nemo_device_open (dc_device_t **out, dc_context_t *context, const char *na
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &mares_nemo_device_backend);
|
||||
device_init (&device->base, context, &mares_nemo_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -58,7 +58,7 @@ static dc_status_t mares_nemo_parser_get_field (dc_parser_t *abstract, dc_field_
|
||||
static dc_status_t mares_nemo_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t mares_nemo_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t mares_nemo_parser_backend = {
|
||||
static const dc_parser_vtable_t mares_nemo_parser_vtable = {
|
||||
DC_FAMILY_MARES_NEMO,
|
||||
mares_nemo_parser_set_data, /* set_data */
|
||||
mares_nemo_parser_get_datetime, /* datetime */
|
||||
@ -74,7 +74,7 @@ parser_is_mares_nemo (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &mares_nemo_parser_backend;
|
||||
return abstract->vtable == &mares_nemo_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -92,7 +92,7 @@ mares_nemo_parser_create (dc_parser_t **out, dc_context_t *context, unsigned int
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &mares_nemo_parser_backend);
|
||||
parser_init (&parser->base, context, &mares_nemo_parser_vtable);
|
||||
|
||||
// Get the freedive mode for this model.
|
||||
unsigned int freedive = 2;
|
||||
|
||||
@ -48,7 +48,7 @@ static dc_status_t mares_puck_device_dump (dc_device_t *abstract, dc_buffer_t *b
|
||||
static dc_status_t mares_puck_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t mares_puck_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t mares_puck_device_backend = {
|
||||
static const dc_device_vtable_t mares_puck_device_vtable = {
|
||||
DC_FAMILY_MARES_PUCK,
|
||||
mares_puck_device_set_fingerprint, /* set_fingerprint */
|
||||
mares_common_device_read, /* read */
|
||||
@ -88,7 +88,7 @@ device_is_mares_puck (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &mares_puck_device_backend;
|
||||
return abstract->vtable == &mares_puck_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -106,7 +106,7 @@ mares_puck_device_open (dc_device_t **out, dc_context_t *context, const char *na
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
mares_common_device_init (&device->base, context, &mares_puck_device_backend);
|
||||
mares_common_device_init (&device->base, context, &mares_puck_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->layout = NULL;
|
||||
|
||||
@ -51,7 +51,7 @@ static dc_status_t oceanic_atom2_device_read (dc_device_t *abstract, unsigned in
|
||||
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);
|
||||
|
||||
static const device_backend_t oceanic_atom2_device_backend = {
|
||||
static const dc_device_vtable_t oceanic_atom2_device_vtable = {
|
||||
DC_FAMILY_OCEANIC_ATOM2,
|
||||
oceanic_common_device_set_fingerprint, /* set_fingerprint */
|
||||
oceanic_atom2_device_read, /* read */
|
||||
@ -246,7 +246,7 @@ device_is_oceanic_atom2 (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &oceanic_atom2_device_backend;
|
||||
return abstract->vtable == &oceanic_atom2_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -357,7 +357,7 @@ oceanic_atom2_device_open (dc_device_t **out, dc_context_t *context, const char
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
oceanic_common_device_init (&device->base, context, &oceanic_atom2_device_backend);
|
||||
oceanic_common_device_init (&device->base, context, &oceanic_atom2_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -71,7 +71,7 @@ static dc_status_t oceanic_atom2_parser_get_field (dc_parser_t *abstract, dc_fie
|
||||
static dc_status_t oceanic_atom2_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t oceanic_atom2_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t oceanic_atom2_parser_backend = {
|
||||
static const dc_parser_vtable_t oceanic_atom2_parser_vtable = {
|
||||
DC_FAMILY_OCEANIC_ATOM2,
|
||||
oceanic_atom2_parser_set_data, /* set_data */
|
||||
oceanic_atom2_parser_get_datetime, /* datetime */
|
||||
@ -87,7 +87,7 @@ parser_is_oceanic_atom2 (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &oceanic_atom2_parser_backend;
|
||||
return abstract->vtable == &oceanic_atom2_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -105,7 +105,7 @@ oceanic_atom2_parser_create (dc_parser_t **out, dc_context_t *context, unsigned
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &oceanic_atom2_parser_backend);
|
||||
parser_init (&parser->base, context, &oceanic_atom2_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->model = model;
|
||||
|
||||
@ -117,12 +117,12 @@ oceanic_common_match (const unsigned char *version, const oceanic_common_version
|
||||
|
||||
|
||||
void
|
||||
oceanic_common_device_init (oceanic_common_device_t *device, dc_context_t *context, const device_backend_t *backend)
|
||||
oceanic_common_device_init (oceanic_common_device_t *device, dc_context_t *context, const dc_device_vtable_t *vtable)
|
||||
{
|
||||
assert (device != NULL);
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, backend);
|
||||
device_init (&device->base, context, vtable);
|
||||
|
||||
// Set the default values.
|
||||
memset (device->version, 0, sizeof (device->version));
|
||||
|
||||
@ -71,7 +71,7 @@ int
|
||||
oceanic_common_match (const unsigned char *version, const oceanic_common_version_t patterns[], unsigned int n);
|
||||
|
||||
void
|
||||
oceanic_common_device_init (oceanic_common_device_t *device, dc_context_t *context, const device_backend_t *backend);
|
||||
oceanic_common_device_init (oceanic_common_device_t *device, dc_context_t *context, const dc_device_vtable_t *vtable);
|
||||
|
||||
dc_status_t
|
||||
oceanic_common_device_set_fingerprint (dc_device_t *device, const unsigned char data[], unsigned int size);
|
||||
|
||||
@ -51,7 +51,7 @@ typedef struct oceanic_veo250_device_t {
|
||||
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 = {
|
||||
static const dc_device_vtable_t oceanic_veo250_device_vtable = {
|
||||
DC_FAMILY_OCEANIC_VEO250,
|
||||
oceanic_common_device_set_fingerprint, /* set_fingerprint */
|
||||
oceanic_veo250_device_read, /* read */
|
||||
@ -91,7 +91,7 @@ device_is_oceanic_veo250 (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &oceanic_veo250_device_backend;
|
||||
return abstract->vtable == &oceanic_veo250_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -240,7 +240,7 @@ oceanic_veo250_device_open (dc_device_t **out, dc_context_t *context, const char
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
oceanic_common_device_init (&device->base, context, &oceanic_veo250_device_backend);
|
||||
oceanic_common_device_init (&device->base, context, &oceanic_veo250_device_vtable);
|
||||
|
||||
// Override the base class values.
|
||||
device->base.layout = &oceanic_veo250_layout;
|
||||
|
||||
@ -46,7 +46,7 @@ static dc_status_t oceanic_veo250_parser_get_field (dc_parser_t *abstract, dc_fi
|
||||
static dc_status_t oceanic_veo250_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t oceanic_veo250_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t oceanic_veo250_parser_backend = {
|
||||
static const dc_parser_vtable_t oceanic_veo250_parser_vtable = {
|
||||
DC_FAMILY_OCEANIC_VEO250,
|
||||
oceanic_veo250_parser_set_data, /* set_data */
|
||||
oceanic_veo250_parser_get_datetime, /* datetime */
|
||||
@ -62,7 +62,7 @@ parser_is_oceanic_veo250 (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &oceanic_veo250_parser_backend;
|
||||
return abstract->vtable == &oceanic_veo250_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -80,7 +80,7 @@ oceanic_veo250_parser_create (dc_parser_t **out, dc_context_t *context, unsigned
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &oceanic_veo250_parser_backend);
|
||||
parser_init (&parser->base, context, &oceanic_veo250_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->model = model;
|
||||
|
||||
@ -51,7 +51,7 @@ typedef struct oceanic_vtpro_device_t {
|
||||
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 = {
|
||||
static const dc_device_vtable_t oceanic_vtpro_device_vtable = {
|
||||
DC_FAMILY_OCEANIC_VTPRO,
|
||||
oceanic_common_device_set_fingerprint, /* set_fingerprint */
|
||||
oceanic_vtpro_device_read, /* read */
|
||||
@ -104,7 +104,7 @@ device_is_oceanic_vtpro (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &oceanic_vtpro_device_backend;
|
||||
return abstract->vtable == &oceanic_vtpro_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -270,7 +270,7 @@ oceanic_vtpro_device_open (dc_device_t **out, dc_context_t *context, const char
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
oceanic_common_device_init (&device->base, context, &oceanic_vtpro_device_backend);
|
||||
oceanic_common_device_init (&device->base, context, &oceanic_vtpro_device_vtable);
|
||||
|
||||
// Override the base class values.
|
||||
device->base.multipage = MULTIPAGE;
|
||||
|
||||
@ -45,7 +45,7 @@ static dc_status_t oceanic_vtpro_parser_get_field (dc_parser_t *abstract, dc_fie
|
||||
static dc_status_t oceanic_vtpro_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t oceanic_vtpro_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t oceanic_vtpro_parser_backend = {
|
||||
static const dc_parser_vtable_t oceanic_vtpro_parser_vtable = {
|
||||
DC_FAMILY_OCEANIC_VTPRO,
|
||||
oceanic_vtpro_parser_set_data, /* set_data */
|
||||
oceanic_vtpro_parser_get_datetime, /* datetime */
|
||||
@ -61,7 +61,7 @@ parser_is_oceanic_vtpro (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &oceanic_vtpro_parser_backend;
|
||||
return abstract->vtable == &oceanic_vtpro_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -79,7 +79,7 @@ oceanic_vtpro_parser_create (dc_parser_t **out, dc_context_t *context)
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &oceanic_vtpro_parser_backend);
|
||||
parser_init (&parser->base, context, &oceanic_vtpro_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->cached = 0;
|
||||
|
||||
@ -30,18 +30,18 @@ extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
struct dc_parser_t;
|
||||
struct parser_backend_t;
|
||||
struct dc_parser_vtable_t;
|
||||
|
||||
typedef struct parser_backend_t parser_backend_t;
|
||||
typedef struct dc_parser_vtable_t dc_parser_vtable_t;
|
||||
|
||||
struct dc_parser_t {
|
||||
const parser_backend_t *backend;
|
||||
const dc_parser_vtable_t *vtable;
|
||||
dc_context_t *context;
|
||||
const unsigned char *data;
|
||||
unsigned int size;
|
||||
};
|
||||
|
||||
struct parser_backend_t {
|
||||
struct dc_parser_vtable_t {
|
||||
dc_family_t type;
|
||||
|
||||
dc_status_t (*set_data) (dc_parser_t *parser, const unsigned char *data, unsigned int size);
|
||||
@ -56,7 +56,7 @@ struct parser_backend_t {
|
||||
};
|
||||
|
||||
void
|
||||
parser_init (dc_parser_t *parser, dc_context_t *context, const parser_backend_t *backend);
|
||||
parser_init (dc_parser_t *parser, dc_context_t *context, const dc_parser_vtable_t *vtable);
|
||||
|
||||
typedef struct sample_statistics_t {
|
||||
unsigned int divetime;
|
||||
|
||||
26
src/parser.c
26
src/parser.c
@ -128,9 +128,9 @@ dc_parser_new (dc_parser_t **out, dc_device_t *device)
|
||||
|
||||
|
||||
void
|
||||
parser_init (dc_parser_t *parser, dc_context_t *context, const parser_backend_t *backend)
|
||||
parser_init (dc_parser_t *parser, dc_context_t *context, const dc_parser_vtable_t *vtable)
|
||||
{
|
||||
parser->backend = backend;
|
||||
parser->vtable = vtable;
|
||||
parser->context = context;
|
||||
parser->data = NULL;
|
||||
parser->size = 0;
|
||||
@ -143,7 +143,7 @@ dc_parser_get_type (dc_parser_t *parser)
|
||||
if (parser == NULL)
|
||||
return DC_FAMILY_NULL;
|
||||
|
||||
return parser->backend->type;
|
||||
return parser->vtable->type;
|
||||
}
|
||||
|
||||
|
||||
@ -153,13 +153,13 @@ dc_parser_set_data (dc_parser_t *parser, const unsigned char *data, unsigned int
|
||||
if (parser == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
if (parser->backend->set_data == NULL)
|
||||
if (parser->vtable->set_data == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
parser->data = data;
|
||||
parser->size = size;
|
||||
|
||||
return parser->backend->set_data (parser, data, size);
|
||||
return parser->vtable->set_data (parser, data, size);
|
||||
}
|
||||
|
||||
|
||||
@ -169,10 +169,10 @@ dc_parser_get_datetime (dc_parser_t *parser, dc_datetime_t *datetime)
|
||||
if (parser == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
if (parser->backend->datetime == NULL)
|
||||
if (parser->vtable->datetime == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
return parser->backend->datetime (parser, datetime);
|
||||
return parser->vtable->datetime (parser, datetime);
|
||||
}
|
||||
|
||||
dc_status_t
|
||||
@ -181,10 +181,10 @@ dc_parser_get_field (dc_parser_t *parser, dc_field_type_t type, unsigned int fla
|
||||
if (parser == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
if (parser->backend->field == NULL)
|
||||
if (parser->vtable->field == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
return parser->backend->field (parser, type, flags, value);
|
||||
return parser->vtable->field (parser, type, flags, value);
|
||||
}
|
||||
|
||||
|
||||
@ -194,10 +194,10 @@ dc_parser_samples_foreach (dc_parser_t *parser, dc_sample_callback_t callback, v
|
||||
if (parser == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
if (parser->backend->samples_foreach == NULL)
|
||||
if (parser->vtable->samples_foreach == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
return parser->backend->samples_foreach (parser, callback, userdata);
|
||||
return parser->vtable->samples_foreach (parser, callback, userdata);
|
||||
}
|
||||
|
||||
|
||||
@ -207,10 +207,10 @@ dc_parser_destroy (dc_parser_t *parser)
|
||||
if (parser == NULL)
|
||||
return DC_STATUS_SUCCESS;
|
||||
|
||||
if (parser->backend->destroy == NULL)
|
||||
if (parser->vtable->destroy == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
return parser->backend->destroy (parser);
|
||||
return parser->vtable->destroy (parser);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -53,7 +53,7 @@ static dc_status_t reefnet_sensus_device_dump (dc_device_t *abstract, dc_buffer_
|
||||
static dc_status_t reefnet_sensus_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t reefnet_sensus_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t reefnet_sensus_device_backend = {
|
||||
static const dc_device_vtable_t reefnet_sensus_device_vtable = {
|
||||
DC_FAMILY_REEFNET_SENSUS,
|
||||
reefnet_sensus_device_set_fingerprint, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -69,7 +69,7 @@ device_is_reefnet_sensus (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &reefnet_sensus_device_backend;
|
||||
return abstract->vtable == &reefnet_sensus_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -107,7 +107,7 @@ reefnet_sensus_device_open (dc_device_t **out, dc_context_t *context, const char
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &reefnet_sensus_device_backend);
|
||||
device_init (&device->base, context, &reefnet_sensus_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -52,7 +52,7 @@ static dc_status_t reefnet_sensus_parser_get_field (dc_parser_t *abstract, dc_fi
|
||||
static dc_status_t reefnet_sensus_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t reefnet_sensus_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t reefnet_sensus_parser_backend = {
|
||||
static const dc_parser_vtable_t reefnet_sensus_parser_vtable = {
|
||||
DC_FAMILY_REEFNET_SENSUS,
|
||||
reefnet_sensus_parser_set_data, /* set_data */
|
||||
reefnet_sensus_parser_get_datetime, /* datetime */
|
||||
@ -68,7 +68,7 @@ parser_is_reefnet_sensus (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &reefnet_sensus_parser_backend;
|
||||
return abstract->vtable == &reefnet_sensus_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -86,7 +86,7 @@ reefnet_sensus_parser_create (dc_parser_t **out, dc_context_t *context, unsigned
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &reefnet_sensus_parser_backend);
|
||||
parser_init (&parser->base, context, &reefnet_sensus_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->atmospheric = ATM;
|
||||
|
||||
@ -52,7 +52,7 @@ static dc_status_t reefnet_sensuspro_device_dump (dc_device_t *abstract, dc_buff
|
||||
static dc_status_t reefnet_sensuspro_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t reefnet_sensuspro_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t reefnet_sensuspro_device_backend = {
|
||||
static const dc_device_vtable_t reefnet_sensuspro_device_vtable = {
|
||||
DC_FAMILY_REEFNET_SENSUSPRO,
|
||||
reefnet_sensuspro_device_set_fingerprint, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -68,7 +68,7 @@ device_is_reefnet_sensuspro (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &reefnet_sensuspro_device_backend;
|
||||
return abstract->vtable == &reefnet_sensuspro_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -86,7 +86,7 @@ reefnet_sensuspro_device_open (dc_device_t **out, dc_context_t *context, const c
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &reefnet_sensuspro_device_backend);
|
||||
device_init (&device->base, context, &reefnet_sensuspro_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -51,7 +51,7 @@ static dc_status_t reefnet_sensuspro_parser_get_field (dc_parser_t *abstract, dc
|
||||
static dc_status_t reefnet_sensuspro_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t reefnet_sensuspro_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t reefnet_sensuspro_parser_backend = {
|
||||
static const dc_parser_vtable_t reefnet_sensuspro_parser_vtable = {
|
||||
DC_FAMILY_REEFNET_SENSUSPRO,
|
||||
reefnet_sensuspro_parser_set_data, /* set_data */
|
||||
reefnet_sensuspro_parser_get_datetime, /* datetime */
|
||||
@ -67,7 +67,7 @@ parser_is_reefnet_sensuspro (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &reefnet_sensuspro_parser_backend;
|
||||
return abstract->vtable == &reefnet_sensuspro_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -85,7 +85,7 @@ reefnet_sensuspro_parser_create (dc_parser_t **out, dc_context_t *context, unsig
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &reefnet_sensuspro_parser_backend);
|
||||
parser_init (&parser->base, context, &reefnet_sensuspro_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->atmospheric = ATM;
|
||||
|
||||
@ -61,7 +61,7 @@ static dc_status_t reefnet_sensusultra_device_dump (dc_device_t *abstract, dc_bu
|
||||
static dc_status_t reefnet_sensusultra_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t reefnet_sensusultra_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t reefnet_sensusultra_device_backend = {
|
||||
static const dc_device_vtable_t reefnet_sensusultra_device_vtable = {
|
||||
DC_FAMILY_REEFNET_SENSUSULTRA,
|
||||
reefnet_sensusultra_device_set_fingerprint, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -77,7 +77,7 @@ device_is_reefnet_sensusultra (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &reefnet_sensusultra_device_backend;
|
||||
return abstract->vtable == &reefnet_sensusultra_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -95,7 +95,7 @@ reefnet_sensusultra_device_open (dc_device_t **out, dc_context_t *context, const
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &reefnet_sensusultra_device_backend);
|
||||
device_init (&device->base, context, &reefnet_sensusultra_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -51,7 +51,7 @@ static dc_status_t reefnet_sensusultra_parser_get_field (dc_parser_t *abstract,
|
||||
static dc_status_t reefnet_sensusultra_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t reefnet_sensusultra_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t reefnet_sensusultra_parser_backend = {
|
||||
static const dc_parser_vtable_t reefnet_sensusultra_parser_vtable = {
|
||||
DC_FAMILY_REEFNET_SENSUSULTRA,
|
||||
reefnet_sensusultra_parser_set_data, /* set_data */
|
||||
reefnet_sensusultra_parser_get_datetime, /* datetime */
|
||||
@ -67,7 +67,7 @@ parser_is_reefnet_sensusultra (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &reefnet_sensusultra_parser_backend;
|
||||
return abstract->vtable == &reefnet_sensusultra_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -85,7 +85,7 @@ reefnet_sensusultra_parser_create (dc_parser_t **out, dc_context_t *context, uns
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &reefnet_sensusultra_parser_backend);
|
||||
parser_init (&parser->base, context, &reefnet_sensusultra_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->atmospheric = ATM;
|
||||
|
||||
@ -58,7 +58,7 @@ static dc_status_t shearwater_predator_device_dump (dc_device_t *abstract, dc_bu
|
||||
static dc_status_t shearwater_predator_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t shearwater_predator_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t shearwater_predator_device_backend = {
|
||||
static const dc_device_vtable_t shearwater_predator_device_vtable = {
|
||||
DC_FAMILY_SHEARWATER_PREDATOR,
|
||||
shearwater_predator_device_set_fingerprint, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -75,7 +75,7 @@ device_is_shearwater_predator (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &shearwater_predator_device_backend;
|
||||
return abstract->vtable == &shearwater_predator_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -267,7 +267,7 @@ shearwater_predator_device_open (dc_device_t **out, dc_context_t *context, const
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &shearwater_predator_device_backend);
|
||||
device_init (&device->base, context, &shearwater_predator_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -46,7 +46,7 @@ static dc_status_t shearwater_predator_parser_get_field (dc_parser_t *abstract,
|
||||
static dc_status_t shearwater_predator_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t shearwater_predator_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t shearwater_predator_parser_backend = {
|
||||
static const dc_parser_vtable_t shearwater_predator_parser_vtable = {
|
||||
DC_FAMILY_SHEARWATER_PREDATOR,
|
||||
shearwater_predator_parser_set_data, /* set_data */
|
||||
shearwater_predator_parser_get_datetime, /* datetime */
|
||||
@ -62,7 +62,7 @@ parser_is_shearwater_predator (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &shearwater_predator_parser_backend;
|
||||
return abstract->vtable == &shearwater_predator_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -80,7 +80,7 @@ shearwater_predator_parser_create (dc_parser_t **out, dc_context_t *context)
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &shearwater_predator_parser_backend);
|
||||
parser_init (&parser->base, context, &shearwater_predator_parser_vtable);
|
||||
|
||||
*out = (dc_parser_t *) parser;
|
||||
|
||||
|
||||
@ -31,12 +31,12 @@
|
||||
#define RB_PROFILE_PEEK(a,l) ringbuffer_decrement (a, l->peek, l->rb_profile_begin, l->rb_profile_end)
|
||||
|
||||
void
|
||||
suunto_common_device_init (suunto_common_device_t *device, dc_context_t *context, const device_backend_t *backend)
|
||||
suunto_common_device_init (suunto_common_device_t *device, dc_context_t *context, const dc_device_vtable_t *vtable)
|
||||
{
|
||||
assert (device != NULL);
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, backend);
|
||||
device_init (&device->base, context, vtable);
|
||||
|
||||
// Set the default values.
|
||||
memset (device->fingerprint, 0, sizeof (device->fingerprint));
|
||||
|
||||
@ -46,7 +46,7 @@ typedef struct suunto_common_layout_t {
|
||||
} suunto_common_layout_t;
|
||||
|
||||
void
|
||||
suunto_common_device_init (suunto_common_device_t *device, dc_context_t *context, const device_backend_t *backend);
|
||||
suunto_common_device_init (suunto_common_device_t *device, dc_context_t *context, const dc_device_vtable_t *vtable);
|
||||
|
||||
dc_status_t
|
||||
suunto_common_device_set_fingerprint (dc_device_t *device, const unsigned char data[], unsigned int size);
|
||||
|
||||
@ -37,15 +37,15 @@
|
||||
|
||||
#define RB_PROFILE_DISTANCE(l,a,b,m) ringbuffer_distance (a, b, m, l->rb_profile_begin, l->rb_profile_end)
|
||||
|
||||
#define BACKEND(abstract) ((suunto_common2_device_backend_t *) abstract->backend)
|
||||
#define VTABLE(abstract) ((suunto_common2_device_vtable_t *) abstract->vtable)
|
||||
|
||||
void
|
||||
suunto_common2_device_init (suunto_common2_device_t *device, dc_context_t *context, const suunto_common2_device_backend_t *backend)
|
||||
suunto_common2_device_init (suunto_common2_device_t *device, dc_context_t *context, const suunto_common2_device_vtable_t *vtable)
|
||||
{
|
||||
assert (device != NULL);
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &backend->base);
|
||||
device_init (&device->base, context, &vtable->base);
|
||||
|
||||
// Set the default values.
|
||||
device->layout = NULL;
|
||||
@ -59,7 +59,7 @@ suunto_common2_transfer (dc_device_t *abstract, const unsigned char command[], u
|
||||
{
|
||||
assert (asize >= size + 4);
|
||||
|
||||
if (BACKEND (abstract)->packet == NULL)
|
||||
if (VTABLE (abstract)->packet == NULL)
|
||||
return DC_STATUS_UNSUPPORTED;
|
||||
|
||||
// Occasionally, the dive computer does not respond to a command.
|
||||
@ -69,7 +69,7 @@ suunto_common2_transfer (dc_device_t *abstract, const unsigned char command[], u
|
||||
|
||||
unsigned int nretries = 0;
|
||||
dc_status_t rc = DC_STATUS_SUCCESS;
|
||||
while ((rc = BACKEND (abstract)->packet (abstract, command, csize, answer, asize, size)) != DC_STATUS_SUCCESS) {
|
||||
while ((rc = VTABLE (abstract)->packet (abstract, command, csize, answer, asize, size)) != DC_STATUS_SUCCESS) {
|
||||
// Automatically discard a corrupted packet,
|
||||
// and request a new one.
|
||||
if (rc != DC_STATUS_TIMEOUT && rc != DC_STATUS_PROTOCOL)
|
||||
|
||||
@ -47,13 +47,13 @@ typedef struct suunto_common2_device_t {
|
||||
unsigned char fingerprint[7];
|
||||
} suunto_common2_device_t;
|
||||
|
||||
typedef struct suunto_common2_device_backend_t {
|
||||
device_backend_t base;
|
||||
typedef struct suunto_common2_device_vtable_t {
|
||||
dc_device_vtable_t base;
|
||||
dc_status_t (*packet) (dc_device_t *device, const unsigned char command[], unsigned int csize, unsigned char answer[], unsigned int asize, unsigned int size);
|
||||
} suunto_common2_device_backend_t;
|
||||
} suunto_common2_device_vtable_t;
|
||||
|
||||
void
|
||||
suunto_common2_device_init (suunto_common2_device_t *device, dc_context_t *context, const suunto_common2_device_backend_t *backend);
|
||||
suunto_common2_device_init (suunto_common2_device_t *device, dc_context_t *context, const suunto_common2_device_vtable_t *vtable);
|
||||
|
||||
dc_status_t
|
||||
suunto_common2_device_set_fingerprint (dc_device_t *device, const unsigned char data[], unsigned int size);
|
||||
|
||||
@ -50,7 +50,7 @@ typedef struct suunto_d9_device_t {
|
||||
static dc_status_t suunto_d9_device_packet (dc_device_t *abstract, const unsigned char command[], unsigned int csize, unsigned char answer[], unsigned int asize, unsigned int size);
|
||||
static dc_status_t suunto_d9_device_close (dc_device_t *abstract);
|
||||
|
||||
static const suunto_common2_device_backend_t suunto_d9_device_backend = {
|
||||
static const suunto_common2_device_vtable_t suunto_d9_device_vtable = {
|
||||
{
|
||||
DC_FAMILY_SUUNTO_D9,
|
||||
suunto_common2_device_set_fingerprint, /* set_fingerprint */
|
||||
@ -85,7 +85,7 @@ device_is_suunto_d9 (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == (const device_backend_t *) &suunto_d9_device_backend;
|
||||
return abstract->vtable == (const dc_device_vtable_t *) &suunto_d9_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -138,7 +138,7 @@ suunto_d9_device_open (dc_device_t **out, dc_context_t *context, const char *nam
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
suunto_common2_device_init (&device->base, context, &suunto_d9_device_backend);
|
||||
suunto_common2_device_init (&device->base, context, &suunto_d9_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -72,7 +72,7 @@ static dc_status_t suunto_d9_parser_get_field (dc_parser_t *abstract, dc_field_t
|
||||
static dc_status_t suunto_d9_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t suunto_d9_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t suunto_d9_parser_backend = {
|
||||
static const dc_parser_vtable_t suunto_d9_parser_vtable = {
|
||||
DC_FAMILY_SUUNTO_D9,
|
||||
suunto_d9_parser_set_data, /* set_data */
|
||||
suunto_d9_parser_get_datetime, /* datetime */
|
||||
@ -88,7 +88,7 @@ parser_is_suunto_d9 (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &suunto_d9_parser_backend;
|
||||
return abstract->vtable == &suunto_d9_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -106,7 +106,7 @@ suunto_d9_parser_create (dc_parser_t **out, dc_context_t *context, unsigned int
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &suunto_d9_parser_backend);
|
||||
parser_init (&parser->base, context, &suunto_d9_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->model = model;
|
||||
|
||||
@ -47,7 +47,7 @@ static dc_status_t suunto_eon_device_dump (dc_device_t *abstract, dc_buffer_t *b
|
||||
static dc_status_t suunto_eon_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t suunto_eon_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t suunto_eon_device_backend = {
|
||||
static const dc_device_vtable_t suunto_eon_device_vtable = {
|
||||
DC_FAMILY_SUUNTO_EON,
|
||||
suunto_common_device_set_fingerprint, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -72,7 +72,7 @@ device_is_suunto_eon (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &suunto_eon_device_backend;
|
||||
return abstract->vtable == &suunto_eon_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -90,7 +90,7 @@ suunto_eon_device_open (dc_device_t **out, dc_context_t *context, const char *na
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
suunto_common_device_init (&device->base, context, &suunto_eon_device_backend);
|
||||
suunto_common_device_init (&device->base, context, &suunto_eon_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -45,7 +45,7 @@ static dc_status_t suunto_eon_parser_get_field (dc_parser_t *abstract, dc_field_
|
||||
static dc_status_t suunto_eon_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t suunto_eon_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t suunto_eon_parser_backend = {
|
||||
static const dc_parser_vtable_t suunto_eon_parser_vtable = {
|
||||
DC_FAMILY_SUUNTO_EON,
|
||||
suunto_eon_parser_set_data, /* set_data */
|
||||
suunto_eon_parser_get_datetime, /* datetime */
|
||||
@ -61,7 +61,7 @@ parser_is_suunto_eon (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &suunto_eon_parser_backend;
|
||||
return abstract->vtable == &suunto_eon_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -79,7 +79,7 @@ suunto_eon_parser_create (dc_parser_t **out, dc_context_t *context, int spyder)
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &suunto_eon_parser_backend);
|
||||
parser_init (&parser->base, context, &suunto_eon_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->spyder = spyder;
|
||||
|
||||
@ -49,7 +49,7 @@ static dc_status_t suunto_solution_device_dump (dc_device_t *abstract, dc_buffer
|
||||
static dc_status_t suunto_solution_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t suunto_solution_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t suunto_solution_device_backend = {
|
||||
static const dc_device_vtable_t suunto_solution_device_vtable = {
|
||||
DC_FAMILY_SUUNTO_SOLUTION,
|
||||
NULL, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -65,7 +65,7 @@ device_is_suunto_solution (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &suunto_solution_device_backend;
|
||||
return abstract->vtable == &suunto_solution_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -83,7 +83,7 @@ suunto_solution_device_open (dc_device_t **out, dc_context_t *context, const cha
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &suunto_solution_device_backend);
|
||||
device_init (&device->base, context, &suunto_solution_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -42,7 +42,7 @@ static dc_status_t suunto_solution_parser_get_field (dc_parser_t *abstract, dc_f
|
||||
static dc_status_t suunto_solution_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t suunto_solution_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t suunto_solution_parser_backend = {
|
||||
static const dc_parser_vtable_t suunto_solution_parser_vtable = {
|
||||
DC_FAMILY_SUUNTO_SOLUTION,
|
||||
suunto_solution_parser_set_data, /* set_data */
|
||||
NULL, /* datetime */
|
||||
@ -58,7 +58,7 @@ parser_is_suunto_solution (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &suunto_solution_parser_backend;
|
||||
return abstract->vtable == &suunto_solution_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -76,7 +76,7 @@ suunto_solution_parser_create (dc_parser_t **out, dc_context_t *context)
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &suunto_solution_parser_backend);
|
||||
parser_init (&parser->base, context, &suunto_solution_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->cached = 0;
|
||||
|
||||
@ -59,7 +59,7 @@ static dc_status_t suunto_vyper_device_dump (dc_device_t *abstract, dc_buffer_t
|
||||
static dc_status_t suunto_vyper_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t suunto_vyper_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t suunto_vyper_device_backend = {
|
||||
static const dc_device_vtable_t suunto_vyper_device_vtable = {
|
||||
DC_FAMILY_SUUNTO_VYPER,
|
||||
suunto_common_device_set_fingerprint, /* set_fingerprint */
|
||||
suunto_vyper_device_read, /* read */
|
||||
@ -92,7 +92,7 @@ device_is_suunto_vyper (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &suunto_vyper_device_backend;
|
||||
return abstract->vtable == &suunto_vyper_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -110,7 +110,7 @@ suunto_vyper_device_open (dc_device_t **out, dc_context_t *context, const char *
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
suunto_common_device_init (&device->base, context, &suunto_vyper_device_backend);
|
||||
suunto_common_device_init (&device->base, context, &suunto_vyper_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -45,7 +45,7 @@ typedef struct suunto_vyper2_device_t {
|
||||
static dc_status_t suunto_vyper2_device_packet (dc_device_t *abstract, const unsigned char command[], unsigned int csize, unsigned char answer[], unsigned int asize, unsigned int size);
|
||||
static dc_status_t suunto_vyper2_device_close (dc_device_t *abstract);
|
||||
|
||||
static const suunto_common2_device_backend_t suunto_vyper2_device_backend = {
|
||||
static const suunto_common2_device_vtable_t suunto_vyper2_device_vtable = {
|
||||
{
|
||||
DC_FAMILY_SUUNTO_VYPER2,
|
||||
suunto_common2_device_set_fingerprint, /* set_fingerprint */
|
||||
@ -80,7 +80,7 @@ device_is_suunto_vyper2 (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == (const device_backend_t *) &suunto_vyper2_device_backend;
|
||||
return abstract->vtable == (const dc_device_vtable_t *) &suunto_vyper2_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -98,7 +98,7 @@ suunto_vyper2_device_open (dc_device_t **out, dc_context_t *context, const char
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
suunto_common2_device_init (&device->base, context, &suunto_vyper2_device_backend);
|
||||
suunto_common2_device_init (&device->base, context, &suunto_vyper2_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -43,7 +43,7 @@ static dc_status_t suunto_vyper_parser_get_field (dc_parser_t *abstract, dc_fiel
|
||||
static dc_status_t suunto_vyper_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t suunto_vyper_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t suunto_vyper_parser_backend = {
|
||||
static const dc_parser_vtable_t suunto_vyper_parser_vtable = {
|
||||
DC_FAMILY_SUUNTO_VYPER,
|
||||
suunto_vyper_parser_set_data, /* set_data */
|
||||
suunto_vyper_parser_get_datetime, /* datetime */
|
||||
@ -59,7 +59,7 @@ parser_is_suunto_vyper (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &suunto_vyper_parser_backend;
|
||||
return abstract->vtable == &suunto_vyper_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -77,7 +77,7 @@ suunto_vyper_parser_create (dc_parser_t **out, dc_context_t *context)
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &suunto_vyper_parser_backend);
|
||||
parser_init (&parser->base, context, &suunto_vyper_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->cached = 0;
|
||||
|
||||
@ -58,7 +58,7 @@ static dc_status_t uwatec_aladin_device_dump (dc_device_t *abstract, dc_buffer_t
|
||||
static dc_status_t uwatec_aladin_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t uwatec_aladin_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t uwatec_aladin_device_backend = {
|
||||
static const dc_device_vtable_t uwatec_aladin_device_vtable = {
|
||||
DC_FAMILY_UWATEC_ALADIN,
|
||||
uwatec_aladin_device_set_fingerprint, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -74,7 +74,7 @@ device_is_uwatec_aladin (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &uwatec_aladin_device_backend;
|
||||
return abstract->vtable == &uwatec_aladin_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -92,7 +92,7 @@ uwatec_aladin_device_open (dc_device_t **out, dc_context_t *context, const char
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &uwatec_aladin_device_backend);
|
||||
device_init (&device->base, context, &uwatec_aladin_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -54,7 +54,7 @@ static dc_status_t uwatec_memomouse_device_dump (dc_device_t *abstract, dc_buffe
|
||||
static dc_status_t uwatec_memomouse_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t uwatec_memomouse_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t uwatec_memomouse_device_backend = {
|
||||
static const dc_device_vtable_t uwatec_memomouse_device_vtable = {
|
||||
DC_FAMILY_UWATEC_MEMOMOUSE,
|
||||
uwatec_memomouse_device_set_fingerprint, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -70,7 +70,7 @@ device_is_uwatec_memomouse (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &uwatec_memomouse_device_backend;
|
||||
return abstract->vtable == &uwatec_memomouse_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -88,7 +88,7 @@ uwatec_memomouse_device_open (dc_device_t **out, dc_context_t *context, const ch
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &uwatec_memomouse_device_backend);
|
||||
device_init (&device->base, context, &uwatec_memomouse_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
@ -41,7 +41,7 @@ static dc_status_t uwatec_memomouse_parser_get_field (dc_parser_t *abstract, dc_
|
||||
static dc_status_t uwatec_memomouse_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t uwatec_memomouse_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t uwatec_memomouse_parser_backend = {
|
||||
static const dc_parser_vtable_t uwatec_memomouse_parser_vtable = {
|
||||
DC_FAMILY_UWATEC_MEMOMOUSE,
|
||||
uwatec_memomouse_parser_set_data, /* set_data */
|
||||
uwatec_memomouse_parser_get_datetime, /* datetime */
|
||||
@ -57,7 +57,7 @@ parser_is_uwatec_memomouse (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &uwatec_memomouse_parser_backend;
|
||||
return abstract->vtable == &uwatec_memomouse_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -75,7 +75,7 @@ uwatec_memomouse_parser_create (dc_parser_t **out, dc_context_t *context, unsign
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &uwatec_memomouse_parser_backend);
|
||||
parser_init (&parser->base, context, &uwatec_memomouse_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->devtime = devtime;
|
||||
|
||||
@ -48,7 +48,7 @@ static dc_status_t uwatec_smart_device_dump (dc_device_t *abstract, dc_buffer_t
|
||||
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);
|
||||
|
||||
static const device_backend_t uwatec_smart_device_backend = {
|
||||
static const dc_device_vtable_t uwatec_smart_device_vtable = {
|
||||
DC_FAMILY_UWATEC_SMART,
|
||||
uwatec_smart_device_set_fingerprint, /* set_fingerprint */
|
||||
NULL, /* read */
|
||||
@ -64,7 +64,7 @@ device_is_uwatec_smart (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &uwatec_smart_device_backend;
|
||||
return abstract->vtable == &uwatec_smart_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -163,7 +163,7 @@ uwatec_smart_device_open (dc_device_t **out, dc_context_t *context)
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &uwatec_smart_device_backend);
|
||||
device_init (&device->base, context, &uwatec_smart_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->socket = NULL;
|
||||
|
||||
@ -56,7 +56,7 @@ static dc_status_t uwatec_smart_parser_get_field (dc_parser_t *abstract, dc_fiel
|
||||
static dc_status_t uwatec_smart_parser_samples_foreach (dc_parser_t *abstract, dc_sample_callback_t callback, void *userdata);
|
||||
static dc_status_t uwatec_smart_parser_destroy (dc_parser_t *abstract);
|
||||
|
||||
static const parser_backend_t uwatec_smart_parser_backend = {
|
||||
static const dc_parser_vtable_t uwatec_smart_parser_vtable = {
|
||||
DC_FAMILY_UWATEC_SMART,
|
||||
uwatec_smart_parser_set_data, /* set_data */
|
||||
uwatec_smart_parser_get_datetime, /* datetime */
|
||||
@ -72,7 +72,7 @@ parser_is_uwatec_smart (dc_parser_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &uwatec_smart_parser_backend;
|
||||
return abstract->vtable == &uwatec_smart_parser_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -90,7 +90,7 @@ uwatec_smart_parser_create (dc_parser_t **out, dc_context_t *context, unsigned i
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
parser_init (&parser->base, context, &uwatec_smart_parser_backend);
|
||||
parser_init (&parser->base, context, &uwatec_smart_parser_vtable);
|
||||
|
||||
// Set the default values.
|
||||
parser->model = model;
|
||||
|
||||
@ -59,7 +59,7 @@ static dc_status_t zeagle_n2ition3_device_dump (dc_device_t *abstract, dc_buffer
|
||||
static dc_status_t zeagle_n2ition3_device_foreach (dc_device_t *abstract, dc_dive_callback_t callback, void *userdata);
|
||||
static dc_status_t zeagle_n2ition3_device_close (dc_device_t *abstract);
|
||||
|
||||
static const device_backend_t zeagle_n2ition3_device_backend = {
|
||||
static const dc_device_vtable_t zeagle_n2ition3_device_vtable = {
|
||||
DC_FAMILY_ZEAGLE_N2ITION3,
|
||||
zeagle_n2ition3_device_set_fingerprint, /* set_fingerprint */
|
||||
zeagle_n2ition3_device_read, /* read */
|
||||
@ -75,7 +75,7 @@ device_is_zeagle_n2ition3 (dc_device_t *abstract)
|
||||
if (abstract == NULL)
|
||||
return 0;
|
||||
|
||||
return abstract->backend == &zeagle_n2ition3_device_backend;
|
||||
return abstract->vtable == &zeagle_n2ition3_device_vtable;
|
||||
}
|
||||
|
||||
|
||||
@ -152,7 +152,7 @@ zeagle_n2ition3_device_open (dc_device_t **out, dc_context_t *context, const cha
|
||||
}
|
||||
|
||||
// Initialize the base class.
|
||||
device_init (&device->base, context, &zeagle_n2ition3_device_backend);
|
||||
device_init (&device->base, context, &zeagle_n2ition3_device_vtable);
|
||||
|
||||
// Set the default values.
|
||||
device->port = NULL;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user