| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * Javascript for AdapterBroker, served from | 6 * Javascript for AdapterBroker, served from |
| 7 * chrome://bluetooth-internals/. | 7 * chrome://bluetooth-internals/. |
| 8 */ | 8 */ |
| 9 cr.define('adapter_broker', function() { | 9 cr.define('adapter_broker', function() { |
| 10 /** @typedef {interfaces.BluetoothAdapter.Adapter.ptrClass} */ | 10 /** @typedef {interfaces.BluetoothAdapter.Adapter.ptrClass} */ |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 getInfo: function() { | 82 getInfo: function() { |
| 83 return this.adapter_.getInfo(); | 83 return this.adapter_.getInfo(); |
| 84 }, | 84 }, |
| 85 | 85 |
| 86 /** | 86 /** |
| 87 * Sets client of Adapter service. | 87 * Sets client of Adapter service. |
| 88 * @param {!interfaces.BluetoothAdapter.AdapterClient} adapterClient | 88 * @param {!interfaces.BluetoothAdapter.AdapterClient} adapterClient |
| 89 */ | 89 */ |
| 90 setClient: function(adapterClient) { | 90 setClient: function(adapterClient) { |
| 91 adapterClient.binding = new interfaces.Bindings.Binding( | 91 adapterClient.binding = new interfaces.Bindings.Binding( |
| 92 interfaces.BluetoothAdapter.AdapterClient, | 92 interfaces.BluetoothAdapter.AdapterClient, adapterClient); |
| 93 adapterClient); | |
| 94 | 93 |
| 95 this.adapter_.setClient( | 94 this.adapter_.setClient( |
| 96 adapterClient.binding.createInterfacePtrAndBind()); | 95 adapterClient.binding.createInterfacePtrAndBind()); |
| 97 }, | 96 }, |
| 98 | 97 |
| 99 /** | 98 /** |
| 100 * Requests the adapter to start a new discovery session. | 99 * Requests the adapter to start a new discovery session. |
| 101 * @return {!Promise<!DiscoverySessionPtr>} | 100 * @return {!Promise<!DiscoverySessionPtr>} |
| 102 */ | 101 */ |
| 103 startDiscoverySession: function() { | 102 startDiscoverySession: function() { |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 } | 177 } |
| 179 }); | 178 }); |
| 180 this.adapterBroker_.dispatchEvent(event); | 179 this.adapterBroker_.dispatchEvent(event); |
| 181 }, | 180 }, |
| 182 | 181 |
| 183 /** | 182 /** |
| 184 * Fires deviceadded event. | 183 * Fires deviceadded event. |
| 185 * @param {!interfaces.BluetoothDevice.DeviceInfo} deviceInfo | 184 * @param {!interfaces.BluetoothDevice.DeviceInfo} deviceInfo |
| 186 */ | 185 */ |
| 187 deviceAdded: function(deviceInfo) { | 186 deviceAdded: function(deviceInfo) { |
| 188 var event = new CustomEvent('deviceadded', { | 187 var event = |
| 189 detail: { | 188 new CustomEvent('deviceadded', {detail: {deviceInfo: deviceInfo}}); |
| 190 deviceInfo: deviceInfo | |
| 191 } | |
| 192 }); | |
| 193 this.adapterBroker_.dispatchEvent(event); | 189 this.adapterBroker_.dispatchEvent(event); |
| 194 }, | 190 }, |
| 195 | 191 |
| 196 /** | 192 /** |
| 197 * Fires devicechanged event. | 193 * Fires devicechanged event. |
| 198 * @param {!interfaces.BluetoothDevice.DeviceInfo} deviceInfo | 194 * @param {!interfaces.BluetoothDevice.DeviceInfo} deviceInfo |
| 199 */ | 195 */ |
| 200 deviceChanged: function(deviceInfo) { | 196 deviceChanged: function(deviceInfo) { |
| 201 var event = new CustomEvent('devicechanged', { | 197 var event = |
| 202 detail: { | 198 new CustomEvent('devicechanged', {detail: {deviceInfo: deviceInfo}}); |
| 203 deviceInfo: deviceInfo | |
| 204 } | |
| 205 }); | |
| 206 this.adapterBroker_.dispatchEvent(event); | 199 this.adapterBroker_.dispatchEvent(event); |
| 207 }, | 200 }, |
| 208 | 201 |
| 209 /** | 202 /** |
| 210 * Fires deviceremoved event. | 203 * Fires deviceremoved event. |
| 211 * @param {!interfaces.BluetoothDevice.DeviceInfo} deviceInfo | 204 * @param {!interfaces.BluetoothDevice.DeviceInfo} deviceInfo |
| 212 */ | 205 */ |
| 213 deviceRemoved: function(deviceInfo) { | 206 deviceRemoved: function(deviceInfo) { |
| 214 var event = new CustomEvent('deviceremoved', { | 207 var event = |
| 215 detail: { | 208 new CustomEvent('deviceremoved', {detail: {deviceInfo: deviceInfo}}); |
| 216 deviceInfo: deviceInfo | |
| 217 } | |
| 218 }); | |
| 219 this.adapterBroker_.dispatchEvent(event); | 209 this.adapterBroker_.dispatchEvent(event); |
| 220 }, | 210 }, |
| 221 }; | 211 }; |
| 222 | 212 |
| 223 var adapterBroker = null; | 213 var adapterBroker = null; |
| 224 | 214 |
| 225 /** | 215 /** |
| 226 * Initializes an AdapterBroker if one doesn't exist. | 216 * Initializes an AdapterBroker if one doesn't exist. |
| 227 * @return {!Promise<!AdapterBroker>} resolves with AdapterBroker, | 217 * @return {!Promise<!AdapterBroker>} resolves with AdapterBroker, |
| 228 * rejects if Bluetooth is not supported. | 218 * rejects if Bluetooth is not supported. |
| 229 */ | 219 */ |
| 230 function getAdapterBroker() { | 220 function getAdapterBroker() { |
| 231 if (adapterBroker) return Promise.resolve(adapterBroker); | 221 if (adapterBroker) |
| 222 return Promise.resolve(adapterBroker); |
| 232 | 223 |
| 233 return interfaces.setupInterfaces().then(function(adapter) { | 224 return interfaces.setupInterfaces() |
| 234 var adapterFactory = new interfaces.BluetoothAdapter.AdapterFactoryPtr( | 225 .then(function(adapter) { |
| 235 interfaces.FrameInterfaces.getInterface( | 226 var adapterFactory = |
| 236 interfaces.BluetoothAdapter.AdapterFactory.name)); | 227 new interfaces.BluetoothAdapter.AdapterFactoryPtr( |
| 228 interfaces.FrameInterfaces.getInterface( |
| 229 interfaces.BluetoothAdapter.AdapterFactory.name)); |
| 237 | 230 |
| 238 // Get an Adapter service. | 231 // Get an Adapter service. |
| 239 return adapterFactory.getAdapter(); | 232 return adapterFactory.getAdapter(); |
| 240 }).then(function(response) { | 233 }) |
| 241 if (!response.adapter.ptr.isBound()) { | 234 .then(function(response) { |
| 242 throw new Error('Bluetooth Not Supported on this platform.'); | 235 if (!response.adapter.ptr.isBound()) { |
| 243 } | 236 throw new Error('Bluetooth Not Supported on this platform.'); |
| 237 } |
| 244 | 238 |
| 245 adapterBroker = new AdapterBroker(response.adapter); | 239 adapterBroker = new AdapterBroker(response.adapter); |
| 246 return adapterBroker; | 240 return adapterBroker; |
| 247 }); | 241 }); |
| 248 } | 242 } |
| 249 | 243 |
| 250 return { | 244 return { |
| 251 AdapterProperty: AdapterProperty, | 245 AdapterProperty: AdapterProperty, |
| 252 getAdapterBroker: getAdapterBroker, | 246 getAdapterBroker: getAdapterBroker, |
| 253 }; | 247 }; |
| 254 }); | 248 }); |
| OLD | NEW |