Index: device/bluetooth/bluetooth_device.cc |
diff --git a/device/bluetooth/bluetooth_device.cc b/device/bluetooth/bluetooth_device.cc |
index bf193707b0b9b4168b256dcb52536ee214fabef8..0ce77dce7025ae9d34f6f55526e1e211627710cb 100644 |
--- a/device/bluetooth/bluetooth_device.cc |
+++ b/device/bluetooth/bluetooth_device.cc |
@@ -311,6 +311,14 @@ const std::vector<uint8_t>* BluetoothDevice::GetServiceDataForUUID( |
return nullptr; |
} |
+base::Optional<int8_t> BluetoothDevice::GetInquiryRSSI() const { |
+ return inquiry_rssi_; |
+} |
+ |
+base::Optional<int8_t> BluetoothDevice::GetInquiryTxPower() const { |
+ return inquiry_tx_power_; |
+} |
+ |
void BluetoothDevice::CreateGattConnection( |
const GattConnectionCallback& callback, |
const ConnectErrorCallback& error_callback) { |
@@ -381,16 +389,29 @@ std::string BluetoothDevice::CanonicalizeAddress(const std::string& address) { |
std::string BluetoothDevice::GetIdentifier() const { return GetAddress(); } |
-void BluetoothDevice::UpdateAdvertisementData(UUIDList advertised_uuids, |
- ServiceDataMap service_data) { |
+void BluetoothDevice::UpdateAdvertisementData(int8_t rssi, |
+ UUIDList advertised_uuids, |
+ ServiceDataMap service_data, |
+ const int8_t* tx_power) { |
UpdateTimestamp(); |
+ |
+ inquiry_rssi_ = rssi; |
+ |
device_uuids_.ReplaceAdvertisedUUIDs(std::move(advertised_uuids)); |
service_data_ = std::move(service_data); |
+ |
+ if (tx_power != nullptr) { |
+ inquiry_tx_power_ = *tx_power; |
+ } else { |
+ inquiry_tx_power_ = base::nullopt; |
+ } |
} |
void BluetoothDevice::ClearAdvertisementData() { |
+ inquiry_rssi_ = base::nullopt; |
device_uuids_.ClearAdvertisedUUIDs(); |
service_data_.clear(); |
+ inquiry_tx_power_ = base::nullopt; |
GetAdapter()->NotifyDeviceChanged(this); |
} |
@@ -457,4 +478,15 @@ void BluetoothDevice::UpdateTimestamp() { |
last_update_time_ = base::Time::NowFromSystemTime(); |
} |
+// static |
+int8_t BluetoothDevice::ClampPower(int power) { |
+ if (power < INT8_MIN) { |
+ return INT8_MIN; |
+ } |
+ if (power > INT8_MAX) { |
+ return INT8_MAX; |
+ } |
+ return static_cast<int8_t>(power); |
+} |
+ |
} // namespace device |