| 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 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 473 property_name == properties->paired.name() || | 473 property_name == properties->paired.name() || |
| 474 property_name == properties->trusted.name() || | 474 property_name == properties->trusted.name() || |
| 475 property_name == properties->connected.name() || | 475 property_name == properties->connected.name() || |
| 476 property_name == properties->uuids.name() || | 476 property_name == properties->uuids.name() || |
| 477 property_name == properties->rssi.name() || | 477 property_name == properties->rssi.name() || |
| 478 property_name == properties->tx_power.name()) { | 478 property_name == properties->tx_power.name()) { |
| 479 NotifyDeviceChanged(device_bluez); | 479 NotifyDeviceChanged(device_bluez); |
| 480 } | 480 } |
| 481 | 481 |
| 482 if (property_name == properties->gatt_services.name()) { | 482 if (property_name == properties->gatt_services.name()) { |
| 483 device_bluez->SetGattServicesDiscoveryComplete(true); |
| 483 NotifyGattServicesDiscovered(device_bluez); | 484 NotifyGattServicesDiscovered(device_bluez); |
| 484 } | 485 } |
| 485 | 486 |
| 486 // When a device becomes paired, mark it as trusted so that the user does | 487 // When a device becomes paired, mark it as trusted so that the user does |
| 487 // not need to approve every incoming connection | 488 // not need to approve every incoming connection |
| 488 if (property_name == properties->paired.name() && | 489 if (property_name == properties->paired.name() && |
| 489 properties->paired.value() && !properties->trusted.value()) { | 490 properties->paired.value() && !properties->trusted.value()) { |
| 490 device_bluez->SetTrusted(); | 491 device_bluez->SetTrusted(); |
| 491 } | 492 } |
| 492 | 493 |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 904 | 905 |
| 905 void BluetoothAdapterBlueZ::NotifyDeviceAddressChanged( | 906 void BluetoothAdapterBlueZ::NotifyDeviceAddressChanged( |
| 906 BluetoothDeviceBlueZ* device, | 907 BluetoothDeviceBlueZ* device, |
| 907 const std::string& old_address) { | 908 const std::string& old_address) { |
| 908 DCHECK(device->adapter_ == this); | 909 DCHECK(device->adapter_ == this); |
| 909 | 910 |
| 910 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | 911 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, |
| 911 DeviceAddressChanged(this, device, old_address)); | 912 DeviceAddressChanged(this, device, old_address)); |
| 912 } | 913 } |
| 913 | 914 |
| 914 void BluetoothAdapterBlueZ::NotifyGattServiceAdded( | |
| 915 BluetoothRemoteGattServiceBlueZ* service) { | |
| 916 DCHECK_EQ(service->GetAdapter(), this); | |
| 917 DCHECK_EQ(static_cast<BluetoothDeviceBlueZ*>(service->GetDevice())->adapter_, | |
| 918 this); | |
| 919 | |
| 920 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | |
| 921 GattServiceAdded(this, service->GetDevice(), service)); | |
| 922 } | |
| 923 | |
| 924 void BluetoothAdapterBlueZ::NotifyGattServiceRemoved( | |
| 925 BluetoothRemoteGattServiceBlueZ* service) { | |
| 926 DCHECK_EQ(service->GetAdapter(), this); | |
| 927 DCHECK_EQ(static_cast<BluetoothDeviceBlueZ*>(service->GetDevice())->adapter_, | |
| 928 this); | |
| 929 | |
| 930 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | |
| 931 GattServiceRemoved(this, service->GetDevice(), service)); | |
| 932 } | |
| 933 | |
| 934 void BluetoothAdapterBlueZ::NotifyGattServiceChanged( | |
| 935 BluetoothRemoteGattServiceBlueZ* service) { | |
| 936 DCHECK_EQ(service->GetAdapter(), this); | |
| 937 | |
| 938 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | |
| 939 GattServiceChanged(this, service)); | |
| 940 } | |
| 941 | |
| 942 void BluetoothAdapterBlueZ::NotifyGattServicesDiscovered( | |
| 943 BluetoothDeviceBlueZ* device) { | |
| 944 DCHECK(device->adapter_ == this); | |
| 945 | |
| 946 device->SetGattServicesDiscoveryComplete(true); | |
| 947 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | |
| 948 GattServicesDiscovered(this, device)); | |
| 949 } | |
| 950 | |
| 951 void BluetoothAdapterBlueZ::NotifyGattDiscoveryComplete( | |
| 952 BluetoothRemoteGattServiceBlueZ* service) { | |
| 953 DCHECK_EQ(service->GetAdapter(), this); | |
| 954 | |
| 955 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | |
| 956 GattDiscoveryCompleteForService(this, service)); | |
| 957 } | |
| 958 | |
| 959 void BluetoothAdapterBlueZ::NotifyGattCharacteristicAdded( | |
| 960 BluetoothRemoteGattCharacteristicBlueZ* characteristic) { | |
| 961 DCHECK_EQ(static_cast<BluetoothRemoteGattServiceBlueZ*>( | |
| 962 characteristic->GetService()) | |
| 963 ->GetAdapter(), | |
| 964 this); | |
| 965 | |
| 966 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | |
| 967 GattCharacteristicAdded(this, characteristic)); | |
| 968 } | |
| 969 | |
| 970 void BluetoothAdapterBlueZ::NotifyGattCharacteristicRemoved( | |
| 971 BluetoothRemoteGattCharacteristicBlueZ* characteristic) { | |
| 972 DCHECK_EQ(static_cast<BluetoothRemoteGattServiceBlueZ*>( | |
| 973 characteristic->GetService()) | |
| 974 ->GetAdapter(), | |
| 975 this); | |
| 976 | |
| 977 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | |
| 978 GattCharacteristicRemoved(this, characteristic)); | |
| 979 } | |
| 980 | |
| 981 void BluetoothAdapterBlueZ::NotifyGattDescriptorAdded( | |
| 982 BluetoothRemoteGattDescriptorBlueZ* descriptor) { | |
| 983 DCHECK_EQ(static_cast<BluetoothRemoteGattServiceBlueZ*>( | |
| 984 descriptor->GetCharacteristic()->GetService()) | |
| 985 ->GetAdapter(), | |
| 986 this); | |
| 987 | |
| 988 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | |
| 989 GattDescriptorAdded(this, descriptor)); | |
| 990 } | |
| 991 | |
| 992 void BluetoothAdapterBlueZ::NotifyGattDescriptorRemoved( | |
| 993 BluetoothRemoteGattDescriptorBlueZ* descriptor) { | |
| 994 DCHECK_EQ(static_cast<BluetoothRemoteGattServiceBlueZ*>( | |
| 995 descriptor->GetCharacteristic()->GetService()) | |
| 996 ->GetAdapter(), | |
| 997 this); | |
| 998 | |
| 999 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | |
| 1000 GattDescriptorRemoved(this, descriptor)); | |
| 1001 } | |
| 1002 | |
| 1003 void BluetoothAdapterBlueZ::NotifyGattCharacteristicValueChanged( | |
| 1004 BluetoothRemoteGattCharacteristicBlueZ* characteristic, | |
| 1005 const std::vector<uint8_t>& value) { | |
| 1006 DCHECK_EQ(static_cast<BluetoothRemoteGattServiceBlueZ*>( | |
| 1007 characteristic->GetService()) | |
| 1008 ->GetAdapter(), | |
| 1009 this); | |
| 1010 | |
| 1011 FOR_EACH_OBSERVER( | |
| 1012 BluetoothAdapter::Observer, observers_, | |
| 1013 GattCharacteristicValueChanged(this, characteristic, value)); | |
| 1014 } | |
| 1015 | |
| 1016 void BluetoothAdapterBlueZ::NotifyGattDescriptorValueChanged( | |
| 1017 BluetoothRemoteGattDescriptorBlueZ* descriptor, | |
| 1018 const std::vector<uint8_t>& value) { | |
| 1019 DCHECK_EQ(static_cast<BluetoothRemoteGattServiceBlueZ*>( | |
| 1020 descriptor->GetCharacteristic()->GetService()) | |
| 1021 ->GetAdapter(), | |
| 1022 this); | |
| 1023 | |
| 1024 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, | |
| 1025 GattDescriptorValueChanged(this, descriptor, value)); | |
| 1026 } | |
| 1027 | |
| 1028 void BluetoothAdapterBlueZ::UseProfile( | 915 void BluetoothAdapterBlueZ::UseProfile( |
| 1029 const BluetoothUUID& uuid, | 916 const BluetoothUUID& uuid, |
| 1030 const dbus::ObjectPath& device_path, | 917 const dbus::ObjectPath& device_path, |
| 1031 const bluez::BluetoothProfileManagerClient::Options& options, | 918 const bluez::BluetoothProfileManagerClient::Options& options, |
| 1032 bluez::BluetoothProfileServiceProvider::Delegate* delegate, | 919 bluez::BluetoothProfileServiceProvider::Delegate* delegate, |
| 1033 const ProfileRegisteredCallback& success_callback, | 920 const ProfileRegisteredCallback& success_callback, |
| 1034 const ErrorCompletionCallback& error_callback) { | 921 const ErrorCompletionCallback& error_callback) { |
| 1035 DCHECK(delegate); | 922 DCHECK(delegate); |
| 1036 | 923 |
| 1037 if (!IsPresent()) { | 924 if (!IsPresent()) { |
| (...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1510 | 1397 |
| 1511 // If the queued request resulted in a pending call, then let it | 1398 // If the queued request resulted in a pending call, then let it |
| 1512 // asynchonously process the remaining queued requests once the pending | 1399 // asynchonously process the remaining queued requests once the pending |
| 1513 // call returns. | 1400 // call returns. |
| 1514 if (discovery_request_pending_) | 1401 if (discovery_request_pending_) |
| 1515 return; | 1402 return; |
| 1516 } | 1403 } |
| 1517 } | 1404 } |
| 1518 | 1405 |
| 1519 } // namespace bluez | 1406 } // namespace bluez |
| OLD | NEW |