2017-04-27 18:18:03 +00:00
|
|
|
// SPDX-License-Identifier: GPL-2.0
|
2011-09-20 19:40:34 +00:00
|
|
|
#ifndef LIBDIVECOMPUTER_H
|
|
|
|
#define LIBDIVECOMPUTER_H
|
|
|
|
|
2019-08-05 17:41:15 +00:00
|
|
|
#include <stdint.h>
|
2019-08-09 00:38:47 +00:00
|
|
|
#include <stdio.h>
|
2024-05-04 15:55:50 +00:00
|
|
|
#include <string>
|
2013-05-20 19:43:33 +00:00
|
|
|
|
2011-09-20 19:40:34 +00:00
|
|
|
/* libdivecomputer */
|
2015-11-18 21:46:57 +00:00
|
|
|
|
|
|
|
#ifdef DC_VERSION /* prevent a warning with wingdi.h */
|
|
|
|
#undef DC_VERSION
|
|
|
|
#endif
|
2013-05-14 18:50:55 +00:00
|
|
|
#include <libdivecomputer/version.h>
|
2012-07-10 19:33:44 +00:00
|
|
|
#include <libdivecomputer/device.h>
|
|
|
|
#include <libdivecomputer/parser.h>
|
2011-09-20 19:40:34 +00:00
|
|
|
|
2018-08-27 17:32:14 +00:00
|
|
|
// Even if we have an old libdivecomputer, Uemis uses this
|
|
|
|
#ifndef DC_TRANSPORT_USBSTORAGE
|
|
|
|
#define DC_TRANSPORT_USBSTORAGE (1 << 6)
|
2018-08-27 18:19:30 +00:00
|
|
|
#define dc_usb_storage_open(stream, context, devname) (DC_STATUS_UNSUPPORTED)
|
2018-08-27 17:32:14 +00:00
|
|
|
#endif
|
|
|
|
|
2019-08-05 17:41:15 +00:00
|
|
|
struct dive;
|
2022-11-12 11:44:29 +00:00
|
|
|
struct divelog;
|
2020-10-19 17:19:32 +00:00
|
|
|
struct devices;
|
2019-08-05 17:41:15 +00:00
|
|
|
|
2024-05-02 19:59:14 +00:00
|
|
|
struct device_data_t {
|
2024-05-02 07:36:00 +00:00
|
|
|
dc_descriptor_t *descriptor = nullptr;
|
2024-05-02 19:26:22 +00:00
|
|
|
std::string vendor, product, devname;
|
|
|
|
std::string model, btname;
|
2024-05-02 07:36:00 +00:00
|
|
|
unsigned char *fingerprint = nullptr;
|
|
|
|
unsigned int fsize = 0, fdeviceid = 0, fdiveid = 0;
|
|
|
|
struct dc_event_devinfo_t devinfo = { };
|
|
|
|
uint32_t diveid = 0;
|
|
|
|
dc_device_t *device = nullptr;
|
|
|
|
dc_context_t *context = nullptr;
|
|
|
|
dc_iostream_t *iostream = nullptr;
|
|
|
|
bool force_download = false;
|
|
|
|
bool libdc_log = false;
|
|
|
|
bool libdc_dump = false;
|
|
|
|
bool bluetooth_mode = false;
|
|
|
|
bool sync_time = false;
|
|
|
|
FILE *libdc_logfile = nullptr;
|
|
|
|
struct divelog *log = nullptr;
|
|
|
|
void *androidUsbDeviceDescriptor = nullptr;
|
2024-05-02 19:59:14 +00:00
|
|
|
device_data_t();
|
|
|
|
~device_data_t();
|
2024-08-13 21:28:57 +00:00
|
|
|
device_data_t(const device_data_t &) = default;
|
|
|
|
device_data_t(device_data_t &&) = default;
|
|
|
|
device_data_t &operator=(const device_data_t &) = default;
|
|
|
|
device_data_t &operator=(device_data_t &&) = default;
|
2024-05-02 19:59:14 +00:00
|
|
|
};
|
2011-09-20 19:40:34 +00:00
|
|
|
|
2015-04-03 19:33:10 +00:00
|
|
|
const char *errmsg (dc_status_t rc);
|
2024-04-29 05:02:54 +00:00
|
|
|
std::string do_libdivecomputer_import(device_data_t *data);
|
2015-04-03 22:51:38 +00:00
|
|
|
dc_status_t libdc_buffer_parser(struct dive *dive, device_data_t *data, unsigned char *buffer, int size);
|
2015-05-27 19:19:12 +00:00
|
|
|
void logfunc(dc_context_t *context, dc_loglevel_t loglevel, const char *file, unsigned int line, const char *function, const char *msg, void *userdata);
|
2016-12-28 19:55:53 +00:00
|
|
|
dc_descriptor_t *get_descriptor(dc_family_t type, unsigned int model);
|
2011-09-20 19:40:34 +00:00
|
|
|
|
2013-05-20 20:02:17 +00:00
|
|
|
extern int import_thread_cancelled;
|
2024-06-08 20:43:04 +00:00
|
|
|
extern std::string progress_bar_text;
|
|
|
|
extern void (*progress_callback)(const std::string &text);
|
2013-05-20 20:02:17 +00:00
|
|
|
extern double progress_bar_fraction;
|
2015-07-07 18:47:48 +00:00
|
|
|
|
2018-04-17 01:14:59 +00:00
|
|
|
dc_status_t ble_packet_open(dc_iostream_t **iostream, dc_context_t *context, const char* devaddr, void *userdata);
|
|
|
|
dc_status_t rfcomm_stream_open(dc_iostream_t **iostream, dc_context_t *context, const char* devaddr);
|
|
|
|
dc_status_t ftdi_open(dc_iostream_t **iostream, dc_context_t *context);
|
2020-03-15 01:11:46 +00:00
|
|
|
dc_status_t serial_usb_android_open(dc_iostream_t **iostream, dc_context_t *context, void *androidUsbDevice);
|
2013-05-20 20:02:17 +00:00
|
|
|
|
2018-04-17 22:57:04 +00:00
|
|
|
dc_status_t divecomputer_device_open(device_data_t *data);
|
|
|
|
|
2018-04-25 22:51:35 +00:00
|
|
|
unsigned int get_supported_transports(device_data_t *data);
|
|
|
|
|
2024-03-16 09:29:05 +00:00
|
|
|
extern std::string logfile_name;
|
|
|
|
extern std::string dumpfile_name;
|
|
|
|
|
2014-02-11 18:14:46 +00:00
|
|
|
#endif // LIBDIVECOMPUTER_H
|