1 /* 2 * 3 * BlueZ - Bluetooth protocol stack for Linux 4 * 5 * Copyright (C) 2009 Marcel Holtmann <marcel (at) holtmann.org> 6 * Copyright (C) 2009 Nokia Corporation 7 * 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this program; if not, write to the Free Software 21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 22 * 23 */ 24 #ifndef BT_IO_H 25 #define BT_IO_H 26 27 #include <glib.h> 28 29 typedef enum { 30 BT_IO_ERROR_DISCONNECTED, 31 BT_IO_ERROR_CONNECT_FAILED, 32 BT_IO_ERROR_FAILED, 33 BT_IO_ERROR_INVALID_ARGS, 34 } BtIOError; 35 36 #define BT_IO_ERROR bt_io_error_quark() 37 38 GQuark bt_io_error_quark(void); 39 40 typedef enum { 41 BT_IO_L2RAW, 42 BT_IO_L2CAP, 43 BT_IO_RFCOMM, 44 BT_IO_SCO, 45 } BtIOType; 46 47 typedef enum { 48 BT_IO_OPT_INVALID = 0, 49 BT_IO_OPT_SOURCE, 50 BT_IO_OPT_SOURCE_BDADDR, 51 BT_IO_OPT_DEST, 52 BT_IO_OPT_DEST_BDADDR, 53 BT_IO_OPT_DEFER_TIMEOUT, 54 BT_IO_OPT_SEC_LEVEL, 55 BT_IO_OPT_CHANNEL, 56 BT_IO_OPT_PSM, 57 BT_IO_OPT_MTU, 58 BT_IO_OPT_OMTU, 59 BT_IO_OPT_IMTU, 60 BT_IO_OPT_MASTER, 61 BT_IO_OPT_HANDLE, 62 BT_IO_OPT_CLASS, 63 } BtIOOption; 64 65 typedef enum { 66 BT_IO_SEC_SDP = 0, 67 BT_IO_SEC_LOW, 68 BT_IO_SEC_MEDIUM, 69 BT_IO_SEC_HIGH, 70 } BtIOSecLevel; 71 72 typedef void (*BtIOConfirm)(GIOChannel *io, gpointer user_data); 73 74 typedef void (*BtIOConnect)(GIOChannel *io, GError *err, gpointer user_data); 75 76 gboolean bt_io_accept(GIOChannel *io, BtIOConnect connect, gpointer user_data, 77 GDestroyNotify destroy, GError **err); 78 79 gboolean bt_io_set(GIOChannel *io, BtIOType type, GError **err, 80 BtIOOption opt1, ...); 81 82 gboolean bt_io_get(GIOChannel *io, BtIOType type, GError **err, 83 BtIOOption opt1, ...); 84 85 GIOChannel *bt_io_connect(BtIOType type, BtIOConnect connect, 86 gpointer user_data, GDestroyNotify destroy, 87 GError **err, BtIOOption opt1, ...); 88 89 GIOChannel *bt_io_listen(BtIOType type, BtIOConnect connect, 90 BtIOConfirm confirm, gpointer user_data, 91 GDestroyNotify destroy, GError **err, 92 BtIOOption opt1, ...); 93 94 #endif 95