Chromium Code Reviews| Index: extensions/common/api/bluetooth_low_energy.idl |
| diff --git a/extensions/common/api/bluetooth_low_energy.idl b/extensions/common/api/bluetooth_low_energy.idl |
| index 517a81347820a93e62f2a8a7ac18fcb3c0e289ee..bf6aec743966baac93f5bf5aab6f1a6b761d528d 100644 |
| --- a/extensions/common/api/bluetooth_low_energy.idl |
| +++ b/extensions/common/api/bluetooth_low_energy.idl |
| @@ -13,6 +13,11 @@ namespace bluetoothLowEnergy { |
| extendedProperties, reliableWrite, |
| writableAuxiliaries}; |
| + // Type of advertisement. If 'broadcast' is chosen, the sent advertisement |
| + // type will be ADV_NONCONN_IND. If set to 'peripheral', the advertisement |
| + // type will be ADV_IND or ADV_SCAN_IND. |
| + enum AdvertisementType {broadcast, peripheral}; |
| + |
| // Represents a peripheral's Bluetooth GATT Service, a collection of |
| // characteristics and relationships to other services that encapsulate |
| // the behavior of part of a device. |
| @@ -114,6 +119,42 @@ namespace bluetoothLowEnergy { |
| boolean persistent; |
| }; |
| + // Represents an entry of the "Manufacturer Specific Data" field of Bluetooth LE |
| + // advertisement data. |
| + dictionary ManufacturerData { |
| + long id; |
| + long[] data; |
| + }; |
| + |
| + // Represents an entry of the "Service Data" field of Bluetooth LE advertisement |
| + // data. |
| + dictionary ServiceData { |
| + DOMString uuid; |
| + long[] data; |
| + }; |
| + |
| + // Represents a Bluetooth LE advertisement instance. |
| + dictionary Advertisement { |
| + // Type of advertisement. |
| + AdvertisementType type; |
| + |
| + // List of UUIDs to include in the "Service UUIDs" field of the Advertising |
| + // Data. These UUIDs can be of the 16bit, 32bit or 128 formats. |
| + DOMString[]? serviceUuids; |
| + |
| + // List of manufacturer specific data to be included in "Manufacturer Specific |
| + // Data" fields of the advertising data. |
| + ManufacturerData[]? manufacturerData; |
| + |
| + // List of UUIDs to include in the "Solicit UUIDs" field of the Advertising |
| + // Data. These UUIDs can be of the 16bit, 32bit or 128 formats. |
| + DOMString[]? solicitUuids; |
| + |
| + // List of service data to be included in "Service Data" fields of the advertising |
| + // data. |
| + ServiceData[]? serviceData; |
| + }; |
| + |
| callback CharacteristicCallback = void(Characteristic result); |
| callback CharacteristicsCallback = void(Characteristic[] result); |
| callback DescriptorCallback = void(Descriptor result); |
| @@ -121,6 +162,7 @@ namespace bluetoothLowEnergy { |
| callback ResultCallback = void(); |
| callback ServiceCallback = void(Service result); |
| callback ServicesCallback = void(Service[] result); |
| + callback RegisterAdvertisementCallback = void (long advertisementId); |
| // These functions all report failures via chrome.runtime.lastError. |
| interface Functions { |
| @@ -262,6 +304,28 @@ namespace bluetoothLowEnergy { |
| static void writeDescriptorValue(DOMString descriptorId, |
| ArrayBuffer value, |
| ResultCallback callback); |
| + |
| + |
| + // Create an advertisement and register it for advertising. To call this |
| + // function, the app must have the bluetooth:low_energy and |
| + // bluetooth:peripheral permissions set to true. |
| + // Note: On some hardware central and peripheral modes at the same time is |
|
armansito
2015/04/21 22:48:09
There might be a way to format the "Note" section
rkc
2015/04/27 18:39:09
I copied this from other IDLs that have "Note:" se
|
| + // supported but on hardware that it isn't, making this call will switch |
|
armansito
2015/04/21 22:48:09
nit: "but on hardware that doesn't support this"
rkc
2015/04/27 18:39:09
Done.
|
| + // the device to peripheral mode. In the case of hardware which does not |
| + // support both central and peripheral mode, attempting to use the device |
| + // in both modes will lead to undefined behavior. |
|
armansito
2015/04/21 22:48:09
Let's not say undefined behavior, or at least elab
rkc
2015/04/27 18:39:09
Done.
|
| + // |advertisement| : The advertisement to advertise. |
| + // |callback| : Called once the registeration is done and we've started |
| + // advertising. Returns the id of the created advertisement. |
| + static void registerAdvertisement(Advertisement advertisement, |
| + RegisterAdvertisementCallback callback); |
| + |
| + // Unregisters an advertisement and stops its advertising. |
| + // |advertisementId| : Id of the advertisement to unregister. |
| + // |callback| : Called once the advertisement is unregistered and is no |
| + // longer being advertised. |
| + static void unregisterAdvertisement(long advertisementId, |
| + ResultCallback callback); |
| }; |
| interface Events { |