Chromium Code Reviews| Index: chrome/browser/chromeos/extensions/bluetooth_event_router.cc |
| diff --git a/chrome/browser/chromeos/extensions/bluetooth_event_router.cc b/chrome/browser/chromeos/extensions/bluetooth_event_router.cc |
| index d02649eac09b4b57d44009bdd00a9ac5c11cf570..c12840a4a5817a0af35c5ed01719fdeca58bb766 100644 |
| --- a/chrome/browser/chromeos/extensions/bluetooth_event_router.cc |
| +++ b/chrome/browser/chromeos/extensions/bluetooth_event_router.cc |
| @@ -8,10 +8,14 @@ |
| #include "base/json/json_writer.h" |
| #include "base/memory/ref_counted.h" |
| +#include "base/utf_string_conversions.h" |
| #include "chrome/browser/chromeos/bluetooth/bluetooth_adapter.h" |
| +#include "chrome/browser/chromeos/bluetooth/bluetooth_device.h" |
| #include "chrome/browser/chromeos/bluetooth/bluetooth_socket.h" |
| +#include "chrome/browser/extensions/api/bluetooth/bluetooth_api_utils.h" |
| #include "chrome/browser/extensions/extension_event_names.h" |
| #include "chrome/browser/extensions/extension_event_router.h" |
| +#include "chrome/common/extensions/api/experimental_bluetooth.h" |
| namespace chromeos { |
| @@ -59,20 +63,50 @@ scoped_refptr<BluetoothSocket> ExtensionBluetoothEventRouter::GetSocket( |
| return socket_entry->second; |
| } |
| +void ExtensionBluetoothEventRouter::SetSendDiscoveryEvents(bool should_send) { |
| + send_discovery_events_ = should_send; |
| +} |
| + |
| void ExtensionBluetoothEventRouter::AdapterPresentChanged( |
| chromeos::BluetoothAdapter* adapter, bool present) { |
| DCHECK(adapter == adapter_.get()); |
| - DispatchEvent(extension_event_names::kBluetoothOnAvailabilityChanged, |
| + DispatchBooleanValueEvent( |
| + extension_event_names::kBluetoothOnAvailabilityChanged, |
| present); |
| } |
| void ExtensionBluetoothEventRouter::AdapterPoweredChanged( |
| chromeos::BluetoothAdapter* adapter, bool has_power) { |
| DCHECK(adapter == adapter_.get()); |
| - DispatchEvent(extension_event_names::kBluetoothOnPowerChanged, has_power); |
| + DispatchBooleanValueEvent( |
| + extension_event_names::kBluetoothOnPowerChanged, |
| + has_power); |
| +} |
| + |
| +void ExtensionBluetoothEventRouter::DeviceAdded( |
| + chromeos::BluetoothAdapter* adapter, chromeos::BluetoothDevice* device) { |
| + if (!send_discovery_events_) |
| + return; |
| + |
| + DCHECK(adapter == adapter_.get()); |
| + |
| + extensions::api::experimental_bluetooth::Device extension_device; |
| + extensions::api::experimental_bluetooth::BluetoothDeviceToApiDevice( |
| + *device, &extension_device); |
| + |
| + ListValue args; |
| + args.Append(extension_device.ToValue().release()); |
| + std::string json_args; |
| + base::JSONWriter::Write(&args, &json_args); |
| + |
| + profile_->GetExtensionEventRouter()->DispatchEventToRenderers( |
|
asargent_no_longer_on_chrome
2012/06/15 19:59:08
In thinking about this a little more, it's still k
bryeung
2012/06/16 22:20:41
Added a TODO. Will fix soon.
|
| + extension_event_names::kBluetoothOnDeviceDiscovered, |
| + json_args, |
| + NULL, |
| + GURL()); |
| } |
| -void ExtensionBluetoothEventRouter::DispatchEvent( |
| +void ExtensionBluetoothEventRouter::DispatchBooleanValueEvent( |
| const char* event_name, bool value) { |
| ListValue args; |
| args.Append(Value::CreateBooleanValue(value)); |