| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "chromeos/dbus/fake_bluetooth_device_client.h" | 5 #include "chromeos/dbus/fake_bluetooth_device_client.h" |
| 6 | 6 |
| 7 #include <fcntl.h> | 7 #include <fcntl.h> |
| 8 #include <unistd.h> | 8 #include <unistd.h> |
| 9 #include <sys/types.h> | 9 #include <sys/types.h> |
| 10 #include <sys/socket.h> | 10 #include <sys/socket.h> |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 } else { | 214 } else { |
| 215 callback.Run(false); | 215 callback.Run(false); |
| 216 } | 216 } |
| 217 } | 217 } |
| 218 | 218 |
| 219 FakeBluetoothDeviceClient::FakeBluetoothDeviceClient() | 219 FakeBluetoothDeviceClient::FakeBluetoothDeviceClient() |
| 220 : simulation_interval_ms_(kSimulationIntervalMs), | 220 : simulation_interval_ms_(kSimulationIntervalMs), |
| 221 discovery_simulation_step_(0), | 221 discovery_simulation_step_(0), |
| 222 incoming_pairing_simulation_step_(0), | 222 incoming_pairing_simulation_step_(0), |
| 223 pairing_cancelled_(false), | 223 pairing_cancelled_(false), |
| 224 connection_monitor_started_(false) { | 224 connection_rssi_(0), |
| 225 transmit_power_(0), |
| 226 max_transmit_power_(0) { |
| 225 Properties* properties = new Properties(base::Bind( | 227 Properties* properties = new Properties(base::Bind( |
| 226 &FakeBluetoothDeviceClient::OnPropertyChanged, | 228 &FakeBluetoothDeviceClient::OnPropertyChanged, |
| 227 base::Unretained(this), | 229 base::Unretained(this), |
| 228 dbus::ObjectPath(kPairedDevicePath))); | 230 dbus::ObjectPath(kPairedDevicePath))); |
| 229 properties->address.ReplaceValue(kPairedDeviceAddress); | 231 properties->address.ReplaceValue(kPairedDeviceAddress); |
| 230 properties->bluetooth_class.ReplaceValue(kPairedDeviceClass); | 232 properties->bluetooth_class.ReplaceValue(kPairedDeviceClass); |
| 231 properties->name.ReplaceValue("Fake Device (Name)"); | 233 properties->name.ReplaceValue("Fake Device (Name)"); |
| 232 properties->alias.ReplaceValue(kPairedDeviceName); | 234 properties->alias.ReplaceValue(kPairedDeviceName); |
| 233 properties->paired.ReplaceValue(true); | 235 properties->paired.ReplaceValue(true); |
| 234 properties->trusted.ReplaceValue(true); | 236 properties->trusted.ReplaceValue(true); |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 454 | 456 |
| 455 void FakeBluetoothDeviceClient::CancelPairing( | 457 void FakeBluetoothDeviceClient::CancelPairing( |
| 456 const dbus::ObjectPath& object_path, | 458 const dbus::ObjectPath& object_path, |
| 457 const base::Closure& callback, | 459 const base::Closure& callback, |
| 458 const ErrorCallback& error_callback) { | 460 const ErrorCallback& error_callback) { |
| 459 VLOG(1) << "CancelPairing: " << object_path.value(); | 461 VLOG(1) << "CancelPairing: " << object_path.value(); |
| 460 pairing_cancelled_ = true; | 462 pairing_cancelled_ = true; |
| 461 callback.Run(); | 463 callback.Run(); |
| 462 } | 464 } |
| 463 | 465 |
| 464 void FakeBluetoothDeviceClient::StartConnectionMonitor( | 466 void FakeBluetoothDeviceClient::GetConnInfo( |
| 465 const dbus::ObjectPath& object_path, | 467 const dbus::ObjectPath& object_path, |
| 466 const base::Closure& callback, | 468 const ConnInfoCallback& callback, |
| 467 const ErrorCallback& error_callback) { | 469 const ErrorCallback& error_callback) { |
| 468 VLOG(1) << "StartConnectionMonitor: " << object_path.value(); | 470 Properties* properties = GetProperties(object_path); |
| 469 connection_monitor_started_ = true; | 471 if (!properties->connected.value()) { |
| 470 callback.Run(); | 472 error_callback.Run("org.bluez.Error.NotConnected", "Not Connected"); |
| 471 } | 473 return; |
| 474 } |
| 472 | 475 |
| 473 void FakeBluetoothDeviceClient::StopConnectionMonitor( | 476 callback.Run(connection_rssi_, transmit_power_, max_transmit_power_); |
| 474 const dbus::ObjectPath& object_path, | |
| 475 const base::Closure& callback, | |
| 476 const ErrorCallback& error_callback) { | |
| 477 connection_monitor_started_ = false; | |
| 478 callback.Run(); | |
| 479 } | 477 } |
| 480 | 478 |
| 481 void FakeBluetoothDeviceClient::BeginDiscoverySimulation( | 479 void FakeBluetoothDeviceClient::BeginDiscoverySimulation( |
| 482 const dbus::ObjectPath& adapter_path) { | 480 const dbus::ObjectPath& adapter_path) { |
| 483 VLOG(1) << "starting discovery simulation"; | 481 VLOG(1) << "starting discovery simulation"; |
| 484 | 482 |
| 485 discovery_simulation_step_ = 1; | 483 discovery_simulation_step_ = 1; |
| 486 | 484 |
| 487 base::MessageLoop::current()->PostDelayedTask( | 485 base::MessageLoop::current()->PostDelayedTask( |
| 488 FROM_HERE, | 486 FROM_HERE, |
| (...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1012 PropertiesMap::iterator iter = properties_map_.find(object_path); | 1010 PropertiesMap::iterator iter = properties_map_.find(object_path); |
| 1013 if (iter == properties_map_.end()) { | 1011 if (iter == properties_map_.end()) { |
| 1014 VLOG(2) << "Fake device does not exist: " << object_path.value(); | 1012 VLOG(2) << "Fake device does not exist: " << object_path.value(); |
| 1015 return; | 1013 return; |
| 1016 } | 1014 } |
| 1017 Properties* properties = iter->second; | 1015 Properties* properties = iter->second; |
| 1018 DCHECK(properties); | 1016 DCHECK(properties); |
| 1019 properties->rssi.ReplaceValue(rssi); | 1017 properties->rssi.ReplaceValue(rssi); |
| 1020 } | 1018 } |
| 1021 | 1019 |
| 1020 void FakeBluetoothDeviceClient::UpdateConnectionInfo( |
| 1021 uint16 connection_rssi, |
| 1022 uint16 transmit_power, |
| 1023 uint16 max_transmit_power) { |
| 1024 connection_rssi_ = connection_rssi; |
| 1025 transmit_power_ = transmit_power; |
| 1026 max_transmit_power_ = max_transmit_power; |
| 1027 } |
| 1028 |
| 1022 void FakeBluetoothDeviceClient::PinCodeCallback( | 1029 void FakeBluetoothDeviceClient::PinCodeCallback( |
| 1023 const dbus::ObjectPath& object_path, | 1030 const dbus::ObjectPath& object_path, |
| 1024 const base::Closure& callback, | 1031 const base::Closure& callback, |
| 1025 const ErrorCallback& error_callback, | 1032 const ErrorCallback& error_callback, |
| 1026 BluetoothAgentServiceProvider::Delegate::Status status, | 1033 BluetoothAgentServiceProvider::Delegate::Status status, |
| 1027 const std::string& pincode) { | 1034 const std::string& pincode) { |
| 1028 VLOG(1) << "PinCodeCallback: " << object_path.value(); | 1035 VLOG(1) << "PinCodeCallback: " << object_path.value(); |
| 1029 | 1036 |
| 1030 if (status == BluetoothAgentServiceProvider::Delegate::SUCCESS) { | 1037 if (status == BluetoothAgentServiceProvider::Delegate::SUCCESS) { |
| 1031 base::MessageLoop::current()->PostDelayedTask( | 1038 base::MessageLoop::current()->PostDelayedTask( |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1191 // TODO(keybuk): tear down this side of the connection | 1198 // TODO(keybuk): tear down this side of the connection |
| 1192 callback.Run(); | 1199 callback.Run(); |
| 1193 } else if (status == BluetoothProfileServiceProvider::Delegate::CANCELLED) { | 1200 } else if (status == BluetoothProfileServiceProvider::Delegate::CANCELLED) { |
| 1194 error_callback.Run(bluetooth_device::kErrorFailed, "Canceled"); | 1201 error_callback.Run(bluetooth_device::kErrorFailed, "Canceled"); |
| 1195 } else if (status == BluetoothProfileServiceProvider::Delegate::REJECTED) { | 1202 } else if (status == BluetoothProfileServiceProvider::Delegate::REJECTED) { |
| 1196 error_callback.Run(bluetooth_device::kErrorFailed, "Rejected"); | 1203 error_callback.Run(bluetooth_device::kErrorFailed, "Rejected"); |
| 1197 } | 1204 } |
| 1198 } | 1205 } |
| 1199 | 1206 |
| 1200 } // namespace chromeos | 1207 } // namespace chromeos |
| OLD | NEW |