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:
Jef Driesen 2012-12-27 12:28:20 +01:00
parent 63d0f41758
commit 007479fc92
57 changed files with 193 additions and 193 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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);
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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));

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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));

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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));

View File

@ -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);

View File

@ -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)

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;