OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "device/bluetooth/bluetooth_adapter_bluez.h" | 5 #include "device/bluetooth/bluetooth_adapter_bluez.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
11 #include "base/logging.h" | 11 #include "base/logging.h" |
12 #include "base/metrics/histogram.h" | 12 #include "base/metrics/histogram.h" |
13 #include "base/sequenced_task_runner.h" | 13 #include "base/sequenced_task_runner.h" |
14 #include "base/single_thread_task_runner.h" | 14 #include "base/single_thread_task_runner.h" |
15 #include "base/thread_task_runner_handle.h" | 15 #include "base/thread_task_runner_handle.h" |
| 16 #include "build/build_config.h" |
16 #include "device/bluetooth/bluetooth_adapter_profile_bluez.h" | 17 #include "device/bluetooth/bluetooth_adapter_profile_bluez.h" |
17 #include "device/bluetooth/bluetooth_advertisement_bluez.h" | 18 #include "device/bluetooth/bluetooth_advertisement_bluez.h" |
18 #include "device/bluetooth/bluetooth_audio_sink_bluez.h" | 19 #include "device/bluetooth/bluetooth_audio_sink_bluez.h" |
19 #include "device/bluetooth/bluetooth_device.h" | 20 #include "device/bluetooth/bluetooth_device.h" |
20 #include "device/bluetooth/bluetooth_device_bluez.h" | 21 #include "device/bluetooth/bluetooth_device_bluez.h" |
21 #include "device/bluetooth/bluetooth_discovery_session_outcome.h" | 22 #include "device/bluetooth/bluetooth_discovery_session_outcome.h" |
22 #include "device/bluetooth/bluetooth_pairing_bluez.h" | 23 #include "device/bluetooth/bluetooth_pairing_bluez.h" |
23 #include "device/bluetooth/bluetooth_remote_gatt_characteristic_bluez.h" | 24 #include "device/bluetooth/bluetooth_remote_gatt_characteristic_bluez.h" |
24 #include "device/bluetooth/bluetooth_remote_gatt_descriptor_bluez.h" | 25 #include "device/bluetooth/bluetooth_remote_gatt_descriptor_bluez.h" |
25 #include "device/bluetooth/bluetooth_remote_gatt_service_bluez.h" | 26 #include "device/bluetooth/bluetooth_remote_gatt_service_bluez.h" |
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
573 BluetoothPairingBlueZ* pairing = GetPairing(device_path); | 574 BluetoothPairingBlueZ* pairing = GetPairing(device_path); |
574 if (!pairing) { | 575 if (!pairing) { |
575 callback.Run(REJECTED, 0); | 576 callback.Run(REJECTED, 0); |
576 return; | 577 return; |
577 } | 578 } |
578 | 579 |
579 pairing->RequestPasskey(callback); | 580 pairing->RequestPasskey(callback); |
580 } | 581 } |
581 | 582 |
582 void BluetoothAdapterBlueZ::DisplayPasskey(const dbus::ObjectPath& device_path, | 583 void BluetoothAdapterBlueZ::DisplayPasskey(const dbus::ObjectPath& device_path, |
583 uint32 passkey, | 584 uint32_t passkey, |
584 uint16 entered) { | 585 uint16_t entered) { |
585 DCHECK(IsPresent()); | 586 DCHECK(IsPresent()); |
586 DCHECK(agent_.get()); | 587 DCHECK(agent_.get()); |
587 VLOG(1) << device_path.value() << ": DisplayPasskey: " << passkey << " (" | 588 VLOG(1) << device_path.value() << ": DisplayPasskey: " << passkey << " (" |
588 << entered << " entered)"; | 589 << entered << " entered)"; |
589 | 590 |
590 BluetoothPairingBlueZ* pairing = GetPairing(device_path); | 591 BluetoothPairingBlueZ* pairing = GetPairing(device_path); |
591 if (!pairing) | 592 if (!pairing) |
592 return; | 593 return; |
593 | 594 |
594 if (entered == 0) | 595 if (entered == 0) |
595 pairing->DisplayPasskey(passkey); | 596 pairing->DisplayPasskey(passkey); |
596 | 597 |
597 pairing->KeysEntered(entered); | 598 pairing->KeysEntered(entered); |
598 } | 599 } |
599 | 600 |
600 void BluetoothAdapterBlueZ::RequestConfirmation( | 601 void BluetoothAdapterBlueZ::RequestConfirmation( |
601 const dbus::ObjectPath& device_path, | 602 const dbus::ObjectPath& device_path, |
602 uint32 passkey, | 603 uint32_t passkey, |
603 const ConfirmationCallback& callback) { | 604 const ConfirmationCallback& callback) { |
604 DCHECK(IsPresent()); | 605 DCHECK(IsPresent()); |
605 DCHECK(agent_.get()); | 606 DCHECK(agent_.get()); |
606 VLOG(1) << device_path.value() << ": RequestConfirmation: " << passkey; | 607 VLOG(1) << device_path.value() << ": RequestConfirmation: " << passkey; |
607 | 608 |
608 BluetoothPairingBlueZ* pairing = GetPairing(device_path); | 609 BluetoothPairingBlueZ* pairing = GetPairing(device_path); |
609 if (!pairing) { | 610 if (!pairing) { |
610 callback.Run(REJECTED); | 611 callback.Run(REJECTED); |
611 return; | 612 return; |
612 } | 613 } |
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
987 descriptor->GetCharacteristic()->GetService()) | 988 descriptor->GetCharacteristic()->GetService()) |
988 ->GetAdapter(), | 989 ->GetAdapter(), |
989 this); | 990 this); |
990 | 991 |
991 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | 992 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, |
992 GattDescriptorRemoved(this, descriptor)); | 993 GattDescriptorRemoved(this, descriptor)); |
993 } | 994 } |
994 | 995 |
995 void BluetoothAdapterBlueZ::NotifyGattCharacteristicValueChanged( | 996 void BluetoothAdapterBlueZ::NotifyGattCharacteristicValueChanged( |
996 BluetoothRemoteGattCharacteristicBlueZ* characteristic, | 997 BluetoothRemoteGattCharacteristicBlueZ* characteristic, |
997 const std::vector<uint8>& value) { | 998 const std::vector<uint8_t>& value) { |
998 DCHECK_EQ(static_cast<BluetoothRemoteGattServiceBlueZ*>( | 999 DCHECK_EQ(static_cast<BluetoothRemoteGattServiceBlueZ*>( |
999 characteristic->GetService()) | 1000 characteristic->GetService()) |
1000 ->GetAdapter(), | 1001 ->GetAdapter(), |
1001 this); | 1002 this); |
1002 | 1003 |
1003 FOR_EACH_OBSERVER( | 1004 FOR_EACH_OBSERVER( |
1004 BluetoothAdapter::Observer, observers_, | 1005 BluetoothAdapter::Observer, observers_, |
1005 GattCharacteristicValueChanged(this, characteristic, value)); | 1006 GattCharacteristicValueChanged(this, characteristic, value)); |
1006 } | 1007 } |
1007 | 1008 |
1008 void BluetoothAdapterBlueZ::NotifyGattDescriptorValueChanged( | 1009 void BluetoothAdapterBlueZ::NotifyGattDescriptorValueChanged( |
1009 BluetoothRemoteGattDescriptorBlueZ* descriptor, | 1010 BluetoothRemoteGattDescriptorBlueZ* descriptor, |
1010 const std::vector<uint8>& value) { | 1011 const std::vector<uint8_t>& value) { |
1011 DCHECK_EQ(static_cast<BluetoothRemoteGattServiceBlueZ*>( | 1012 DCHECK_EQ(static_cast<BluetoothRemoteGattServiceBlueZ*>( |
1012 descriptor->GetCharacteristic()->GetService()) | 1013 descriptor->GetCharacteristic()->GetService()) |
1013 ->GetAdapter(), | 1014 ->GetAdapter(), |
1014 this); | 1015 this); |
1015 | 1016 |
1016 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | 1017 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, |
1017 GattDescriptorValueChanged(this, descriptor, value)); | 1018 GattDescriptorValueChanged(this, descriptor, value)); |
1018 } | 1019 } |
1019 | 1020 |
1020 void BluetoothAdapterBlueZ::UseProfile( | 1021 void BluetoothAdapterBlueZ::UseProfile( |
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1502 | 1503 |
1503 // If the queued request resulted in a pending call, then let it | 1504 // If the queued request resulted in a pending call, then let it |
1504 // asynchonously process the remaining queued requests once the pending | 1505 // asynchonously process the remaining queued requests once the pending |
1505 // call returns. | 1506 // call returns. |
1506 if (discovery_request_pending_) | 1507 if (discovery_request_pending_) |
1507 return; | 1508 return; |
1508 } | 1509 } |
1509 } | 1510 } |
1510 | 1511 |
1511 } // namespace bluez | 1512 } // namespace bluez |
OLD | NEW |