btio.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. *
  4. * BlueZ - Bluetooth protocol stack for Linux
  5. *
  6. * Copyright (C) 2009-2010 Marcel Holtmann <marcel@holtmann.org>
  7. * Copyright (C) 2009-2010 Nokia Corporation
  8. *
  9. *
  10. */
  11. #ifndef BT_IO_H
  12. #define BT_IO_H
  13. #include <glib.h>
  14. #define BT_IO_ERROR bt_io_error_quark()
  15. GQuark bt_io_error_quark(void);
  16. typedef enum {
  17. BT_IO_OPT_INVALID = 0,
  18. BT_IO_OPT_SOURCE,
  19. BT_IO_OPT_SOURCE_BDADDR,
  20. BT_IO_OPT_SOURCE_TYPE,
  21. BT_IO_OPT_DEST,
  22. BT_IO_OPT_DEST_BDADDR,
  23. BT_IO_OPT_DEST_TYPE,
  24. BT_IO_OPT_DEFER_TIMEOUT,
  25. BT_IO_OPT_SEC_LEVEL,
  26. BT_IO_OPT_KEY_SIZE,
  27. BT_IO_OPT_CHANNEL,
  28. BT_IO_OPT_SOURCE_CHANNEL,
  29. BT_IO_OPT_DEST_CHANNEL,
  30. BT_IO_OPT_PSM,
  31. BT_IO_OPT_CID,
  32. BT_IO_OPT_MTU,
  33. BT_IO_OPT_OMTU,
  34. BT_IO_OPT_IMTU,
  35. BT_IO_OPT_CENTRAL,
  36. BT_IO_OPT_HANDLE,
  37. BT_IO_OPT_CLASS,
  38. BT_IO_OPT_MODE,
  39. BT_IO_OPT_FLUSHABLE,
  40. BT_IO_OPT_PRIORITY,
  41. BT_IO_OPT_VOICE,
  42. BT_IO_OPT_PHY,
  43. } BtIOOption;
  44. typedef enum {
  45. BT_IO_SEC_SDP = 0,
  46. BT_IO_SEC_LOW,
  47. BT_IO_SEC_MEDIUM,
  48. BT_IO_SEC_HIGH,
  49. } BtIOSecLevel;
  50. typedef enum {
  51. BT_IO_MODE_BASIC = 0,
  52. BT_IO_MODE_ERTM,
  53. BT_IO_MODE_STREAMING,
  54. BT_IO_MODE_LE_FLOWCTL,
  55. BT_IO_MODE_EXT_FLOWCTL
  56. } BtIOMode;
  57. typedef void (*BtIOConfirm)(GIOChannel *io, gpointer user_data);
  58. typedef void (*BtIOConnect)(GIOChannel *io, GError *err, gpointer user_data);
  59. gboolean bt_io_accept(GIOChannel *io, BtIOConnect connect, gpointer user_data,
  60. GDestroyNotify destroy, GError **err);
  61. gboolean bt_io_set(GIOChannel *io, GError **err, BtIOOption opt1, ...);
  62. gboolean bt_io_get(GIOChannel *io, GError **err, BtIOOption opt1, ...);
  63. GIOChannel *bt_io_connect(BtIOConnect connect, gpointer user_data,
  64. GDestroyNotify destroy, GError **gerr,
  65. BtIOOption opt1, ...);
  66. GIOChannel *bt_io_listen(BtIOConnect connect, BtIOConfirm confirm,
  67. gpointer user_data, GDestroyNotify destroy,
  68. GError **err, BtIOOption opt1, ...);
  69. #endif