/* * * BlueZ - Bluetooth protocol stack for Linux * * Copyright (C) 2005-2008 Marcel Holtmann * * * 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 * */ #pragma once #include /** * SECTION:bluetooth-enums * @short_description: Bluetooth related enumerations * @stability: Stable * @include: bluetooth-enums.h * * Enumerations related to Bluetooth. **/ /** * BluetoothCategory: * @BLUETOOTH_CATEGORY_ALL: all devices * @BLUETOOTH_CATEGORY_PAIRED: paired devices * @BLUETOOTH_CATEGORY_TRUSTED: trusted devices * @BLUETOOTH_CATEGORY_NOT_PAIRED_OR_TRUSTED: neither paired, nor trusted devices * @BLUETOOTH_CATEGORY_PAIRED_OR_TRUSTED: paired and/or trusted devices * * The category of a Bluetooth devices. **/ typedef enum { BLUETOOTH_CATEGORY_ALL, BLUETOOTH_CATEGORY_PAIRED, BLUETOOTH_CATEGORY_TRUSTED, BLUETOOTH_CATEGORY_NOT_PAIRED_OR_TRUSTED, BLUETOOTH_CATEGORY_PAIRED_OR_TRUSTED, /* < private > */ BLUETOOTH_CATEGORY_NUM_CATEGORIES /*< skip >*/ } BluetoothCategory; /** * BluetoothType: * @BLUETOOTH_TYPE_ANY: any device, or a device of an unknown type * @BLUETOOTH_TYPE_PHONE: a telephone (usually a cell/mobile phone) * @BLUETOOTH_TYPE_MODEM: a modem * @BLUETOOTH_TYPE_COMPUTER: a computer, can be a laptop, a wearable computer, etc. * @BLUETOOTH_TYPE_NETWORK: a network device, such as a router * @BLUETOOTH_TYPE_HEADSET: a headset (usually a hands-free device) * @BLUETOOTH_TYPE_HEADPHONES: headphones (covers two ears) * @BLUETOOTH_TYPE_OTHER_AUDIO: another type of audio device * @BLUETOOTH_TYPE_KEYBOARD: a keyboard * @BLUETOOTH_TYPE_MOUSE: a mouse * @BLUETOOTH_TYPE_CAMERA: a camera (still or moving) * @BLUETOOTH_TYPE_PRINTER: a printer * @BLUETOOTH_TYPE_JOYPAD: a joypad, joystick, or other game controller * @BLUETOOTH_TYPE_TABLET: a drawing tablet * @BLUETOOTH_TYPE_VIDEO: a video device, such as a webcam * @BLUETOOTH_TYPE_REMOTE_CONTROL: a remote control * @BLUETOOTH_TYPE_SCANNER: a scanner * @BLUETOOTH_TYPE_DISPLAY: a display * @BLUETOOTH_TYPE_WEARABLE: a wearable computer * @BLUETOOTH_TYPE_TOY: a toy or game * @BLUETOOTH_TYPE_SPEAKERS: audio speaker or speakers * * The type of a Bluetooth device. See also %BLUETOOTH_TYPE_INPUT and %BLUETOOTH_TYPE_AUDIO **/ typedef enum { BLUETOOTH_TYPE_ANY = 1 << 0, BLUETOOTH_TYPE_PHONE = 1 << 1, BLUETOOTH_TYPE_MODEM = 1 << 2, BLUETOOTH_TYPE_COMPUTER = 1 << 3, BLUETOOTH_TYPE_NETWORK = 1 << 4, BLUETOOTH_TYPE_HEADSET = 1 << 5, BLUETOOTH_TYPE_HEADPHONES = 1 << 6, BLUETOOTH_TYPE_OTHER_AUDIO = 1 << 7, BLUETOOTH_TYPE_KEYBOARD = 1 << 8, BLUETOOTH_TYPE_MOUSE = 1 << 9, BLUETOOTH_TYPE_CAMERA = 1 << 10, BLUETOOTH_TYPE_PRINTER = 1 << 11, BLUETOOTH_TYPE_JOYPAD = 1 << 12, BLUETOOTH_TYPE_TABLET = 1 << 13, BLUETOOTH_TYPE_VIDEO = 1 << 14, BLUETOOTH_TYPE_REMOTE_CONTROL = 1 << 15, BLUETOOTH_TYPE_SCANNER = 1 << 16, BLUETOOTH_TYPE_DISPLAY = 1 << 17, BLUETOOTH_TYPE_WEARABLE = 1 << 18, BLUETOOTH_TYPE_TOY = 1 << 19, BLUETOOTH_TYPE_SPEAKERS = 1 << 20, } BluetoothType; #define _BLUETOOTH_TYPE_NUM_TYPES 21 /** * BLUETOOTH_TYPE_INPUT: * * Use this value to select any Bluetooth input device where a #BluetoothType enum is required. */ #define BLUETOOTH_TYPE_INPUT (BLUETOOTH_TYPE_KEYBOARD | BLUETOOTH_TYPE_MOUSE | BLUETOOTH_TYPE_TABLET | BLUETOOTH_TYPE_JOYPAD) /** * BLUETOOTH_TYPE_AUDIO: * * Use this value to select any Bluetooth audio device where a #BluetoothType enum is required. */ #define BLUETOOTH_TYPE_AUDIO (BLUETOOTH_TYPE_HEADSET | BLUETOOTH_TYPE_HEADPHONES | BLUETOOTH_TYPE_OTHER_AUDIO | BLUETOOTH_TYPE_SPEAKERS) /** * BluetoothColumn: * @BLUETOOTH_COLUMN_PROXY: a #GDBusProxy object * @BLUETOOTH_COLUMN_PROPERTIES: Used to be #GDBusProxy object for DBus.Properties, now always %NULL * @BLUETOOTH_COLUMN_ADDRESS: a string representing a Bluetooth address * @BLUETOOTH_COLUMN_ALIAS: a string to use for display (the name of the device, or its address if the name is not known). Only available for devices. * @BLUETOOTH_COLUMN_NAME: a string representing the device or adapter's name * @BLUETOOTH_COLUMN_TYPE: the #BluetoothType of the device. Only available for devices. * @BLUETOOTH_COLUMN_ICON: a string representing the icon name for the device. Only available for devices. * @BLUETOOTH_COLUMN_DEFAULT: whether the adapter is the default one. Only available for adapters. * @BLUETOOTH_COLUMN_PAIRED: whether the device is paired to its parent adapter. Only available for devices. * @BLUETOOTH_COLUMN_TRUSTED: whether the device is trusted. Only available for devices. * @BLUETOOTH_COLUMN_CONNECTED: whether the device is connected. Only available for devices. * @BLUETOOTH_COLUMN_DISCOVERABLE: whether the adapter is discoverable/visible. Only available for adapters. * @BLUETOOTH_COLUMN_DISCOVERING: whether the adapter is discovering. Only available for adapters. * @BLUETOOTH_COLUMN_LEGACYPAIRING: whether the device does not support Bluetooth 2.1 Simple Secure Pairing. Only available for devices. * @BLUETOOTH_COLUMN_POWERED: whether the adapter is powered. Only available for adapters. * @BLUETOOTH_COLUMN_SERVICES: an array of service names and #BluetoothStatus connection statuses. * @BLUETOOTH_COLUMN_UUIDS: a string array of human-readable UUIDs. * * A column identifier to pass to bluetooth_chooser_get_selected_device_info(). **/ typedef enum { BLUETOOTH_COLUMN_PROXY, BLUETOOTH_COLUMN_PROPERTIES, BLUETOOTH_COLUMN_ADDRESS, BLUETOOTH_COLUMN_ALIAS, BLUETOOTH_COLUMN_NAME, BLUETOOTH_COLUMN_TYPE, BLUETOOTH_COLUMN_ICON, BLUETOOTH_COLUMN_DEFAULT, BLUETOOTH_COLUMN_PAIRED, BLUETOOTH_COLUMN_TRUSTED, BLUETOOTH_COLUMN_CONNECTED, BLUETOOTH_COLUMN_DISCOVERABLE, BLUETOOTH_COLUMN_DISCOVERING, BLUETOOTH_COLUMN_LEGACYPAIRING, BLUETOOTH_COLUMN_POWERED, BLUETOOTH_COLUMN_SERVICES, BLUETOOTH_COLUMN_UUIDS, } BluetoothColumn; #define _BLUETOOTH_NUM_COLUMNS (BLUETOOTH_COLUMN_UUIDS + 1) /** * BluetoothStatus: * @BLUETOOTH_STATUS_INVALID: whether the status has been set yet * @BLUETOOTH_STATUS_DISCONNECTED: whether the service is disconnected * @BLUETOOTH_STATUS_CONNECTED: whether the service is connected * @BLUETOOTH_STATUS_CONNECTING: whether the service is connecting * @BLUETOOTH_STATUS_PLAYING: whether the service is playing (only used by the audio service) * * The connection status of a service on a particular device. Note that @BLUETOOTH_STATUS_CONNECTING and @BLUETOOTH_STATUS_PLAYING might not be available for all services. **/ typedef enum { BLUETOOTH_STATUS_INVALID = 0, BLUETOOTH_STATUS_DISCONNECTED, BLUETOOTH_STATUS_CONNECTED, BLUETOOTH_STATUS_CONNECTING, BLUETOOTH_STATUS_PLAYING } BluetoothStatus;