Index: chromeos/dbus/fake_bluetooth_device_client.cc |
diff --git a/chromeos/dbus/fake_bluetooth_device_client.cc b/chromeos/dbus/fake_bluetooth_device_client.cc |
index 00c8df4009832f704516736a16d4ff1a7a82996d..d12b42e41d7fb7a13a96b0860dce26ad158f63b1 100644 |
--- a/chromeos/dbus/fake_bluetooth_device_client.cc |
+++ b/chromeos/dbus/fake_bluetooth_device_client.cc |
@@ -19,6 +19,7 @@ |
#include "chromeos/dbus/fake_bluetooth_adapter_client.h" |
#include "chromeos/dbus/fake_bluetooth_agent_manager_client.h" |
#include "chromeos/dbus/fake_bluetooth_agent_service_provider.h" |
+#include "chromeos/dbus/fake_bluetooth_input_client.h" |
#include "dbus/object_path.h" |
#include "third_party/cros_system_api/dbus/service_constants.h" |
@@ -416,6 +417,12 @@ void FakeBluetoothDeviceClient::RemoveDevice( |
FOR_EACH_OBSERVER(ExperimentalBluetoothDeviceClient::Observer, observers_, |
DeviceRemoved(device_path)); |
+ // Remove the Input interface if it exists. |
+ FakeBluetoothInputClient* fake_bluetooth_input_client = |
+ static_cast<FakeBluetoothInputClient*>( |
+ DBusThreadManager::Get()->GetExperimentalBluetoothInputClient()); |
+ fake_bluetooth_input_client->RemoveInputDevice(device_path); |
+ |
delete properties; |
properties_map_.erase(iter); |
} |
@@ -628,6 +635,22 @@ void FakeBluetoothDeviceClient::CompleteSimulatedPairing( |
properties->paired.ReplaceValue(true); |
+ // If the paired device is a HID device based on it's bluetooth class, |
+ // simulate the Input interface. |
+ FakeBluetoothInputClient* fake_bluetooth_input_client = |
+ static_cast<FakeBluetoothInputClient*>( |
+ DBusThreadManager::Get()->GetExperimentalBluetoothInputClient()); |
+ |
+ if ((properties->bluetooth_class.value() & 0x001f03) == 0x000500) { |
+ std::vector<std::string> uuids = properties->uuids.value(); |
+ if (std::find(uuids.begin(), uuids.end(), |
+ "00001124-0000-1000-8000-00805f9b34fb") == uuids.end()) { |
+ uuids.push_back("00001124-0000-1000-8000-00805f9b34fb"); |
+ properties->uuids.ReplaceValue(uuids); |
+ fake_bluetooth_input_client->AddInputDevice(object_path); |
+ } |
+ } |
keybuk
2013/04/18 22:37:44
This also needs to be run in the Connect() functio
deymo
2013/04/18 23:21:02
CompleteSimulatedPairing is called also for the Mi
keybuk
2013/04/18 23:45:09
It is, but for the "test a connect failing after p
deymo
2013/04/19 01:23:22
Done.
|
+ |
callback.Run(); |
properties->NotifyPropertyChanged(properties->paired.name()); |
} |