Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(452)

Side by Side Diff: components/arc/bluetooth/arc_bluetooth_bridge.cc

Issue 1885683005: Add module suffix in .mojom files for components/arc (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase only Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include "components/arc/bluetooth/arc_bluetooth_bridge.h" 5 #include "components/arc/bluetooth/arc_bluetooth_bridge.h"
6 6
7 #include <fcntl.h> 7 #include <fcntl.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <iomanip> 10 #include <iomanip>
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 bluetooth_adapter_->RemoveObserver(this); 55 bluetooth_adapter_->RemoveObserver(this);
56 } 56 }
57 57
58 void ArcBluetoothBridge::OnAdapterInitialized( 58 void ArcBluetoothBridge::OnAdapterInitialized(
59 scoped_refptr<BluetoothAdapter> adapter) { 59 scoped_refptr<BluetoothAdapter> adapter) {
60 bluetooth_adapter_ = adapter; 60 bluetooth_adapter_ = adapter;
61 bluetooth_adapter_->AddObserver(this); 61 bluetooth_adapter_->AddObserver(this);
62 } 62 }
63 63
64 void ArcBluetoothBridge::OnBluetoothInstanceReady() { 64 void ArcBluetoothBridge::OnBluetoothInstanceReady() {
65 BluetoothInstance* bluetooth_instance = 65 mojom::BluetoothInstance* bluetooth_instance =
66 arc_bridge_service()->bluetooth_instance(); 66 arc_bridge_service()->bluetooth_instance();
67 if (!bluetooth_instance) { 67 if (!bluetooth_instance) {
68 LOG(ERROR) << "OnBluetoothInstanceReady called, " 68 LOG(ERROR) << "OnBluetoothInstanceReady called, "
69 << "but no bluetooth instance found"; 69 << "but no bluetooth instance found";
70 return; 70 return;
71 } 71 }
72 72
73 arc_bridge_service()->bluetooth_instance()->Init( 73 arc_bridge_service()->bluetooth_instance()->Init(
74 binding_.CreateInterfacePtrAndBind()); 74 binding_.CreateInterfacePtrAndBind());
75 } 75 }
(...skipping 17 matching lines...) Expand all
93 } 93 }
94 94
95 void ArcBluetoothBridge::DeviceAdded(BluetoothAdapter* adapter, 95 void ArcBluetoothBridge::DeviceAdded(BluetoothAdapter* adapter,
96 BluetoothDevice* device) { 96 BluetoothDevice* device) {
97 if (!HasBluetoothInstance()) 97 if (!HasBluetoothInstance())
98 return; 98 return;
99 99
100 if (device->IsConnected()) 100 if (device->IsConnected())
101 return; 101 return;
102 102
103 mojo::Array<BluetoothPropertyPtr> properties = 103 mojo::Array<mojom::BluetoothPropertyPtr> properties =
104 GetDeviceProperties(BluetoothPropertyType::ALL, device); 104 GetDeviceProperties(mojom::BluetoothPropertyType::ALL, device);
105 105
106 arc_bridge_service()->bluetooth_instance()->OnDeviceFound( 106 arc_bridge_service()->bluetooth_instance()->OnDeviceFound(
107 std::move(properties)); 107 std::move(properties));
108 } 108 }
109 109
110 void ArcBluetoothBridge::DeviceChanged(BluetoothAdapter* adapter, 110 void ArcBluetoothBridge::DeviceChanged(BluetoothAdapter* adapter,
111 BluetoothDevice* device) { 111 BluetoothDevice* device) {
112 // TODO(smbarber): device properties changed; inform the container. 112 // TODO(smbarber): device properties changed; inform the container.
113 } 113 }
114 114
115 void ArcBluetoothBridge::DeviceAddressChanged(BluetoothAdapter* adapter, 115 void ArcBluetoothBridge::DeviceAddressChanged(BluetoothAdapter* adapter,
116 BluetoothDevice* device, 116 BluetoothDevice* device,
117 const std::string& old_address) { 117 const std::string& old_address) {
118 // Must be implemented for LE Privacy/GATT client. 118 // Must be implemented for LE Privacy/GATT client.
119 } 119 }
120 120
121 void ArcBluetoothBridge::DevicePairedChanged(BluetoothAdapter* adapter, 121 void ArcBluetoothBridge::DevicePairedChanged(BluetoothAdapter* adapter,
122 BluetoothDevice* device, 122 BluetoothDevice* device,
123 bool new_paired_status) { 123 bool new_paired_status) {
124 DCHECK(adapter); 124 DCHECK(adapter);
125 DCHECK(device); 125 DCHECK(device);
126 126
127 BluetoothAddressPtr addr = BluetoothAddress::From(device->GetAddress()); 127 mojom::BluetoothAddressPtr addr =
128 mojom::BluetoothAddress::From(device->GetAddress());
128 129
129 if (new_paired_status) { 130 if (new_paired_status) {
130 // OnBondStateChanged must be called with BluetoothBondState::BONDING to 131 // OnBondStateChanged must be called with BluetoothBondState::BONDING to
131 // make sure the bond state machine on Android is ready to take the 132 // make sure the bond state machine on Android is ready to take the
132 // pair-done event. Otherwise the pair-done event will be dropped as an 133 // pair-done event. Otherwise the pair-done event will be dropped as an
133 // invalid change of paired status. 134 // invalid change of paired status.
134 OnPairing(addr->Clone()); 135 OnPairing(addr->Clone());
135 OnPairedDone(std::move(addr)); 136 OnPairedDone(std::move(addr));
136 } else { 137 } else {
137 OnForgetDone(std::move(addr)); 138 OnForgetDone(std::move(addr));
138 } 139 }
139 } 140 }
140 141
141 void ArcBluetoothBridge::DeviceRemoved(BluetoothAdapter* adapter, 142 void ArcBluetoothBridge::DeviceRemoved(BluetoothAdapter* adapter,
142 BluetoothDevice* device) { 143 BluetoothDevice* device) {
143 DCHECK(adapter); 144 DCHECK(adapter);
144 DCHECK(device); 145 DCHECK(device);
145 146
146 BluetoothAddressPtr addr = BluetoothAddress::From(device->GetAddress()); 147 mojom::BluetoothAddressPtr addr =
148 mojom::BluetoothAddress::From(device->GetAddress());
147 OnForgetDone(std::move(addr)); 149 OnForgetDone(std::move(addr));
148 } 150 }
149 151
150 void ArcBluetoothBridge::GattServiceAdded(BluetoothAdapter* adapter, 152 void ArcBluetoothBridge::GattServiceAdded(BluetoothAdapter* adapter,
151 BluetoothDevice* device, 153 BluetoothDevice* device,
152 BluetoothGattService* service) { 154 BluetoothGattService* service) {
153 // Placeholder for GATT client functionality 155 // Placeholder for GATT client functionality
154 } 156 }
155 157
156 void ArcBluetoothBridge::GattServiceRemoved(BluetoothAdapter* adapter, 158 void ArcBluetoothBridge::GattServiceRemoved(BluetoothAdapter* adapter,
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 void ArcBluetoothBridge::DisableAdapter( 232 void ArcBluetoothBridge::DisableAdapter(
231 const DisableAdapterCallback& callback) { 233 const DisableAdapterCallback& callback) {
232 DCHECK(bluetooth_adapter_); 234 DCHECK(bluetooth_adapter_);
233 bluetooth_adapter_->SetPowered( 235 bluetooth_adapter_->SetPowered(
234 false, base::Bind(&ArcBluetoothBridge::OnPoweredOff, 236 false, base::Bind(&ArcBluetoothBridge::OnPoweredOff,
235 weak_factory_.GetWeakPtr(), callback), 237 weak_factory_.GetWeakPtr(), callback),
236 base::Bind(&ArcBluetoothBridge::OnPoweredError, 238 base::Bind(&ArcBluetoothBridge::OnPoweredError,
237 weak_factory_.GetWeakPtr(), callback)); 239 weak_factory_.GetWeakPtr(), callback));
238 } 240 }
239 241
240 void ArcBluetoothBridge::GetAdapterProperty(BluetoothPropertyType type) { 242 void ArcBluetoothBridge::GetAdapterProperty(mojom::BluetoothPropertyType type) {
241 DCHECK(bluetooth_adapter_); 243 DCHECK(bluetooth_adapter_);
242 if (!HasBluetoothInstance()) 244 if (!HasBluetoothInstance())
243 return; 245 return;
244 246
245 mojo::Array<BluetoothPropertyPtr> properties = GetAdapterProperties(type); 247 mojo::Array<mojom::BluetoothPropertyPtr> properties =
248 GetAdapterProperties(type);
246 249
247 arc_bridge_service()->bluetooth_instance()->OnAdapterProperties( 250 arc_bridge_service()->bluetooth_instance()->OnAdapterProperties(
248 BluetoothStatus::SUCCESS, std::move(properties)); 251 mojom::BluetoothStatus::SUCCESS, std::move(properties));
249 } 252 }
250 253
251 void ArcBluetoothBridge::SetAdapterProperty(BluetoothPropertyPtr property) { 254 void ArcBluetoothBridge::SetAdapterProperty(
255 mojom::BluetoothPropertyPtr property) {
252 DCHECK(bluetooth_adapter_); 256 DCHECK(bluetooth_adapter_);
253 if (!HasBluetoothInstance()) 257 if (!HasBluetoothInstance())
254 return; 258 return;
255 259
256 // TODO(smbarber): Implement SetAdapterProperty 260 // TODO(smbarber): Implement SetAdapterProperty
257 arc_bridge_service()->bluetooth_instance()->OnAdapterProperties( 261 arc_bridge_service()->bluetooth_instance()->OnAdapterProperties(
258 BluetoothStatus::FAIL, mojo::Array<BluetoothPropertyPtr>::New(0)); 262 mojom::BluetoothStatus::FAIL,
263 mojo::Array<mojom::BluetoothPropertyPtr>::New(0));
259 } 264 }
260 265
261 void ArcBluetoothBridge::GetRemoteDeviceProperty( 266 void ArcBluetoothBridge::GetRemoteDeviceProperty(
262 BluetoothAddressPtr remote_addr, 267 mojom::BluetoothAddressPtr remote_addr,
263 BluetoothPropertyType type) { 268 mojom::BluetoothPropertyType type) {
264 DCHECK(bluetooth_adapter_); 269 DCHECK(bluetooth_adapter_);
265 if (!HasBluetoothInstance()) 270 if (!HasBluetoothInstance())
266 return; 271 return;
267 272
268 std::string addr_str = remote_addr->To<std::string>(); 273 std::string addr_str = remote_addr->To<std::string>();
269 BluetoothDevice* device = bluetooth_adapter_->GetDevice(addr_str); 274 BluetoothDevice* device = bluetooth_adapter_->GetDevice(addr_str);
270 275
271 mojo::Array<BluetoothPropertyPtr> properties = 276 mojo::Array<mojom::BluetoothPropertyPtr> properties =
272 GetDeviceProperties(type, device); 277 GetDeviceProperties(type, device);
273 BluetoothStatus status = BluetoothStatus::SUCCESS; 278 mojom::BluetoothStatus status = mojom::BluetoothStatus::SUCCESS;
274 279
275 if (!device) { 280 if (!device) {
276 VLOG(1) << __func__ << ": device " << addr_str << " not available"; 281 VLOG(1) << __func__ << ": device " << addr_str << " not available";
277 status = BluetoothStatus::FAIL; 282 status = mojom::BluetoothStatus::FAIL;
278 } 283 }
279 284
280 arc_bridge_service()->bluetooth_instance()->OnRemoteDeviceProperties( 285 arc_bridge_service()->bluetooth_instance()->OnRemoteDeviceProperties(
281 status, std::move(remote_addr), std::move(properties)); 286 status, std::move(remote_addr), std::move(properties));
282 } 287 }
283 288
284 void ArcBluetoothBridge::SetRemoteDeviceProperty( 289 void ArcBluetoothBridge::SetRemoteDeviceProperty(
285 BluetoothAddressPtr remote_addr, 290 mojom::BluetoothAddressPtr remote_addr,
286 BluetoothPropertyPtr property) { 291 mojom::BluetoothPropertyPtr property) {
287 DCHECK(bluetooth_adapter_); 292 DCHECK(bluetooth_adapter_);
288 if (!HasBluetoothInstance()) 293 if (!HasBluetoothInstance())
289 return; 294 return;
290 295
291 // TODO(smbarber): Implement SetRemoteDeviceProperty 296 // TODO(smbarber): Implement SetRemoteDeviceProperty
292 arc_bridge_service()->bluetooth_instance()->OnRemoteDeviceProperties( 297 arc_bridge_service()->bluetooth_instance()->OnRemoteDeviceProperties(
293 BluetoothStatus::FAIL, std::move(remote_addr), 298 mojom::BluetoothStatus::FAIL, std::move(remote_addr),
294 mojo::Array<BluetoothPropertyPtr>::New(0)); 299 mojo::Array<mojom::BluetoothPropertyPtr>::New(0));
295 } 300 }
296 301
297 void ArcBluetoothBridge::GetRemoteServiceRecord(BluetoothAddressPtr remote_addr, 302 void ArcBluetoothBridge::GetRemoteServiceRecord(
298 BluetoothUUIDPtr uuid) { 303 mojom::BluetoothAddressPtr remote_addr,
304 mojom::BluetoothUUIDPtr uuid) {
299 // TODO(smbarber): Implement GetRemoteServiceRecord 305 // TODO(smbarber): Implement GetRemoteServiceRecord
300 } 306 }
301 307
302 void ArcBluetoothBridge::GetRemoteServices(BluetoothAddressPtr remote_addr) { 308 void ArcBluetoothBridge::GetRemoteServices(
309 mojom::BluetoothAddressPtr remote_addr) {
303 // TODO(smbarber): Implement GetRemoteServices 310 // TODO(smbarber): Implement GetRemoteServices
304 } 311 }
305 312
306 void ArcBluetoothBridge::StartDiscovery() { 313 void ArcBluetoothBridge::StartDiscovery() {
307 DCHECK(bluetooth_adapter_); 314 DCHECK(bluetooth_adapter_);
308 // TODO(smbarber): Add timeout 315 // TODO(smbarber): Add timeout
309 if (discovery_session_) { 316 if (discovery_session_) {
310 LOG(ERROR) << "Discovery session already running; leaving alone"; 317 LOG(ERROR) << "Discovery session already running; leaving alone";
311 SendCachedDevicesFound(); 318 SendCachedDevicesFound();
312 return; 319 return;
(...skipping 11 matching lines...) Expand all
324 return; 331 return;
325 } 332 }
326 333
327 discovery_session_->Stop(base::Bind(&ArcBluetoothBridge::OnDiscoveryStopped, 334 discovery_session_->Stop(base::Bind(&ArcBluetoothBridge::OnDiscoveryStopped,
328 weak_factory_.GetWeakPtr()), 335 weak_factory_.GetWeakPtr()),
329 base::Bind(&ArcBluetoothBridge::OnDiscoveryError, 336 base::Bind(&ArcBluetoothBridge::OnDiscoveryError,
330 weak_factory_.GetWeakPtr())); 337 weak_factory_.GetWeakPtr()));
331 } 338 }
332 339
333 void ArcBluetoothBridge::OnPoweredOn( 340 void ArcBluetoothBridge::OnPoweredOn(
334 const mojo::Callback<void(BluetoothAdapterState)>& callback) const { 341 const mojo::Callback<void(mojom::BluetoothAdapterState)>& callback) const {
335 callback.Run(BluetoothAdapterState::ON); 342 callback.Run(mojom::BluetoothAdapterState::ON);
336 SendCachedPairedDevices(); 343 SendCachedPairedDevices();
337 } 344 }
338 345
339 void ArcBluetoothBridge::OnPoweredOff( 346 void ArcBluetoothBridge::OnPoweredOff(
340 const mojo::Callback<void(BluetoothAdapterState)>& callback) const { 347 const mojo::Callback<void(mojom::BluetoothAdapterState)>& callback) const {
341 callback.Run(BluetoothAdapterState::OFF); 348 callback.Run(mojom::BluetoothAdapterState::OFF);
342 } 349 }
343 350
344 void ArcBluetoothBridge::OnPoweredError( 351 void ArcBluetoothBridge::OnPoweredError(
345 const mojo::Callback<void(BluetoothAdapterState)>& callback) const { 352 const mojo::Callback<void(mojom::BluetoothAdapterState)>& callback) const {
346 LOG(WARNING) << "failed to change power state"; 353 LOG(WARNING) << "failed to change power state";
347 354
348 callback.Run(bluetooth_adapter_->IsPowered() ? BluetoothAdapterState::ON 355 callback.Run(bluetooth_adapter_->IsPowered()
349 : BluetoothAdapterState::OFF); 356 ? mojom::BluetoothAdapterState::ON
357 : mojom::BluetoothAdapterState::OFF);
350 } 358 }
351 359
352 void ArcBluetoothBridge::OnDiscoveryStarted( 360 void ArcBluetoothBridge::OnDiscoveryStarted(
353 scoped_ptr<BluetoothDiscoverySession> session) { 361 scoped_ptr<BluetoothDiscoverySession> session) {
354 if (!HasBluetoothInstance()) 362 if (!HasBluetoothInstance())
355 return; 363 return;
356 364
357 discovery_session_ = std::move(session); 365 discovery_session_ = std::move(session);
358 366
359 arc_bridge_service()->bluetooth_instance()->OnDiscoveryStateChanged( 367 arc_bridge_service()->bluetooth_instance()->OnDiscoveryStateChanged(
360 BluetoothDiscoveryState::STARTED); 368 mojom::BluetoothDiscoveryState::STARTED);
361 369
362 SendCachedDevicesFound(); 370 SendCachedDevicesFound();
363 } 371 }
364 372
365 void ArcBluetoothBridge::OnDiscoveryStopped() { 373 void ArcBluetoothBridge::OnDiscoveryStopped() {
366 if (!HasBluetoothInstance()) 374 if (!HasBluetoothInstance())
367 return; 375 return;
368 376
369 discovery_session_.reset(); 377 discovery_session_.reset();
370 378
371 arc_bridge_service()->bluetooth_instance()->OnDiscoveryStateChanged( 379 arc_bridge_service()->bluetooth_instance()->OnDiscoveryStateChanged(
372 BluetoothDiscoveryState::STOPPED); 380 mojom::BluetoothDiscoveryState::STOPPED);
373 } 381 }
374 382
375 void ArcBluetoothBridge::CreateBond(BluetoothAddressPtr addr, 383 void ArcBluetoothBridge::CreateBond(mojom::BluetoothAddressPtr addr,
376 int32_t transport) { 384 int32_t transport) {
377 std::string addr_str = addr->To<std::string>(); 385 std::string addr_str = addr->To<std::string>();
378 BluetoothDevice* device = bluetooth_adapter_->GetDevice(addr_str); 386 BluetoothDevice* device = bluetooth_adapter_->GetDevice(addr_str);
379 if (!device || !device->IsPairable()) { 387 if (!device || !device->IsPairable()) {
380 VLOG(1) << __func__ << ": device " << addr_str 388 VLOG(1) << __func__ << ": device " << addr_str
381 << " is no longer valid or pairable"; 389 << " is no longer valid or pairable";
382 OnPairedError(std::move(addr), BluetoothDevice::ERROR_FAILED); 390 OnPairedError(std::move(addr), BluetoothDevice::ERROR_FAILED);
383 return; 391 return;
384 } 392 }
385 393
(...skipping 12 matching lines...) Expand all
398 return; 406 return;
399 } 407 }
400 408
401 // If pairing finished successfully, DevicePairedChanged will notify Android 409 // If pairing finished successfully, DevicePairedChanged will notify Android
402 // on paired state change event, so DoNothing is passed as a success callback. 410 // on paired state change event, so DoNothing is passed as a success callback.
403 device->Pair(delegate, base::Bind(&base::DoNothing), 411 device->Pair(delegate, base::Bind(&base::DoNothing),
404 base::Bind(&ArcBluetoothBridge::OnPairedError, 412 base::Bind(&ArcBluetoothBridge::OnPairedError,
405 weak_factory_.GetWeakPtr(), base::Passed(&addr))); 413 weak_factory_.GetWeakPtr(), base::Passed(&addr)));
406 } 414 }
407 415
408 void ArcBluetoothBridge::RemoveBond(BluetoothAddressPtr addr) { 416 void ArcBluetoothBridge::RemoveBond(mojom::BluetoothAddressPtr addr) {
409 // Forget the device if it is no longer valid or not even paired. 417 // Forget the device if it is no longer valid or not even paired.
410 BluetoothDevice* device = 418 BluetoothDevice* device =
411 bluetooth_adapter_->GetDevice(addr->To<std::string>()); 419 bluetooth_adapter_->GetDevice(addr->To<std::string>());
412 if (!device || !device->IsPaired()) { 420 if (!device || !device->IsPaired()) {
413 OnForgetDone(std::move(addr)); 421 OnForgetDone(std::move(addr));
414 return; 422 return;
415 } 423 }
416 424
417 // If unpairing finished successfully, DevicePairedChanged will notify Android 425 // If unpairing finished successfully, DevicePairedChanged will notify Android
418 // on paired state change event, so DoNothing is passed as a success callback. 426 // on paired state change event, so DoNothing is passed as a success callback.
419 device->Forget(base::Bind(&base::DoNothing), 427 device->Forget(base::Bind(&base::DoNothing),
420 base::Bind(&ArcBluetoothBridge::OnForgetError, 428 base::Bind(&ArcBluetoothBridge::OnForgetError,
421 weak_factory_.GetWeakPtr(), base::Passed(&addr))); 429 weak_factory_.GetWeakPtr(), base::Passed(&addr)));
422 } 430 }
423 431
424 void ArcBluetoothBridge::CancelBond(BluetoothAddressPtr addr) { 432 void ArcBluetoothBridge::CancelBond(mojom::BluetoothAddressPtr addr) {
425 BluetoothDevice* device = 433 BluetoothDevice* device =
426 bluetooth_adapter_->GetDevice(addr->To<std::string>()); 434 bluetooth_adapter_->GetDevice(addr->To<std::string>());
427 if (!device) { 435 if (!device) {
428 OnForgetDone(std::move(addr)); 436 OnForgetDone(std::move(addr));
429 return; 437 return;
430 } 438 }
431 439
432 device->CancelPairing(); 440 device->CancelPairing();
433 OnForgetDone(std::move(addr)); 441 OnForgetDone(std::move(addr));
434 } 442 }
435 443
436 void ArcBluetoothBridge::GetConnectionState( 444 void ArcBluetoothBridge::GetConnectionState(
437 BluetoothAddressPtr addr, 445 mojom::BluetoothAddressPtr addr,
438 const GetConnectionStateCallback& callback) { 446 const GetConnectionStateCallback& callback) {
439 if (!bluetooth_adapter_) { 447 if (!bluetooth_adapter_) {
440 callback.Run(false); 448 callback.Run(false);
441 return; 449 return;
442 } 450 }
443 451
444 BluetoothDevice* device = 452 BluetoothDevice* device =
445 bluetooth_adapter_->GetDevice(addr->To<std::string>()); 453 bluetooth_adapter_->GetDevice(addr->To<std::string>());
446 if (!device) { 454 if (!device) {
447 callback.Run(false); 455 callback.Run(false);
448 return; 456 return;
449 } 457 }
450 458
451 callback.Run(device->IsConnected()); 459 callback.Run(device->IsConnected());
452 } 460 }
453 461
454 void ArcBluetoothBridge::OnDiscoveryError() { 462 void ArcBluetoothBridge::OnDiscoveryError() {
455 LOG(WARNING) << "failed to change discovery state"; 463 LOG(WARNING) << "failed to change discovery state";
456 } 464 }
457 465
458 void ArcBluetoothBridge::OnPairing(BluetoothAddressPtr addr) const { 466 void ArcBluetoothBridge::OnPairing(mojom::BluetoothAddressPtr addr) const {
459 if (!HasBluetoothInstance()) 467 if (!HasBluetoothInstance())
460 return; 468 return;
461 469
462 arc_bridge_service()->bluetooth_instance()->OnBondStateChanged( 470 arc_bridge_service()->bluetooth_instance()->OnBondStateChanged(
463 BluetoothStatus::SUCCESS, std::move(addr), BluetoothBondState::BONDING); 471 mojom::BluetoothStatus::SUCCESS, std::move(addr),
472 mojom::BluetoothBondState::BONDING);
464 } 473 }
465 474
466 void ArcBluetoothBridge::OnPairedDone(BluetoothAddressPtr addr) const { 475 void ArcBluetoothBridge::OnPairedDone(mojom::BluetoothAddressPtr addr) const {
467 if (!HasBluetoothInstance()) 476 if (!HasBluetoothInstance())
468 return; 477 return;
469 478
470 arc_bridge_service()->bluetooth_instance()->OnBondStateChanged( 479 arc_bridge_service()->bluetooth_instance()->OnBondStateChanged(
471 BluetoothStatus::SUCCESS, std::move(addr), BluetoothBondState::BONDED); 480 mojom::BluetoothStatus::SUCCESS, std::move(addr),
481 mojom::BluetoothBondState::BONDED);
472 } 482 }
473 483
474 void ArcBluetoothBridge::OnPairedError( 484 void ArcBluetoothBridge::OnPairedError(
475 BluetoothAddressPtr addr, 485 mojom::BluetoothAddressPtr addr,
476 BluetoothDevice::ConnectErrorCode error_code) const { 486 BluetoothDevice::ConnectErrorCode error_code) const {
477 if (!HasBluetoothInstance()) 487 if (!HasBluetoothInstance())
478 return; 488 return;
479 489
480 arc_bridge_service()->bluetooth_instance()->OnBondStateChanged( 490 arc_bridge_service()->bluetooth_instance()->OnBondStateChanged(
481 BluetoothStatus::FAIL, std::move(addr), BluetoothBondState::NONE); 491 mojom::BluetoothStatus::FAIL, std::move(addr),
492 mojom::BluetoothBondState::NONE);
482 } 493 }
483 494
484 void ArcBluetoothBridge::OnForgetDone(BluetoothAddressPtr addr) const { 495 void ArcBluetoothBridge::OnForgetDone(mojom::BluetoothAddressPtr addr) const {
485 if (!HasBluetoothInstance()) 496 if (!HasBluetoothInstance())
486 return; 497 return;
487 498
488 arc_bridge_service()->bluetooth_instance()->OnBondStateChanged( 499 arc_bridge_service()->bluetooth_instance()->OnBondStateChanged(
489 BluetoothStatus::SUCCESS, std::move(addr), BluetoothBondState::NONE); 500 mojom::BluetoothStatus::SUCCESS, std::move(addr),
501 mojom::BluetoothBondState::NONE);
490 } 502 }
491 503
492 void ArcBluetoothBridge::OnForgetError(BluetoothAddressPtr addr) const { 504 void ArcBluetoothBridge::OnForgetError(mojom::BluetoothAddressPtr addr) const {
493 if (!HasBluetoothInstance()) 505 if (!HasBluetoothInstance())
494 return; 506 return;
495 507
496 BluetoothDevice* device = 508 BluetoothDevice* device =
497 bluetooth_adapter_->GetDevice(addr->To<std::string>()); 509 bluetooth_adapter_->GetDevice(addr->To<std::string>());
498 BluetoothBondState bond_state = BluetoothBondState::NONE; 510 mojom::BluetoothBondState bond_state = mojom::BluetoothBondState::NONE;
499 if (device && device->IsPaired()) { 511 if (device && device->IsPaired()) {
500 bond_state = BluetoothBondState::BONDED; 512 bond_state = mojom::BluetoothBondState::BONDED;
501 } 513 }
502 arc_bridge_service()->bluetooth_instance()->OnBondStateChanged( 514 arc_bridge_service()->bluetooth_instance()->OnBondStateChanged(
503 BluetoothStatus::FAIL, std::move(addr), bond_state); 515 mojom::BluetoothStatus::FAIL, std::move(addr), bond_state);
504 } 516 }
505 517
506 mojo::Array<BluetoothPropertyPtr> ArcBluetoothBridge::GetDeviceProperties( 518 mojo::Array<mojom::BluetoothPropertyPtr>
507 BluetoothPropertyType type, 519 ArcBluetoothBridge::GetDeviceProperties(mojom::BluetoothPropertyType type,
508 BluetoothDevice* device) const { 520 BluetoothDevice* device) const {
509 mojo::Array<BluetoothPropertyPtr> properties; 521 mojo::Array<mojom::BluetoothPropertyPtr> properties;
510 522
511 if (!device) { 523 if (!device) {
512 return properties; 524 return properties;
513 } 525 }
514 526
515 if (type == BluetoothPropertyType::ALL || 527 if (type == mojom::BluetoothPropertyType::ALL ||
516 type == BluetoothPropertyType::BDNAME) { 528 type == mojom::BluetoothPropertyType::BDNAME) {
517 BluetoothPropertyPtr btp = BluetoothProperty::New(); 529 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
518 btp->set_bdname(mojo::String::From(base::UTF16ToUTF8(device->GetName()))); 530 btp->set_bdname(mojo::String::From(base::UTF16ToUTF8(device->GetName())));
519 properties.push_back(std::move(btp)); 531 properties.push_back(std::move(btp));
520 } 532 }
521 if (type == BluetoothPropertyType::ALL || 533 if (type == mojom::BluetoothPropertyType::ALL ||
522 type == BluetoothPropertyType::BDADDR) { 534 type == mojom::BluetoothPropertyType::BDADDR) {
523 BluetoothPropertyPtr btp = BluetoothProperty::New(); 535 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
524 btp->set_bdaddr(BluetoothAddress::From(device->GetAddress())); 536 btp->set_bdaddr(mojom::BluetoothAddress::From(device->GetAddress()));
525 properties.push_back(std::move(btp)); 537 properties.push_back(std::move(btp));
526 } 538 }
527 if (type == BluetoothPropertyType::ALL || 539 if (type == mojom::BluetoothPropertyType::ALL ||
528 type == BluetoothPropertyType::UUIDS) { 540 type == mojom::BluetoothPropertyType::UUIDS) {
529 BluetoothPropertyPtr btp = BluetoothProperty::New(); 541 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
530 std::vector<device::BluetoothUUID> uuids = device->GetUUIDs(); 542 std::vector<device::BluetoothUUID> uuids = device->GetUUIDs();
531 mojo::Array<BluetoothUUIDPtr> uuid_results = 543 mojo::Array<mojom::BluetoothUUIDPtr> uuid_results =
532 mojo::Array<BluetoothUUIDPtr>::New(0); 544 mojo::Array<mojom::BluetoothUUIDPtr>::New(0);
533 545
534 for (size_t i = 0; i < uuids.size(); i++) { 546 for (size_t i = 0; i < uuids.size(); i++) {
535 uuid_results.push_back(BluetoothUUID::From(uuids[i])); 547 uuid_results.push_back(mojom::BluetoothUUID::From(uuids[i]));
536 } 548 }
537 549
538 btp->set_uuids(std::move(uuid_results)); 550 btp->set_uuids(std::move(uuid_results));
539 properties.push_back(std::move(btp)); 551 properties.push_back(std::move(btp));
540 } 552 }
541 if (type == BluetoothPropertyType::ALL || 553 if (type == mojom::BluetoothPropertyType::ALL ||
542 type == BluetoothPropertyType::CLASS_OF_DEVICE) { 554 type == mojom::BluetoothPropertyType::CLASS_OF_DEVICE) {
543 BluetoothPropertyPtr btp = BluetoothProperty::New(); 555 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
544 btp->set_device_class(device->GetBluetoothClass()); 556 btp->set_device_class(device->GetBluetoothClass());
545 properties.push_back(std::move(btp)); 557 properties.push_back(std::move(btp));
546 } 558 }
547 if (type == BluetoothPropertyType::ALL || 559 if (type == mojom::BluetoothPropertyType::ALL ||
548 type == BluetoothPropertyType::TYPE_OF_DEVICE) { 560 type == mojom::BluetoothPropertyType::TYPE_OF_DEVICE) {
549 // TODO(smbarber): This needs to be populated with the actual device type 561 // TODO(smbarber): This needs to be populated with the actual device type
550 BluetoothPropertyPtr btp = BluetoothProperty::New(); 562 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
551 btp->set_device_type(BluetoothDeviceType::DUAL); 563 btp->set_device_type(mojom::BluetoothDeviceType::DUAL);
552 properties.push_back(std::move(btp)); 564 properties.push_back(std::move(btp));
553 } 565 }
554 if (type == BluetoothPropertyType::ALL || 566 if (type == mojom::BluetoothPropertyType::ALL ||
555 type == BluetoothPropertyType::REMOTE_FRIENDLY_NAME) { 567 type == mojom::BluetoothPropertyType::REMOTE_FRIENDLY_NAME) {
556 BluetoothPropertyPtr btp = BluetoothProperty::New(); 568 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
557 btp->set_bdname(mojo::String::From(base::UTF16ToUTF8(device->GetName()))); 569 btp->set_bdname(mojo::String::From(base::UTF16ToUTF8(device->GetName())));
558 properties.push_back(std::move(btp)); 570 properties.push_back(std::move(btp));
559 } 571 }
560 if (type == BluetoothPropertyType::ALL || 572 if (type == mojom::BluetoothPropertyType::ALL ||
561 type == BluetoothPropertyType::REMOTE_RSSI) { 573 type == mojom::BluetoothPropertyType::REMOTE_RSSI) {
562 BluetoothPropertyPtr btp = BluetoothProperty::New(); 574 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
563 btp->set_remote_rssi(device->GetInquiryRSSI()); 575 btp->set_remote_rssi(device->GetInquiryRSSI());
564 properties.push_back(std::move(btp)); 576 properties.push_back(std::move(btp));
565 } 577 }
566 // TODO(smbarber): Add remote version info 578 // TODO(smbarber): Add remote version info
567 579
568 return properties; 580 return properties;
569 } 581 }
570 582
571 mojo::Array<BluetoothPropertyPtr> ArcBluetoothBridge::GetAdapterProperties( 583 mojo::Array<mojom::BluetoothPropertyPtr>
572 BluetoothPropertyType type) const { 584 ArcBluetoothBridge::GetAdapterProperties(
573 mojo::Array<BluetoothPropertyPtr> properties; 585 mojom::BluetoothPropertyType type) const {
586 mojo::Array<mojom::BluetoothPropertyPtr> properties;
574 587
575 if (type == BluetoothPropertyType::ALL || 588 if (type == mojom::BluetoothPropertyType::ALL ||
576 type == BluetoothPropertyType::BDNAME) { 589 type == mojom::BluetoothPropertyType::BDNAME) {
577 BluetoothPropertyPtr btp = BluetoothProperty::New(); 590 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
578 std::string name = bluetooth_adapter_->GetName(); 591 std::string name = bluetooth_adapter_->GetName();
579 btp->set_bdname(mojo::String(name)); 592 btp->set_bdname(mojo::String(name));
580 properties.push_back(std::move(btp)); 593 properties.push_back(std::move(btp));
581 } 594 }
582 if (type == BluetoothPropertyType::ALL || 595 if (type == mojom::BluetoothPropertyType::ALL ||
583 type == BluetoothPropertyType::BDADDR) { 596 type == mojom::BluetoothPropertyType::BDADDR) {
584 BluetoothPropertyPtr btp = BluetoothProperty::New(); 597 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
585 btp->set_bdaddr(BluetoothAddress::From(bluetooth_adapter_->GetAddress())); 598 btp->set_bdaddr(
599 mojom::BluetoothAddress::From(bluetooth_adapter_->GetAddress()));
586 properties.push_back(std::move(btp)); 600 properties.push_back(std::move(btp));
587 } 601 }
588 if (type == BluetoothPropertyType::ALL || 602 if (type == mojom::BluetoothPropertyType::ALL ||
589 type == BluetoothPropertyType::UUIDS) { 603 type == mojom::BluetoothPropertyType::UUIDS) {
590 // TODO(smbarber): Fill in once GetUUIDs is available for the adapter. 604 // TODO(smbarber): Fill in once GetUUIDs is available for the adapter.
591 } 605 }
592 if (type == BluetoothPropertyType::ALL || 606 if (type == mojom::BluetoothPropertyType::ALL ||
593 type == BluetoothPropertyType::CLASS_OF_DEVICE) { 607 type == mojom::BluetoothPropertyType::CLASS_OF_DEVICE) {
594 // TODO(smbarber): Populate with the actual adapter class 608 // TODO(smbarber): Populate with the actual adapter class
595 BluetoothPropertyPtr btp = BluetoothProperty::New(); 609 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
596 btp->set_device_class(0); 610 btp->set_device_class(0);
597 properties.push_back(std::move(btp)); 611 properties.push_back(std::move(btp));
598 } 612 }
599 if (type == BluetoothPropertyType::ALL || 613 if (type == mojom::BluetoothPropertyType::ALL ||
600 type == BluetoothPropertyType::TYPE_OF_DEVICE) { 614 type == mojom::BluetoothPropertyType::TYPE_OF_DEVICE) {
601 // TODO(smbarber): Populate with the actual device type 615 // TODO(smbarber): Populate with the actual device type
602 BluetoothPropertyPtr btp = BluetoothProperty::New(); 616 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
603 btp->set_device_type(BluetoothDeviceType::DUAL); 617 btp->set_device_type(mojom::BluetoothDeviceType::DUAL);
604 properties.push_back(std::move(btp)); 618 properties.push_back(std::move(btp));
605 } 619 }
606 if (type == BluetoothPropertyType::ALL || 620 if (type == mojom::BluetoothPropertyType::ALL ||
607 type == BluetoothPropertyType::ADAPTER_SCAN_MODE) { 621 type == mojom::BluetoothPropertyType::ADAPTER_SCAN_MODE) {
608 BluetoothPropertyPtr btp = BluetoothProperty::New(); 622 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
609 BluetoothScanMode scan_mode = BluetoothScanMode::CONNECTABLE; 623 mojom::BluetoothScanMode scan_mode = mojom::BluetoothScanMode::CONNECTABLE;
610 624
611 if (bluetooth_adapter_->IsDiscoverable()) 625 if (bluetooth_adapter_->IsDiscoverable())
612 scan_mode = BluetoothScanMode::CONNECTABLE_DISCOVERABLE; 626 scan_mode = mojom::BluetoothScanMode::CONNECTABLE_DISCOVERABLE;
613 627
614 btp->set_adapter_scan_mode(scan_mode); 628 btp->set_adapter_scan_mode(scan_mode);
615 properties.push_back(std::move(btp)); 629 properties.push_back(std::move(btp));
616 } 630 }
617 if (type == BluetoothPropertyType::ALL || 631 if (type == mojom::BluetoothPropertyType::ALL ||
618 type == BluetoothPropertyType::ADAPTER_BONDED_DEVICES) { 632 type == mojom::BluetoothPropertyType::ADAPTER_BONDED_DEVICES) {
619 BluetoothPropertyPtr btp = BluetoothProperty::New(); 633 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
620 BluetoothAdapter::DeviceList devices = bluetooth_adapter_->GetDevices(); 634 BluetoothAdapter::DeviceList devices = bluetooth_adapter_->GetDevices();
621 635
622 mojo::Array<BluetoothAddressPtr> bonded_devices = 636 mojo::Array<mojom::BluetoothAddressPtr> bonded_devices =
623 mojo::Array<BluetoothAddressPtr>::New(0); 637 mojo::Array<mojom::BluetoothAddressPtr>::New(0);
624 638
625 for (size_t i = 0; i < devices.size(); i++) { 639 for (size_t i = 0; i < devices.size(); i++) {
626 if (!devices[i]->IsPaired()) 640 if (!devices[i]->IsPaired())
627 continue; 641 continue;
628 642
629 BluetoothAddressPtr addr = 643 mojom::BluetoothAddressPtr addr =
630 BluetoothAddress::From(devices[i]->GetAddress()); 644 mojom::BluetoothAddress::From(devices[i]->GetAddress());
631 bonded_devices.push_back(std::move(addr)); 645 bonded_devices.push_back(std::move(addr));
632 } 646 }
633 647
634 btp->set_bonded_devices(std::move(bonded_devices)); 648 btp->set_bonded_devices(std::move(bonded_devices));
635 properties.push_back(std::move(btp)); 649 properties.push_back(std::move(btp));
636 } 650 }
637 if (type == BluetoothPropertyType::ALL || 651 if (type == mojom::BluetoothPropertyType::ALL ||
638 type == BluetoothPropertyType::ADAPTER_DISCOVERY_TIMEOUT) { 652 type == mojom::BluetoothPropertyType::ADAPTER_DISCOVERY_TIMEOUT) {
639 BluetoothPropertyPtr btp = BluetoothProperty::New(); 653 mojom::BluetoothPropertyPtr btp = mojom::BluetoothProperty::New();
640 btp->set_discovery_timeout(120); 654 btp->set_discovery_timeout(120);
641 properties.push_back(std::move(btp)); 655 properties.push_back(std::move(btp));
642 } 656 }
643 657
644 return properties; 658 return properties;
645 } 659 }
646 660
647 void ArcBluetoothBridge::SendCachedDevicesFound() const { 661 void ArcBluetoothBridge::SendCachedDevicesFound() const {
648 // Send devices that have already been discovered, but aren't connected. 662 // Send devices that have already been discovered, but aren't connected.
649 if (!HasBluetoothInstance()) 663 if (!HasBluetoothInstance())
650 return; 664 return;
651 665
652 BluetoothAdapter::DeviceList devices = bluetooth_adapter_->GetDevices(); 666 BluetoothAdapter::DeviceList devices = bluetooth_adapter_->GetDevices();
653 for (size_t i = 0; i < devices.size(); i++) { 667 for (size_t i = 0; i < devices.size(); i++) {
654 if (devices[i]->IsPaired()) 668 if (devices[i]->IsPaired())
655 continue; 669 continue;
656 670
657 mojo::Array<BluetoothPropertyPtr> properties = 671 mojo::Array<mojom::BluetoothPropertyPtr> properties =
658 GetDeviceProperties(BluetoothPropertyType::ALL, devices[i]); 672 GetDeviceProperties(mojom::BluetoothPropertyType::ALL, devices[i]);
659 673
660 arc_bridge_service()->bluetooth_instance()->OnDeviceFound( 674 arc_bridge_service()->bluetooth_instance()->OnDeviceFound(
661 std::move(properties)); 675 std::move(properties));
662 } 676 }
663 } 677 }
664 678
665 bool ArcBluetoothBridge::HasBluetoothInstance() const { 679 bool ArcBluetoothBridge::HasBluetoothInstance() const {
666 if (!arc_bridge_service()->bluetooth_instance()) { 680 if (!arc_bridge_service()->bluetooth_instance()) {
667 LOG(WARNING) << "no Bluetooth instance available"; 681 LOG(WARNING) << "no Bluetooth instance available";
668 return false; 682 return false;
669 } 683 }
670 684
671 return true; 685 return true;
672 } 686 }
673 687
674 void ArcBluetoothBridge::SendCachedPairedDevices() const { 688 void ArcBluetoothBridge::SendCachedPairedDevices() const {
675 DCHECK(bluetooth_adapter_); 689 DCHECK(bluetooth_adapter_);
676 690
677 BluetoothAdapter::DeviceList devices = bluetooth_adapter_->GetDevices(); 691 BluetoothAdapter::DeviceList devices = bluetooth_adapter_->GetDevices();
678 for (BluetoothDevice* device : devices) { 692 for (BluetoothDevice* device : devices) {
679 if (!device->IsPaired()) 693 if (!device->IsPaired())
680 continue; 694 continue;
681 695
682 mojo::Array<BluetoothPropertyPtr> properties = 696 mojo::Array<mojom::BluetoothPropertyPtr> properties =
683 GetDeviceProperties(BluetoothPropertyType::ALL, device); 697 GetDeviceProperties(mojom::BluetoothPropertyType::ALL, device);
684 698
685 arc_bridge_service()->bluetooth_instance()->OnDeviceFound( 699 arc_bridge_service()->bluetooth_instance()->OnDeviceFound(
686 std::move(properties)); 700 std::move(properties));
687 701
688 BluetoothAddressPtr addr = BluetoothAddress::From(device->GetAddress()); 702 mojom::BluetoothAddressPtr addr =
703 mojom::BluetoothAddress::From(device->GetAddress());
689 704
690 // OnBondStateChanged must be called with BluetoothBondState::BONDING to 705 // OnBondStateChanged must be called with mojom::BluetoothBondState::BONDING
706 // to
691 // make sure the bond state machine on Android is ready to take the 707 // make sure the bond state machine on Android is ready to take the
692 // pair-done event. Otherwise the pair-done event will be dropped as an 708 // pair-done event. Otherwise the pair-done event will be dropped as an
693 // invalid change of paired status. 709 // invalid change of paired status.
694 OnPairing(addr->Clone()); 710 OnPairing(addr->Clone());
695 OnPairedDone(std::move(addr)); 711 OnPairedDone(std::move(addr));
696 } 712 }
697 } 713 }
698 714
699 } // namespace arc 715 } // namespace arc
OLDNEW
« no previous file with comments | « components/arc/bluetooth/arc_bluetooth_bridge.h ('k') | components/arc/bluetooth/bluetooth_type_converters.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698