From e0ecf26de207483aa5e8cf797e38eece3098b422 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Wed, 27 Apr 2016 21:02:22 +0300 Subject: [PATCH] shared: Add TTY speed helper --- Makefile.am | 3 +- src/shared/tty.h | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 src/shared/tty.h diff --git a/Makefile.am b/Makefile.am index bac371b56..b34b633c6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -118,7 +118,8 @@ shared_sources = src/shared/io.h src/shared/timeout.h \ src/shared/gatt-client.h src/shared/gatt-client.c \ src/shared/gatt-server.h src/shared/gatt-server.c \ src/shared/gatt-db.h src/shared/gatt-db.c \ - src/shared/gap.h src/shared/gap.c + src/shared/gap.h src/shared/gap.c \ + src/shared/tty.h src_libshared_glib_la_SOURCES = $(shared_sources) \ src/shared/io-glib.c \ diff --git a/src/shared/tty.h b/src/shared/tty.h new file mode 100644 index 000000000..66ec09f31 --- /dev/null +++ b/src/shared/tty.h @@ -0,0 +1,80 @@ +/* + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2016 Intel Corporation. All rights reserved. + * + * + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#include + +static inline unsigned int tty_get_speed(int speed) +{ + switch (speed) { + case 9600: + return B9600; + case 19200: + return B19200; + case 38400: + return B38400; + case 57600: + return B57600; + case 115200: + return B115200; + case 230400: + return B230400; + case 460800: + return B460800; + case 500000: + return B500000; + case 576000: + return B576000; + case 921600: + return B921600; + case 1000000: + return B1000000; + case 1152000: + return B1152000; + case 1500000: + return B1500000; + case 2000000: + return B2000000; +#ifdef B2500000 + case 2500000: + return B2500000; +#endif +#ifdef B3000000 + case 3000000: + return B3000000; +#endif +#ifdef B3500000 + case 3500000: + return B3500000; +#endif +#ifdef B3710000 + case 3710000: + return B3710000; +#endif +#ifdef B4000000 + case 4000000: + return B4000000; +#endif + } + + return 0; +} -- 2.47.3