Exemplo n.º 1
0
static const char *do_libdivecomputer_import(device_data_t *data)
{
	device_t *device = NULL;
	device_status_t rc;

	rc = device_open(data->devname, data->type, &device);
	if (rc != DEVICE_STATUS_SUCCESS)
		return "Unable to open %s (%s)";

	// Register the event handler.
	int events = DEVICE_EVENT_WAITING | DEVICE_EVENT_PROGRESS | DEVICE_EVENT_DEVINFO | DEVICE_EVENT_CLOCK;
	rc = device_set_events(device, events, event_cb, data);
	if (rc != DEVICE_STATUS_SUCCESS) {
		device_close(device);
		return "Error registering the event handler.";
	}

	// Register the cancellation handler.
	rc = device_set_cancel(device, cancel_cb, data);
	if (rc != DEVICE_STATUS_SUCCESS) {
		device_close(device);
		return "Error registering the cancellation handler.";
	}

	rc = import_device_data(device, data);
	if (rc != DEVICE_STATUS_SUCCESS) {
		device_close(device);
		return "Dive data import error";
	}

	device_close(device);
	return NULL;
}
Exemplo n.º 2
0
static const char *do_device_import(device_data_t *data)
{
	dc_status_t rc;
	dc_device_t *device = data->device;

	// Register the event handler.
	int events = DC_EVENT_WAITING | DC_EVENT_PROGRESS | DC_EVENT_DEVINFO | DC_EVENT_CLOCK;
	rc = dc_device_set_events(device, events, event_cb, data);
	if (rc != DC_STATUS_SUCCESS)
		return _("Error registering the event handler.");

	// Register the cancellation handler.
	rc = dc_device_set_cancel(device, cancel_cb, data);
	if (rc != DC_STATUS_SUCCESS)
		return _("Error registering the cancellation handler.");

	rc = import_device_data(device, data);
	if (rc != DC_STATUS_SUCCESS)
		return _("Dive data import error");

	/* All good */
	return NULL;
}