| Index: chrome/browser/resources/bluetooth_internals/adapter_broker.js
|
| diff --git a/chrome/browser/resources/bluetooth_internals/adapter_broker.js b/chrome/browser/resources/bluetooth_internals/adapter_broker.js
|
| index 13a8eee88c2dda0526287ea5c59a44f8453138a7..16f8a731231ee6a0df37050486283fc2babb6c88 100644
|
| --- a/chrome/browser/resources/bluetooth_internals/adapter_broker.js
|
| +++ b/chrome/browser/resources/bluetooth_internals/adapter_broker.js
|
| @@ -7,6 +7,21 @@
|
| * chrome://bluetooth-internals/.
|
| */
|
| cr.define('adapter_broker', function() {
|
| + /** @typedef {interfaces.BluetoothAdapter.Adapter.ptrClass} */
|
| + var AdapterPtr;
|
| + /** @typedef {interfaces.BluetoothDevice.Device.ptrClass} */
|
| + var DevicePtr;
|
| + /** @typedef {interfaces.BluetoothAdapter.DiscoverySession.ptrClass} */
|
| + var DiscoverySessionPtr;
|
| +
|
| + /**
|
| + * Enum of adapter property names. Used for adapterchanged events.
|
| + * @enum {string}
|
| + */
|
| + var AdapterProperty = {
|
| + DISCOVERING: 'discovering',
|
| + };
|
| +
|
| /**
|
| * The proxy class of an adapter and router of adapter events.
|
| * Exposes an EventTarget interface that allows other object to subscribe to
|
| @@ -15,7 +30,7 @@ cr.define('adapter_broker', function() {
|
| * handles and back when necessary.
|
| * @constructor
|
| * @extends {cr.EventTarget}
|
| - * @param {!interfaces.BluetoothAdapter.AdapterPtr} adapter
|
| + * @param {!AdapterPtr} adapter
|
| */
|
| var AdapterBroker = function(adapter) {
|
| this.adapter_ = adapter;
|
| @@ -29,7 +44,7 @@ cr.define('adapter_broker', function() {
|
| /**
|
| * Creates a GATT connection to the device with |address|.
|
| * @param {string} address
|
| - * @return {!Promise<!interfaces.BluetoothDevice.DevicePtr>}
|
| + * @return {!Promise<!DevicePtr>}
|
| */
|
| connectToDevice: function(address) {
|
| return this.adapter_.connectToDevice(address).then(function(response) {
|
| @@ -50,6 +65,22 @@ cr.define('adapter_broker', function() {
|
| },
|
|
|
| /**
|
| + * Gets an array of currently detectable devices from the Adapter service.
|
| + * @return {!Array<!interfaces.BluetoothDevice.DeviceInfo>}
|
| + */
|
| + getDevices: function() {
|
| + return this.adapter_.getDevices();
|
| + },
|
| +
|
| + /**
|
| + * Gets the current state of the Adapter.
|
| + * @return {!interfaces.BluetoothAdapter.AdapterInfo}
|
| + */
|
| + getInfo: function() {
|
| + return this.adapter_.getInfo();
|
| + },
|
| +
|
| + /**
|
| * Sets client of Adapter service.
|
| * @param {!interfaces.BluetoothAdapter.AdapterClient} adapterClient
|
| */
|
| @@ -63,20 +94,18 @@ cr.define('adapter_broker', function() {
|
| },
|
|
|
| /**
|
| - * Gets an array of currently detectable devices from the Adapter service.
|
| - * @return {!Array<!interfaces.BluetoothDevice.DeviceInfo>}
|
| + * Requests the adapter to start a new discovery session.
|
| + * @return {!Promise<!DiscoverySessionPtr>}
|
| */
|
| - getDevices: function() {
|
| - return this.adapter_.getDevices();
|
| - },
|
| + startDiscoverySession: function() {
|
| + return this.adapter_.startDiscoverySession().then(function(response) {
|
| + if (!response.session.ptr.isBound()) {
|
| + throw new Error('Discovery session failed to start');
|
| + }
|
|
|
| - /**
|
| - * Gets the current state of the Adapter.
|
| - * @return {!interfaces.BluetoothAdapter.AdapterInfo}
|
| - */
|
| - getInfo: function() {
|
| - return this.adapter_.getInfo();
|
| - }
|
| + return response.session;
|
| + });
|
| + },
|
| };
|
|
|
| /**
|
| @@ -93,6 +122,20 @@ cr.define('adapter_broker', function() {
|
|
|
| AdapterClient.prototype = {
|
| /**
|
| + * Fires adapterchanged event.
|
| + * @param {boolean} discovering
|
| + */
|
| + discoveringChanged: function(discovering) {
|
| + var event = new CustomEvent('adapterchanged', {
|
| + detail: {
|
| + property: AdapterProperty.DISCOVERING,
|
| + value: discovering,
|
| + }
|
| + });
|
| + this.adapterBroker_.dispatchEvent(event);
|
| + },
|
| +
|
| + /**
|
| * Fires deviceadded event.
|
| * @param {!interfaces.BluetoothDevice.DeviceInfo} deviceInfo
|
| */
|
| @@ -106,11 +149,11 @@ cr.define('adapter_broker', function() {
|
| },
|
|
|
| /**
|
| - * Fires deviceremoved event.
|
| + * Fires devicechanged event.
|
| * @param {!interfaces.BluetoothDevice.DeviceInfo} deviceInfo
|
| */
|
| - deviceRemoved: function(deviceInfo) {
|
| - var event = new CustomEvent('deviceremoved', {
|
| + deviceChanged: function(deviceInfo) {
|
| + var event = new CustomEvent('devicechanged', {
|
| detail: {
|
| deviceInfo: deviceInfo
|
| }
|
| @@ -119,17 +162,17 @@ cr.define('adapter_broker', function() {
|
| },
|
|
|
| /**
|
| - * Fires devicechanged event.
|
| + * Fires deviceremoved event.
|
| * @param {!interfaces.BluetoothDevice.DeviceInfo} deviceInfo
|
| */
|
| - deviceChanged: function(deviceInfo) {
|
| - var event = new CustomEvent('devicechanged', {
|
| + deviceRemoved: function(deviceInfo) {
|
| + var event = new CustomEvent('deviceremoved', {
|
| detail: {
|
| deviceInfo: deviceInfo
|
| }
|
| });
|
| this.adapterBroker_.dispatchEvent(event);
|
| - }
|
| + },
|
| };
|
|
|
| var adapterBroker = null;
|
| @@ -160,6 +203,7 @@ cr.define('adapter_broker', function() {
|
| }
|
|
|
| return {
|
| + AdapterProperty: AdapterProperty,
|
| getAdapterBroker: getAdapterBroker,
|
| };
|
| });
|
|
|