Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3097)

Unified Diff: chrome/browser/chromeos/extensions/bluetooth_event_router.cc

Issue 10536159: Bluetooth Extension API: Add a discovery API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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));

Powered by Google App Engine
This is Rietveld 408576698