1 /* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
2  * Use of this source code is governed by a BSD-style license that can be
3  * found in the LICENSE file.
4  */
5 
6 #ifndef CRAS_BT_CONSTANTS_H_
7 #define CRAS_BT_CONSTANTS_H_
8 
9 #define BLUEZ_SERVICE "org.bluez"
10 
11 #define BLUEZ_INTERFACE_ADAPTER "org.bluez.Adapter1"
12 #define BLUEZ_INTERFACE_BATTERY_PROVIDER "org.bluez.BatteryProvider1"
13 #define BLUEZ_INTERFACE_BATTERY_PROVIDER_MANAGER                               \
14 	"org.bluez.BatteryProviderManager1"
15 #define BLUEZ_INTERFACE_DEVICE "org.bluez.Device1"
16 #define BLUEZ_INTERFACE_MEDIA "org.bluez.Media1"
17 #define BLUEZ_INTERFACE_MEDIA_ENDPOINT "org.bluez.MediaEndpoint1"
18 #define BLUEZ_INTERFACE_MEDIA_PLAYER "org.mpris.MediaPlayer2.Player"
19 #define BLUEZ_INTERFACE_MEDIA_TRANSPORT "org.bluez.MediaTransport1"
20 #define BLUEZ_INTERFACE_PLAYER "org.bluez.MediaPlayer1"
21 #define BLUEZ_INTERFACE_PROFILE "org.bluez.Profile1"
22 #define BLUEZ_PROFILE_MGMT_INTERFACE "org.bluez.ProfileManager1"
23 /* Remove once our D-Bus header files are updated to define this. */
24 #ifndef DBUS_INTERFACE_OBJECT_MANAGER
25 #define DBUS_INTERFACE_OBJECT_MANAGER "org.freedesktop.DBus.ObjectManager"
26 #endif
27 #define DBUS_SIGNAL_INTERFACES_ADDED "InterfacesAdded"
28 #define DBUS_SIGNAL_INTERFACES_REMOVED "InterfacesRemoved"
29 #define DBUS_SIGNAL_PROPERTIES_CHANGED "PropertiesChanged"
30 
31 /* UUIDs taken from lib/uuid.h in the BlueZ source */
32 #define HSP_HS_UUID "00001108-0000-1000-8000-00805f9b34fb"
33 #define HSP_AG_UUID "00001112-0000-1000-8000-00805f9b34fb"
34 
35 #define HFP_HF_UUID "0000111e-0000-1000-8000-00805f9b34fb"
36 #define HFP_AG_UUID "0000111f-0000-1000-8000-00805f9b34fb"
37 
38 #define A2DP_SOURCE_UUID "0000110a-0000-1000-8000-00805f9b34fb"
39 #define A2DP_SINK_UUID "0000110b-0000-1000-8000-00805f9b34fb"
40 
41 #define AVRCP_REMOTE_UUID "0000110e-0000-1000-8000-00805f9b34fb"
42 #define AVRCP_TARGET_UUID "0000110c-0000-1000-8000-00805f9b34fb"
43 
44 #define GENERIC_AUDIO_UUID "00001203-0000-1000-8000-00805f9b34fb"
45 
46 /* Constants for CRAS BT player */
47 #define CRAS_DEFAULT_PLAYER "/org/chromium/Cras/Bluetooth/DefaultPlayer"
48 /* The longest possible player playback status is "forward-seek" */
49 #define CRAS_PLAYER_PLAYBACK_STATUS_SIZE_MAX 13 * sizeof(char)
50 #define CRAS_PLAYER_PLAYBACK_STATUS_DEFAULT "playing"
51 /* Neither BlueZ or the MRPIS specs limited the player identity max size, 128
52  * should be large enough for most.
53  */
54 #define CRAS_PLAYER_IDENTITY_SIZE_MAX 128 * sizeof(char)
55 #define CRAS_PLAYER_IDENTITY_DEFAULT "DefaultPlayer"
56 #define CRAS_PLAYER_METADATA_SIZE_MAX 128 * sizeof(char)
57 
58 #define CRAS_DEFAULT_BATTERY_PROVIDER                                          \
59 	"/org/chromium/Cras/Bluetooth/BatteryProvider"
60 #define CRAS_DEFAULT_BATTERY_PREFIX "/org/bluez/hci0/dev_"
61 
62 /* Instead of letting CRAS obtain the A2DP streaming packet size (a.k.a. AVDTP
63  * MTU) from BlueZ Media Transport, force the packet size to the default L2CAP
64  * packet size. This prevent the audio peripheral device to negotiate a larger
65  * packet size and later failed to fulfill it and causing audio artifact. This
66  * defined constant is for experiment only and is put back behind a
67  * chrome://flag.
68  */
69 #define A2DP_FIX_PACKET_SIZE 672
70 
71 #endif /* CRAS_BT_CONSTANTS_H_ */
72