blob: 949f4b0dae0a9638d7836500a55f95f5897c28da [file] [log] [blame]
/*
*
* BlueZ - Bluetooth protocol stack for Linux
*
* Copyright (C) 2004-2005 Marcel Holtmann <marcel@holtmann.org>
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#define __END_SIG__ DBUS_TYPE_INVALID_AS_STRING
#define BASE_PATH "/org/bluez"
#define BASE_INTERFACE "org.bluez"
#define DEVICE_PATH BASE_PATH "/Device"
#define DEVICE_INTERFACE BASE_INTERFACE ".Device"
#define MANAGER_PATH BASE_PATH "/Manager"
#define MANAGER_INTERFACE BASE_INTERFACE ".Manager"
#define ERROR_INTERFACE BASE_INTERFACE ".Error"
#define MANAGER_PATH_MASK (1 << 15)
#define DEVICE_PATH_MASK (1 << 14)
/* /org/bluez/Manager */
#define MANAGER_ROOT_ID MANAGER_PATH_MASK
/* /org/bluez/Device */
#define DEVICE_ROOT_ID DEVICE_PATH_MASK
/* E.g. /org/bluez/Device/hci0 */
#define DEVICE_PATH_ID (DEVICE_PATH_MASK | 0x0001)
/* E.g. /org/bluez/Device/hci0/Controller */
#define HCI_PATH_ID (DEVICE_PATH_MASK | 0x0002)
#define INVALID_PATH_ID 0xFFFF
#define INVALID_DEV_ID 0xFFFF
/*========================================================================
BlueZ D-Bus Manager service definitions "/org/bluez/Manager"
*========================================================================*/
#define MGR_DEVICE_LIST "DeviceList"
#define MGR_DEFAULT_DEVICE "DefaultDevice"
#define MGR_INIT "Init"
/* Enable/Disable services controller, pan, serial, ... */
#define MGR_ENABLE "Enable"
#define MGR_DISABLE "Disable"
/* Signatures */
#define MGR_GET_DEV_SIGNATURE __END_SIG__
/* DeviceList Reply: a(devname, addr, type, up/down, a(flags)) - all types strings */
#define MGR_GET_DEV_REPLY_SIGNATURE DBUS_TYPE_ARRAY_AS_STRING \
DEV_GET_DEV_REPLY_STRUCT_SIGNATURE \
__END_SIG__
#define MGR_GET_DEV_REPLY_STRUCT_SIGNATURE DBUS_STRUCT_BEGIN_CHAR_AS_STRING \
DBUS_TYPE_STRING_AS_STRING \
DBUS_TYPE_STRING_AS_STRING \
DBUS_TYPE_STRING_AS_STRING \
DBUS_TYPE_STRING_AS_STRING \
DBUS_TYPE_ARRAY_AS_STRING \
DBUS_TYPE_STRING_AS_STRING \
DBUS_STRUCT_END_CHAR_AS_STRING \
__END_SIG__
#define MGR_DEFAULT_DEV_SIGNATURE __END_SIG__
/* Signals sent in the Manager path */
#define BLUEZ_MGR_DEV_ADDED "DeviceAdded"
#define BLUEZ_MGR_DEV_REMOVED "DeviceRemoved"
/*========================================================================
BlueZ D-Bus Device path definitions "/org/bluez/Device"
*========================================================================*/
/* Interfaces implemented in the "/org/bluez/Device" path */
#define BLUEZ_HCI "Controller"
#define DEV_HCI_INTERFACE DEVICE_INTERFACE "." BLUEZ_HCI
/* /org/bluez/Device signals */
#define BLUEZ_HCI_SET_NAME "DeviceNameChanged"
/* Control interface signals */
#define BLUEZ_HCI_INQ_START "InquiryStart"
#define BLUEZ_HCI_INQ_COMPLETE "InquiryComplete"
#define BLUEZ_HCI_INQ_RESULT "InquiryResult"
#define BLUEZ_HCI_REMOTE_NAME "RemoteName"
#define BLUEZ_HCI_REMOTE_NAME_FAILED "RemoteNameFailed"
#define BLUEZ_HCI_AUTH_COMPLETE "AuthenticationComplete"
/* Control interface methods */
#define HCI_PERIODIC_INQ "PeriodicInquiry"
#define HCI_CANCEL_PERIODIC_INQ "CancelPeriodic"
#define HCI_INQ "Inquiry"
#define HCI_CANCEL_INQ "CancelInquiry"
#define HCI_ROLE_SWITCH "RoleSwitch"
#define HCI_REMOTE_NAME "RemoteName"
#define HCI_CONNECTIONS "Connections"
#define HCI_AUTHENTICATE "Authenticate"
/* Control interface methods */
#define DEV_UP "Up"
#define DEV_DOWN "Down"
#define DEV_SET_PROPERTY "SetProperty"
#define DEV_GET_PROPERTY "GetProperty"
#define DEV_PROPERTY_AUTH "auth"
#define DEV_PROPERTY_ENCRYPT "encrypt"
#define DEV_PROPERTY_PSCAN "connectable"
#define DEV_PROPERTY_ISCAN "discoverable"
#define DEV_PROPERTY_NAME "name"
#define DEV_PROPERTY_INCMODE "incmode"
#define DEV_PROPERTY_DEV_INFO "info"
#define DEV_UP_SIGNATURE __END_SIG__
#define DEV_DOWN_SIGNATURE __END_SIG__
#define DEV_RESET_SIGNATURE __END_SIG__
#define DEV_SET_PROPERTY_SIGNATURE_BOOL DBUS_TYPE_STRING_AS_STRING \
DBUS_TYPE_BOOLEAN_AS_STRING \
__END_SIG__
#define DEV_SET_PROPERTY_SIGNATURE_STR DBUS_TYPE_STRING_AS_STRING \
DBUS_TYPE_STRING_AS_STRING \
__END_SIG__
#define DEV_SET_PROPERTY_SIGNATURE_BYTE DBUS_TYPE_STRING_AS_STRING \
DBUS_TYPE_BYTE_AS_STRING \
__END_SIG__
#define DEV_GET_PROPERTY_SIGNATURE DBUS_TYPE_STRING_AS_STRING \
__END_SIG__
#define HCI_PERIODIC_INQ_SIGNATURE DBUS_TYPE_BYTE_AS_STRING \
DBUS_TYPE_UINT16_AS_STRING \
DBUS_TYPE_UINT16_AS_STRING \
__END_SIG__
#define HCI_PERIODIC_INQ_EXT_SIGNATURE DBUS_TYPE_BYTE_AS_STRING \
DBUS_TYPE_UINT16_AS_STRING \
DBUS_TYPE_UINT16_AS_STRING \
DBUS_TYPE_UINT32_AS_STRING \
__END_SIG__
#define HCI_CANCEL_PERIODIC_INQ_SIGNATURE __END_SIG__
#define HCI_INQ_SIGNATURE __END_SIG__
#define HCI_INQ_EXT_SIGNATURE DBUS_TYPE_BYTE_AS_STRING \
DBUS_TYPE_UINT32_AS_STRING \
__END_SIG__
#define HCI_CANCEL_INQ_SIGNATURE __END_SIG__
#define HCI_ROLE_SWITCH_SIGNATURE DBUS_TYPE_STRING_AS_STRING \
DBUS_TYPE_BYTE_AS_STRING \
__END_SIG__
#define HCI_REMOTE_NAME_SIGNATURE DBUS_TYPE_STRING_AS_STRING \
__END_SIG__
#define HCI_CONNECTIONS_SIGNATURE __END_SIG__
#define HCI_CONN_INFO_STRUCT_SIGNATURE DBUS_STRUCT_BEGIN_CHAR_AS_STRING \
DBUS_TYPE_UINT16_AS_STRING \
DBUS_TYPE_STRING_AS_STRING \
DBUS_TYPE_BYTE_AS_STRING \
DBUS_TYPE_BYTE_AS_STRING \
DBUS_TYPE_UINT16_AS_STRING \
DBUS_TYPE_UINT32_AS_STRING \
DBUS_STRUCT_END_CHAR_AS_STRING \
__END_SIG__
#define HCI_DEVICE_STRUCT_SIGNATURE DBUS_STRUCT_BEGIN_CHAR_AS_STRING \
DBUS_TYPE_STRING_AS_STRING \
DBUS_TYPE_STRING_AS_STRING \
DBUS_STRUCT_END_CHAR_AS_STRING \
__END_SIG__
#define HCI_INQ_REPLY_SIGNATURE DBUS_STRUCT_BEGIN_CHAR_AS_STRING \
DBUS_TYPE_STRING_AS_STRING \
DBUS_TYPE_UINT32_AS_STRING \
DBUS_TYPE_UINT16_AS_STRING \
DBUS_STRUCT_END_CHAR_AS_STRING \
__END_SIG__
#define HCI_AUTHENTICATE_SIGNATURE DBUS_TYPE_STRING_AS_STRING \
__END_SIG__
/* BLUEZ_DBUS_ERROR
* EFailed error messages signature is : su
* Where the first argument is a string(error message description),
* the last is a uint32 that contains the error class(system, dbus or hci). */
/* Error code offsets */
#define BLUEZ_EBT_OFFSET (0x00000000) /* see Bluetooth error code */
#define BLUEZ_EBT_EXT_OFFSET (0x00000100)
#define BLUEZ_EDBUS_OFFSET (0x00010000)
#define BLUEZ_ESYSTEM_OFFSET (0x00020000)
#define BLUEZ_EFUTURE_OFFSET (0x00040000)
/* D-Bus error code, class BLUEZ_EDBUS_OFFSET */
#define BLUEZ_EDBUS_UNKNOWN_METHOD (0x01 + BLUEZ_EDBUS_OFFSET)
#define BLUEZ_EDBUS_WRONG_SIGNATURE (0x02 + BLUEZ_EDBUS_OFFSET)
#define BLUEZ_EDBUS_WRONG_PARAM (0x03 + BLUEZ_EDBUS_OFFSET)
#define BLUEZ_EDBUS_RECORD_NOT_FOUND (0x04 + BLUEZ_EDBUS_OFFSET)
#define BLUEZ_EDBUS_NO_MEM (0x05 + BLUEZ_EDBUS_OFFSET)
#define BLUEZ_EDBUS_CONN_NOT_FOUND (0x06 + BLUEZ_EDBUS_OFFSET)
#define BLUEZ_EDBUS_UNKNOWN_PATH (0x07 + BLUEZ_EDBUS_OFFSET)
/* D-Bus error code, class BLUEZ_ESYSTEM_OFFSET */
#define BLUEZ_ESYSTEM_ENODEV (ENODEV + BLUEZ_ESYSTEM_OFFSET)
/* BLUEZ_DBUS_ERR_NO_MEMORY */
#define BLUEZ_DBUS_ERR_NO_MEMORY_STR "No memory"