Linus Torvalds 60efc308d2 Rename 'custom_serial' as 'custom_io' across the board
The custom IO handlers will be extended to not just do serial line
emulation (generally over Bluetooth rfcomm), but do BLE too.

BLE does not look like a serial protocol at all, it's packet-based, and
we may have to add specific routines to indicate which GATT endpoints to
use etc.  But like the traditional custom serial code, we want to do the
actual IO not from within libdivecomputer, but from the user of the
library (because the BLE support will require things like the Qt
Connectivity layer - and we do not want libdivecomputer to have to link
against something like Qt).

So this renames 'custom_serial' to 'custom_io', and instead names the
individual member function pointers 'serial_*' to make it clear that
those members are for serial communication.

It also adds new placeholders for packet_open/close/read/write.  Note
that while these may look similar to the serial counter-parts, they are
not the same or even necessarily mutually exclusive.  It is possible the
the caller fills in one or the other (or both), and they would be used
independently.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-06-18 16:28:24 +09:00

61 lines
1.7 KiB
C

/*
* libdivecomputer
*
* Copyright (C) 2010 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_VERSION_H
#define DC_VERSION_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* use these defines to detect Subsurface specific features */
#define SSRF_LIBDC_VERSION 1
#define SSRF_CUSTOM_IO 1
#define DC_VERSION "@DC_VERSION@"
#define DC_VERSION_MAJOR @DC_VERSION_MAJOR@
#define DC_VERSION_MINOR @DC_VERSION_MINOR@
#define DC_VERSION_MICRO @DC_VERSION_MICRO@
#define DC_VERSION_CHECK(major,minor,micro) \
(DC_VERSION_MAJOR > (major) || \
(DC_VERSION_MAJOR == (major) && DC_VERSION_MINOR > (minor)) || \
(DC_VERSION_MAJOR == (major) && DC_VERSION_MINOR == (minor) && \
DC_VERSION_MICRO >= (micro)))
typedef struct dc_version_t {
unsigned int major;
unsigned int minor;
unsigned int micro;
} dc_version_t;
const char *
dc_version (dc_version_t *version);
int
dc_version_check (unsigned int major, unsigned int minor, unsigned int micro);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* DC_VERSION_H */