From: Uwe Hermann Date: Thu, 14 Nov 2013 21:16:11 +0000 (+0100) Subject: libserialport.h: Add package/lib version macros. X-Git-Tag: libserialport-0.1.0~129 X-Git-Url: http://sigrok.org/gitweb/?p=libserialport.git;a=commitdiff_plain;h=baba075903320faffb5ae3c85169d7e72ba6330f libserialport.h: Add package/lib version macros. These can be used by frontends e.g. for conditional compilation, or simply for printing, logging to debug output, and so on. --- diff --git a/configure.ac b/configure.ac index 96c16d2..488e283 100644 --- a/configure.ac +++ b/configure.ac @@ -112,7 +112,7 @@ AC_SUBST(SP_PACKAGE_VERSION_MAJOR) AC_SUBST(SP_PACKAGE_VERSION_MINOR) AC_SUBST(SP_PACKAGE_VERSION) -AC_CONFIG_FILES([Makefile libserialport.pc]) +AC_CONFIG_FILES([Makefile libserialport.h libserialport.pc]) AC_OUTPUT diff --git a/libserialport.h b/libserialport.h deleted file mode 100644 index d60c2da..0000000 --- a/libserialport.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * This file is part of the libserialport project. - * - * Copyright (C) 2013 Martin Ling - * - * This program 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 3 of the - * License, or (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - */ - -#ifndef LIBSERIALPORT_H -#define LIBSERIALPORT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#ifdef _WIN32 -#include -#endif - -/* A serial port. */ -struct sp_port { - /* Name used to open the port */ - char *name; - /* OS-specific port handle */ -#ifdef _WIN32 - HANDLE hdl; -#else - int fd; -#endif -}; - -/* Return values. */ -enum { - /* Operation completed successfully. */ - SP_OK = 0, - /* Invalid arguments were passed to the function. */ - SP_ERR_ARG = -1, - /* A system error occured while executing the operation. */ - SP_ERR_FAIL = -2, - /* A memory allocation failed while executing the operation. */ - SP_ERR_MEM = -3, -}; - -/* Port access modes. */ -enum { - /* Open port for read/write access. */ - SP_MODE_RDWR = 1, - /* Open port for read access only. */ - SP_MODE_RDONLY = 2, - /* Open port in non-blocking mode. */ - SP_MODE_NONBLOCK = 4, -}; - -/* Parity settings. */ -enum { - /* No parity. */ - SP_PARITY_NONE = 0, - /* Even parity. */ - SP_PARITY_EVEN = 1, - /* Odd parity. */ - SP_PARITY_ODD = 2, -}; - -/* Flow control settings. */ -enum { - /* No flow control. */ - SP_FLOW_NONE = 0, - /* Hardware (RTS/CTS) flow control. */ - SP_FLOW_HARDWARE = 1, - /* Software (XON/XOFF) flow control. */ - SP_FLOW_SOFTWARE = 2, -}; - -int sp_get_port_by_name(const char *portname, struct sp_port **port_ptr); -void sp_free_port(struct sp_port *port); -int sp_list_ports(struct sp_port ***list_ptr); -int sp_copy_port(const struct sp_port *port, struct sp_port **copy_ptr); -void sp_free_port_list(struct sp_port **ports); -int sp_open(struct sp_port *port, int flags); -int sp_close(struct sp_port *port); -int sp_flush(struct sp_port *port); -int sp_write(struct sp_port *port, const void *buf, size_t count); -int sp_read(struct sp_port *port, void *buf, size_t count); -int sp_set_params(struct sp_port *port, int baudrate, int bits, int parity, - int stopbits, int flowcontrol, int rts, int dtr); -int sp_last_error_code(void); -char *sp_last_error_message(void); -void sp_free_error_message(char *message); - -#ifdef __cplusplus -} -#endif - -#endif /* LIBSERIALPORT_H */ diff --git a/libserialport.h.in b/libserialport.h.in new file mode 100644 index 0000000..f9f5b24 --- /dev/null +++ b/libserialport.h.in @@ -0,0 +1,117 @@ +/* + * This file is part of the libserialport project. + * + * Copyright (C) 2013 Martin Ling + * + * This program 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 3 of the + * License, or (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +#ifndef LIBSERIALPORT_H +#define LIBSERIALPORT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#ifdef _WIN32 +#include +#endif + +/* Package version macros (e.g. for conditional compilation). */ +#define SP_PACKAGE_VERSION_MAJOR @SP_PACKAGE_VERSION_MAJOR@ +#define SP_PACKAGE_VERSION_MINOR @SP_PACKAGE_VERSION_MINOR@ +#define SP_PACKAGE_VERSION_STRING "@SP_PACKAGE_VERSION@" + +/* Library/libtool version macros (e.g. for conditional compilation). */ +#define SP_LIB_VERSION_CURRENT @SP_LIB_VERSION_CURRENT@ +#define SP_LIB_VERSION_REVISION @SP_LIB_VERSION_REVISION@ +#define SP_LIB_VERSION_AGE @SP_LIB_VERSION_AGE@ +#define SP_LIB_VERSION_STRING "@SP_LIB_VERSION@" + +/* A serial port. */ +struct sp_port { + /* Name used to open the port */ + char *name; + /* OS-specific port handle */ +#ifdef _WIN32 + HANDLE hdl; +#else + int fd; +#endif +}; + +/* Return values. */ +enum { + /* Operation completed successfully. */ + SP_OK = 0, + /* Invalid arguments were passed to the function. */ + SP_ERR_ARG = -1, + /* A system error occured while executing the operation. */ + SP_ERR_FAIL = -2, + /* A memory allocation failed while executing the operation. */ + SP_ERR_MEM = -3, +}; + +/* Port access modes. */ +enum { + /* Open port for read/write access. */ + SP_MODE_RDWR = 1, + /* Open port for read access only. */ + SP_MODE_RDONLY = 2, + /* Open port in non-blocking mode. */ + SP_MODE_NONBLOCK = 4, +}; + +/* Parity settings. */ +enum { + /* No parity. */ + SP_PARITY_NONE = 0, + /* Even parity. */ + SP_PARITY_EVEN = 1, + /* Odd parity. */ + SP_PARITY_ODD = 2, +}; + +/* Flow control settings. */ +enum { + /* No flow control. */ + SP_FLOW_NONE = 0, + /* Hardware (RTS/CTS) flow control. */ + SP_FLOW_HARDWARE = 1, + /* Software (XON/XOFF) flow control. */ + SP_FLOW_SOFTWARE = 2, +}; + +int sp_get_port_by_name(const char *portname, struct sp_port **port_ptr); +void sp_free_port(struct sp_port *port); +int sp_list_ports(struct sp_port ***list_ptr); +int sp_copy_port(const struct sp_port *port, struct sp_port **copy_ptr); +void sp_free_port_list(struct sp_port **ports); +int sp_open(struct sp_port *port, int flags); +int sp_close(struct sp_port *port); +int sp_flush(struct sp_port *port); +int sp_write(struct sp_port *port, const void *buf, size_t count); +int sp_read(struct sp_port *port, void *buf, size_t count); +int sp_set_params(struct sp_port *port, int baudrate, int bits, int parity, + int stopbits, int flowcontrol, int rts, int dtr); +int sp_last_error_code(void); +char *sp_last_error_message(void); +void sp_free_error_message(char *message); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBSERIALPORT_H */