Linus Torvalds 39dbb275cc Merge git://github.com/libdivecomputer/libdivecomputer into Subsurface-DS9
Merge Jef's upstream into the Subsurface branch:

 - support for new dive computers: Mares Pick Pro+, Deep Six Excursion,
   Crest CR-4, Genesis Centauri and Tusa TC1.

 - support freedive mode on Mares Smart Air

 - work with Oceanic dive computers regardless of whether they need the
   BLE handshake or not

 - OSTC updates: support bigger BLE packets in newer versions, fix
   setpoint in SCR mode

 - Shearwater updates: full dive mode parsing, correct timezone handling
   on Teric, support up to four transmitters on newer log versions.

* git://github.com/libdivecomputer/libdivecomputer: (26 commits)
  Read the extra tank information
  Add support for transmitter T3 and T4
  Limit the number of records for the Predator
  Report the timezone offset for the Teric
  Use the correct model number from the final block
  Use the dive mode stored in the header
  Report the correct dive mode for SCR dives
  Increase the size of the BLE packet cache
  Add support for the Genesis Centauri and Tusa TC1
  Read the hardware and software version
  Report the initial setpoint in SCR mode
  Add the divemode to the layout descriptor
  Re-order the fields in the layout descriptor
  Show the correct help message for the scan command
  Add support for the Crest CR-4
  Add udev rule for the Suunto EON Steel Black
  Ignore unsupported BLE handshake
  Detect NAK response packets
  Remove the initial gas switch
  Restore the original standard gravity factor
  ...
2022-02-27 12:20:09 -08:00

133 lines
3.6 KiB
C

/*
* libdivecomputer
*
* Copyright (C) 2011 Jef Driesen
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
#ifndef DC_COMMON_H
#define DC_COMMON_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef enum dc_status_t {
DC_STATUS_SUCCESS = 0,
DC_STATUS_DONE = 1,
DC_STATUS_UNSUPPORTED = -1,
DC_STATUS_INVALIDARGS = -2,
DC_STATUS_NOMEMORY = -3,
DC_STATUS_NODEVICE = -4,
DC_STATUS_NOACCESS = -5,
DC_STATUS_IO = -6,
DC_STATUS_TIMEOUT = -7,
DC_STATUS_PROTOCOL = -8,
DC_STATUS_DATAFORMAT = -9,
DC_STATUS_CANCELLED = -10
} dc_status_t;
typedef enum dc_transport_t {
DC_TRANSPORT_NONE = 0,
DC_TRANSPORT_SERIAL = (1 << 0),
DC_TRANSPORT_USB = (1 << 1),
DC_TRANSPORT_USBHID = (1 << 2),
DC_TRANSPORT_IRDA = (1 << 3),
DC_TRANSPORT_BLUETOOTH = (1 << 4),
DC_TRANSPORT_BLE = (1 << 5),
DC_TRANSPORT_USBSTORAGE= (1 << 6),
} dc_transport_t;
// Idiotic enums can't be queried
#define DC_TRANSPORT_USBSTORAGE DC_TRANSPORT_USBSTORAGE
typedef enum dc_family_t {
DC_FAMILY_NULL = 0,
/* Suunto */
DC_FAMILY_SUUNTO_SOLUTION = (1 << 16),
DC_FAMILY_SUUNTO_EON,
DC_FAMILY_SUUNTO_VYPER,
DC_FAMILY_SUUNTO_VYPER2,
DC_FAMILY_SUUNTO_D9,
DC_FAMILY_SUUNTO_EONSTEEL,
/* Reefnet */
DC_FAMILY_REEFNET_SENSUS = (2 << 16),
DC_FAMILY_REEFNET_SENSUSPRO,
DC_FAMILY_REEFNET_SENSUSULTRA,
/* Uwatec */
DC_FAMILY_UWATEC_ALADIN = (3 << 16),
DC_FAMILY_UWATEC_MEMOMOUSE,
DC_FAMILY_UWATEC_SMART,
DC_FAMILY_UWATEC_MERIDIAN, /* Deprecated: integrated into the Uwatec Smart family. */
DC_FAMILY_UWATEC_G2, /* Deprecated: integrated into the Uwatec Smart family. */
/* Oceanic */
DC_FAMILY_OCEANIC_VTPRO = (4 << 16),
DC_FAMILY_OCEANIC_VEO250,
DC_FAMILY_OCEANIC_ATOM2,
/* Mares */
DC_FAMILY_MARES_NEMO = (5 << 16),
DC_FAMILY_MARES_PUCK,
DC_FAMILY_MARES_DARWIN,
DC_FAMILY_MARES_ICONHD,
/* Heinrichs Weikamp */
DC_FAMILY_HW_OSTC = (6 << 16),
DC_FAMILY_HW_FROG,
DC_FAMILY_HW_OSTC3,
/* Cressi */
DC_FAMILY_CRESSI_EDY = (7 << 16),
DC_FAMILY_CRESSI_LEONARDO,
DC_FAMILY_CRESSI_GOA,
/* Zeagle */
DC_FAMILY_ZEAGLE_N2ITION3 = (8 << 16),
/* Atomic Aquatics */
DC_FAMILY_ATOMICS_COBALT = (9 << 16),
/* Shearwater */
DC_FAMILY_SHEARWATER_PREDATOR = (10 << 16),
DC_FAMILY_SHEARWATER_PETREL,
/* Dive Rite */
DC_FAMILY_DIVERITE_NITEKQ = (11 << 16),
/* Citizen */
DC_FAMILY_CITIZEN_AQUALAND = (12 << 16),
/* DiveSystem */
DC_FAMILY_DIVESYSTEM_IDIVE = (13 << 16),
/* Cochran */
DC_FAMILY_COCHRAN_COMMANDER = (14 << 16),
/* Tecdiving */
DC_FAMILY_TECDIVING_DIVECOMPUTEREU = (15 << 16),
/* McLean */
DC_FAMILY_MCLEAN_EXTREME = (16 << 16),
/* Liquivision */
DC_FAMILY_LIQUIVISION_LYNX = (17 << 16),
/* Sporasub */
DC_FAMILY_SPORASUB_SP2 = (18 << 16),
/* Deep Six */
DC_FAMILY_DEEPSIX_EXCURSION = (19 << 16),
// Not merged upstream yet
/* Garmin */
DC_FAMILY_GARMIN = (100 << 16),
/* Deepblu */
DC_FAMILY_DEEPBLU = (101 << 16),
/* Oceans S1 */
DC_FAMILY_OCEANS_S1 = (102 << 16),
} dc_family_t;
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* DC_COMMON_H */