1 /* 2 * 3 * BlueZ - Bluetooth protocol stack for Linux 4 * 5 * Copyright (C) 2009-2010 Marcel Holtmann <marcel (at) holtmann.org> 6 * Copyright (C) 2009-2010 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 25 #include <glib.h> 26 27 typedef enum { 28 BT_IO_ERROR_DISCONNECTED, 29 BT_IO_ERROR_CONNECT_FAILED, 30 BT_IO_ERROR_FAILED, 31 BT_IO_ERROR_INVALID_ARGS, 32 } BtIOError; 33 34 #define BT_IO_ERROR bt_io_error_quark() 35 36 GQuark bt_io_error_quark(void); 37 38 typedef enum { 39 BT_IO_L2RAW, 40 BT_IO_L2CAP, 41 BT_IO_RFCOMM, 42 BT_IO_SCO, 43 } BtIOType; 44 45 typedef enum { 46 BT_IO_OPT_INVALID = 0, 47 BT_IO_OPT_SOURCE, 48 BT_IO_OPT_SOURCE_BDADDR, 49 BT_IO_OPT_DEST, 50 BT_IO_OPT_DEST_BDADDR, 51 BT_IO_OPT_DEFER_TIMEOUT, 52 BT_IO_OPT_SEC_LEVEL, 53 BT_IO_OPT_CHANNEL, 54 BT_IO_OPT_SOURCE_CHANNEL, 55 BT_IO_OPT_DEST_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 BT_IO_OPT_MODE, 64 } BtIOOption; 65 66 typedef enum { 67 BT_IO_SEC_SDP = 0, 68 BT_IO_SEC_LOW, 69 BT_IO_SEC_MEDIUM, 70 BT_IO_SEC_HIGH, 71 } BtIOSecLevel; 72 73 typedef void (*BtIOConfirm)(GIOChannel *io, gpointer user_data); 74 75 typedef void (*BtIOConnect)(GIOChannel *io, GError *err, gpointer user_data); 76 77 gboolean bt_io_accept(GIOChannel *io, BtIOConnect connect, gpointer user_data, 78 GDestroyNotify destroy, GError **err); 79 80 gboolean bt_io_set(GIOChannel *io, BtIOType type, GError **err, 81 BtIOOption opt1, ...); 82 83 gboolean bt_io_get(GIOChannel *io, BtIOType type, GError **err, 84 BtIOOption opt1, ...); 85 86 GIOChannel *bt_io_connect(BtIOType type, BtIOConnect connect, 87 gpointer user_data, GDestroyNotify destroy, 88 GError **err, BtIOOption opt1, ...); 89 90 GIOChannel *bt_io_listen(BtIOType type, BtIOConnect connect, 91 BtIOConfirm confirm, gpointer user_data, 92 GDestroyNotify destroy, GError **err, 93 BtIOOption opt1, ...); 94 95