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..c00fc3a716d53f41335ee7a41deaa7bf0b6d1216 100644 |
| --- a/chrome/browser/chromeos/extensions/bluetooth_event_router.cc |
| +++ b/chrome/browser/chromeos/extensions/bluetooth_event_router.cc |
| @@ -8,10 +8,13 @@ |
| #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/extension_event_names.h" |
| #include "chrome/browser/extensions/extension_event_router.h" |
| +#include "chrome/common/extensions/api/experimental_bluetooth.h" |
| namespace chromeos { |
| @@ -59,20 +62,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; |
| + extension_device.name = UTF16ToUTF8(device->GetName()); |
| + extension_device.address = device->address(); |
| + |
| + 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/14 18:23:55
If I have 2 platform apps installed that both have
|
| + 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)); |