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 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 property->ReplaceValueWithSetValue(); | 213 property->ReplaceValueWithSetValue(); |
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 Properties* properties = new Properties(base::Bind( | 225 Properties* properties = new Properties(base::Bind( |
225 &FakeBluetoothDeviceClient::OnPropertyChanged, | 226 &FakeBluetoothDeviceClient::OnPropertyChanged, |
226 base::Unretained(this), | 227 base::Unretained(this), |
227 dbus::ObjectPath(kPairedDevicePath))); | 228 dbus::ObjectPath(kPairedDevicePath))); |
228 properties->address.ReplaceValue(kPairedDeviceAddress); | 229 properties->address.ReplaceValue(kPairedDeviceAddress); |
229 properties->bluetooth_class.ReplaceValue(kPairedDeviceClass); | 230 properties->bluetooth_class.ReplaceValue(kPairedDeviceClass); |
230 properties->name.ReplaceValue("Fake Device (Name)"); | 231 properties->name.ReplaceValue("Fake Device (Name)"); |
231 properties->alias.ReplaceValue(kPairedDeviceName); | 232 properties->alias.ReplaceValue(kPairedDeviceName); |
232 properties->paired.ReplaceValue(true); | 233 properties->paired.ReplaceValue(true); |
233 properties->trusted.ReplaceValue(true); | 234 properties->trusted.ReplaceValue(true); |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 | 453 |
453 void FakeBluetoothDeviceClient::CancelPairing( | 454 void FakeBluetoothDeviceClient::CancelPairing( |
454 const dbus::ObjectPath& object_path, | 455 const dbus::ObjectPath& object_path, |
455 const base::Closure& callback, | 456 const base::Closure& callback, |
456 const ErrorCallback& error_callback) { | 457 const ErrorCallback& error_callback) { |
457 VLOG(1) << "CancelPairing: " << object_path.value(); | 458 VLOG(1) << "CancelPairing: " << object_path.value(); |
458 pairing_cancelled_ = true; | 459 pairing_cancelled_ = true; |
459 callback.Run(); | 460 callback.Run(); |
460 } | 461 } |
461 | 462 |
| 463 void FakeBluetoothDeviceClient::StartConnectionMonitor( |
| 464 const dbus::ObjectPath& object_path, |
| 465 const base::Closure& callback, |
| 466 const ErrorCallback& error_callback) { |
| 467 VLOG(1) << "StartConnectionMonitor: " << object_path.value(); |
| 468 connection_monitor_started_ = true; |
| 469 callback.Run(); |
| 470 } |
| 471 |
| 472 void FakeBluetoothDeviceClient::StopConnectionMonitor( |
| 473 const dbus::ObjectPath& object_path, |
| 474 const base::Closure& callback, |
| 475 const ErrorCallback& error_callback) { |
| 476 connection_monitor_started_ = false; |
| 477 callback.Run(); |
| 478 } |
462 | 479 |
463 void FakeBluetoothDeviceClient::BeginDiscoverySimulation( | 480 void FakeBluetoothDeviceClient::BeginDiscoverySimulation( |
464 const dbus::ObjectPath& adapter_path) { | 481 const dbus::ObjectPath& adapter_path) { |
465 VLOG(1) << "starting discovery simulation"; | 482 VLOG(1) << "starting discovery simulation"; |
466 | 483 |
467 discovery_simulation_step_ = 1; | 484 discovery_simulation_step_ = 1; |
468 | 485 |
469 base::MessageLoop::current()->PostDelayedTask( | 486 base::MessageLoop::current()->PostDelayedTask( |
470 FROM_HERE, | 487 FROM_HERE, |
471 base::Bind(&FakeBluetoothDeviceClient::DiscoverySimulationTimer, | 488 base::Bind(&FakeBluetoothDeviceClient::DiscoverySimulationTimer, |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
670 // Timer fires every .75s, the numbers below are arbitrary to give a feel | 687 // Timer fires every .75s, the numbers below are arbitrary to give a feel |
671 // for a discovery process. | 688 // for a discovery process. |
672 VLOG(1) << "discovery simulation, step " << discovery_simulation_step_; | 689 VLOG(1) << "discovery simulation, step " << discovery_simulation_step_; |
673 if (discovery_simulation_step_ == 2) { | 690 if (discovery_simulation_step_ == 2) { |
674 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), | 691 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), |
675 dbus::ObjectPath(kLegacyAutopairPath)); | 692 dbus::ObjectPath(kLegacyAutopairPath)); |
676 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), | 693 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), |
677 dbus::ObjectPath(kLowEnergyPath)); | 694 dbus::ObjectPath(kLowEnergyPath)); |
678 | 695 |
679 } else if (discovery_simulation_step_ == 4) { | 696 } else if (discovery_simulation_step_ == 4) { |
| 697 UpdateDeviceRSSI(dbus::ObjectPath(kLowEnergyPath), |
| 698 base::RandInt(kMinRSSI, kMaxRSSI)); |
680 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), | 699 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), |
681 dbus::ObjectPath(kDisplayPinCodePath)); | 700 dbus::ObjectPath(kDisplayPinCodePath)); |
682 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), | 701 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), |
683 dbus::ObjectPath(kVanishingDevicePath)); | 702 dbus::ObjectPath(kVanishingDevicePath)); |
684 UpdateDeviceRSSI(dbus::ObjectPath(kLowEnergyPath), | |
685 base::RandInt(kMinRSSI, kMaxRSSI)); | |
686 | 703 |
687 } else if (discovery_simulation_step_ == 7) { | 704 } else if (discovery_simulation_step_ == 7) { |
688 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), | 705 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), |
689 dbus::ObjectPath(kConnectUnpairablePath)); | 706 dbus::ObjectPath(kConnectUnpairablePath)); |
690 UpdateDeviceRSSI(dbus::ObjectPath(kLowEnergyPath), | 707 UpdateDeviceRSSI(dbus::ObjectPath(kLowEnergyPath), |
691 base::RandInt(kMinRSSI, kMaxRSSI)); | 708 base::RandInt(kMinRSSI, kMaxRSSI)); |
692 | 709 |
693 } else if (discovery_simulation_step_ == 8) { | 710 } else if (discovery_simulation_step_ == 8) { |
694 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), | 711 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), |
695 dbus::ObjectPath(kDisplayPasskeyPath)); | 712 dbus::ObjectPath(kDisplayPasskeyPath)); |
(...skipping 10 matching lines...) Expand all Loading... |
706 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), | 723 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), |
707 dbus::ObjectPath(kUnconnectableDevicePath)); | 724 dbus::ObjectPath(kUnconnectableDevicePath)); |
708 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), | 725 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), |
709 dbus::ObjectPath(kUnpairableDevicePath)); | 726 dbus::ObjectPath(kUnpairableDevicePath)); |
710 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), | 727 CreateDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), |
711 dbus::ObjectPath(kJustWorksPath)); | 728 dbus::ObjectPath(kJustWorksPath)); |
712 UpdateDeviceRSSI(dbus::ObjectPath(kLowEnergyPath), | 729 UpdateDeviceRSSI(dbus::ObjectPath(kLowEnergyPath), |
713 base::RandInt(kMinRSSI, kMaxRSSI)); | 730 base::RandInt(kMinRSSI, kMaxRSSI)); |
714 | 731 |
715 } else if (discovery_simulation_step_ == 13) { | 732 } else if (discovery_simulation_step_ == 13) { |
| 733 UpdateDeviceRSSI(dbus::ObjectPath(kLowEnergyPath), |
| 734 base::RandInt(kMinRSSI, kMaxRSSI)); |
716 RemoveDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), | 735 RemoveDevice(dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), |
717 dbus::ObjectPath(kVanishingDevicePath)); | 736 dbus::ObjectPath(kVanishingDevicePath)); |
718 UpdateDeviceRSSI(dbus::ObjectPath(kLowEnergyPath), | |
719 base::RandInt(kMinRSSI, kMaxRSSI)); | |
720 | 737 |
721 } else if (discovery_simulation_step_ == 14) { | 738 } else if (discovery_simulation_step_ == 14) { |
722 UpdateDeviceRSSI(dbus::ObjectPath(kLowEnergyPath), | 739 UpdateDeviceRSSI(dbus::ObjectPath(kLowEnergyPath), |
723 base::RandInt(kMinRSSI, kMaxRSSI)); | 740 base::RandInt(kMinRSSI, kMaxRSSI)); |
724 return; | 741 return; |
725 | 742 |
726 } | 743 } |
727 | 744 |
728 ++discovery_simulation_step_; | 745 ++discovery_simulation_step_; |
729 base::MessageLoop::current()->PostDelayedTask( | 746 base::MessageLoop::current()->PostDelayedTask( |
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1173 // TODO(keybuk): tear down this side of the connection | 1190 // TODO(keybuk): tear down this side of the connection |
1174 callback.Run(); | 1191 callback.Run(); |
1175 } else if (status == BluetoothProfileServiceProvider::Delegate::CANCELLED) { | 1192 } else if (status == BluetoothProfileServiceProvider::Delegate::CANCELLED) { |
1176 error_callback.Run(bluetooth_device::kErrorFailed, "Canceled"); | 1193 error_callback.Run(bluetooth_device::kErrorFailed, "Canceled"); |
1177 } else if (status == BluetoothProfileServiceProvider::Delegate::REJECTED) { | 1194 } else if (status == BluetoothProfileServiceProvider::Delegate::REJECTED) { |
1178 error_callback.Run(bluetooth_device::kErrorFailed, "Rejected"); | 1195 error_callback.Run(bluetooth_device::kErrorFailed, "Rejected"); |
1179 } | 1196 } |
1180 } | 1197 } |
1181 | 1198 |
1182 } // namespace chromeos | 1199 } // namespace chromeos |
OLD | NEW |