Index: content/renderer/bluetooth/web_bluetooth_impl.h |
diff --git a/content/renderer/bluetooth/web_bluetooth_impl.h b/content/renderer/bluetooth/web_bluetooth_impl.h |
index 1351bce774a99f41527a08764c56fbeff5a61227..6e8bb19de6e56c0c5fe78b711e83bcaf007695d2 100644 |
--- a/content/renderer/bluetooth/web_bluetooth_impl.h |
+++ b/content/renderer/bluetooth/web_bluetooth_impl.h |
@@ -64,11 +64,13 @@ class CONTENT_EXPORT WebBluetoothImpl |
web_bluetooth.mojom */, |
const blink::WebString& characteristics_uuid, |
blink::WebBluetoothGetCharacteristicsCallbacks* callbacks) override; |
- void readValue(const blink::WebString& characteristic_instance_id, |
- blink::WebBluetoothReadValueCallbacks* callbacks) override; |
- void writeValue(const blink::WebString& characteristic_instance_id, |
- const blink::WebVector<uint8_t>& value, |
- blink::WebBluetoothWriteValueCallbacks*) override; |
+ void characteristicReadValue( |
+ const blink::WebString& characteristic_instance_id, |
+ blink::WebBluetoothReadValueCallbacks* callbacks) override; |
+ void characteristicWriteValue( |
+ const blink::WebString& characteristic_instance_id, |
+ const blink::WebVector<uint8_t>& value, |
+ blink::WebBluetoothWriteValueCallbacks*) override; |
void startNotifications( |
const blink::WebString& characteristic_instance_id, |
blink::WebBluetoothNotificationsCallbacks*) override; |
@@ -81,6 +83,24 @@ class CONTENT_EXPORT WebBluetoothImpl |
void registerCharacteristicObject( |
const blink::WebString& characteristic_instance_id, |
blink::WebBluetoothRemoteGATTCharacteristic* characteristic) override; |
+ void getDescriptors( |
+ const blink::WebString& characteristic_instance_id, |
+ int32_t quantity /* Corresponds to WebBluetoothGATTQueryQuantity in |
+ web_bluetooth.mojom */, |
+ const blink::WebString& descriptor_uuid, |
+ blink::WebBluetoothGetDescriptorsCallbacks* callbacks) override; |
+ void descriptorReadValue( |
+ const blink::WebString& descriptor_instance_id, |
+ blink::WebBluetoothReadValueCallbacks* callbacks) override; |
+ void descriptorWriteValue(const blink::WebString& descriptor_instance_id, |
+ const blink::WebVector<uint8_t>& value, |
+ blink::WebBluetoothWriteValueCallbacks*) override; |
+ void descriptorObjectRemoved( |
+ const blink::WebString& descriptor_instance_id, |
+ blink::WebBluetoothRemoteGATTDescriptor* descriptor) override; |
+ void registerDescriptorObject( |
ortuno
2016/11/21 03:34:08
Per comment in web_bluetooth.mojom, no need for th
|
+ const blink::WebString& descriptor_instance_id, |
+ blink::WebBluetoothRemoteGATTDescriptor* descriptor) override; |
private: |
struct GetCharacteristicsCallback; |
@@ -88,6 +108,8 @@ class CONTENT_EXPORT WebBluetoothImpl |
void RemoteCharacteristicValueChanged( |
const mojo::String& characteristic_instance_id, |
mojo::Array<uint8_t> value) override; |
+ void RemoteDescriptorValueChanged(const mojo::String& descriptor_instance_id, |
+ mojo::Array<uint8_t> value) override; |
void GattServerDisconnected(const WebBluetoothDeviceId& device_id) override; |
// Callbacks for WebBluetoothService calls: |
@@ -105,7 +127,7 @@ class CONTENT_EXPORT WebBluetoothImpl |
blink::mojom::WebBluetoothResult result, |
mojo::Array<blink::mojom::WebBluetoothRemoteGATTServicePtr> services); |
void OnGetCharacteristicsComplete( |
- const blink::WebString& service_instance_id, |
+ const blink::WebString& characteristic_instance_id, |
std::unique_ptr<blink::WebBluetoothGetCharacteristicsCallbacks> callbacks, |
blink::mojom::WebBluetoothResult result, |
mojo::Array<blink::mojom::WebBluetoothRemoteGATTCharacteristicPtr> |
@@ -123,10 +145,17 @@ class CONTENT_EXPORT WebBluetoothImpl |
blink::mojom::WebBluetoothResult result); |
void OnStopNotificationsComplete( |
std::unique_ptr<blink::WebBluetoothNotificationsCallbacks> callbacks); |
- |
+ void OnGetDescriptorsComplete( |
+ const blink::WebString& service_instance_id, |
+ std::unique_ptr<blink::WebBluetoothGetDescriptorsCallbacks> callbacks, |
+ blink::mojom::WebBluetoothResult result, |
+ mojo::Array<blink::mojom::WebBluetoothRemoteGATTDescriptorPtr> |
+ characteristics); |
void DispatchCharacteristicValueChanged( |
const std::string& characteristic_instance_id, |
const std::vector<uint8_t>& value); |
+ void DispatchDescriptorValueChanged(const std::string& descriptor_instance_id, |
+ const std::vector<uint8_t>& value); |
blink::mojom::WebBluetoothService& GetWebBluetoothService(); |
service_manager::InterfaceProvider* const remote_interfaces_; |
@@ -139,6 +168,13 @@ class CONTENT_EXPORT WebBluetoothImpl |
std::unordered_map<std::string, blink::WebBluetoothRemoteGATTCharacteristic*> |
active_characteristics_; |
+ // Map of descriptor_instance_ids to |
+ // WebBluetoothRemoteGATTDescriptors. When descriptorObjectRemoved is |
+ // called the descriptor should be removed from the map. |
+ // Keeps track of what descriptors have listeners. |
+ std::unordered_map<std::string, blink::WebBluetoothRemoteGATTDescriptor*> |
+ active_descriptors_; |
+ |
// Map of device_ids to WebBluetoothDevices. Added in connect() and removed in |
// disconnect(). This means a device may not actually be connected while in |
// this map, but that it will definitely be removed when the page navigates. |