diff -r 000000000000 -r 6474c204b198 dom/bluetooth/BluetoothUuid.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/bluetooth/BluetoothUuid.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,84 @@ +/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef mozilla_dom_bluetooth_bluetoothuuid_h__ +#define mozilla_dom_bluetooth_bluetoothuuid_h__ + +#include "BluetoothCommon.h" + +BEGIN_BLUETOOTH_NAMESPACE + +class BluetoothProfileManagerBase; + +/* + * Service classes and Profile Identifiers + * + * Supported Bluetooth services for v1 are listed as below. + * + * The value of each service class is defined in "AssignedNumbers/Service + * Discovery Protocol (SDP)/Service classes and Profile Identifiers" in the + * Bluetooth Core Specification. + */ +enum BluetoothServiceClass +{ + A2DP = 0x110D, + HANDSFREE = 0x111E, + HANDSFREE_AG = 0x111F, + HEADSET = 0x1108, + HEADSET_AG = 0x1112, + HID = 0x1124, + OBJECT_PUSH = 0x1105, + UNKNOWN = 0x0000 +}; + +class BluetoothUuidHelper +{ +public: + /** + * Get a 128-bit uuid string calculated from a 16-bit service class UUID and + * BASE_UUID + * + * @param aServiceClassUuid 16-bit service class UUID + * @param aRetUuidStr out parameter, 128-bit uuid string + */ + static void + GetString(BluetoothServiceClass aServiceClassUuid, nsAString& aRetUuidStr); + + /** + * Convert a 128-bit uuid string to a value of BluetoothServiceClass + * + * @param aUuidStr 128-bit uuid string + * @return a value of BluetoothServiceClass + */ + static BluetoothServiceClass + GetBluetoothServiceClass(const nsAString& aUuidStr); + + static BluetoothServiceClass + GetBluetoothServiceClass(uint16_t aServiceUuid); + + static BluetoothProfileManagerBase* + GetBluetoothProfileManager(uint16_t aServiceUuid); +}; + +// TODO/qdot: Move these back into gonk and make the service handler deal with +// it there. +// +// Gotten from reading the "u8" values in B2G/external/bluez/src/adapter.c +// These were hardcoded into android +enum BluetoothReservedChannels { + CHANNEL_DIALUP_NETWORK = 1, + CHANNEL_HANDSFREE_AG = 10, + CHANNEL_HEADSET_AG = 11, + CHANNEL_OPUSH = 12, + CHANNEL_SIM_ACCESS = 15, + CHANNEL_PBAP_PSE = 19, + CHANNEL_FTP = 20, + CHANNEL_OPUSH_L2CAP = 5255 +}; + +END_BLUETOOTH_NAMESPACE + +#endif