| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h" | 5 #include "chrome/browser/extensions/api/bluetooth/bluetooth_event_router.h" | 
| 6 | 6 | 
| 7 #include <map> | 7 #include <map> | 
| 8 #include <string> | 8 #include <string> | 
| 9 | 9 | 
| 10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
| 40     adapter_->RemoveObserver(this); | 40     adapter_->RemoveObserver(this); | 
| 41     adapter_ = NULL; | 41     adapter_ = NULL; | 
| 42   } | 42   } | 
| 43 } | 43 } | 
| 44 | 44 | 
| 45 bool ExtensionBluetoothEventRouter::IsBluetoothSupported() const { | 45 bool ExtensionBluetoothEventRouter::IsBluetoothSupported() const { | 
| 46   return adapter_ || | 46   return adapter_ || | 
| 47          device::BluetoothAdapterFactory::IsBluetoothAdapterAvailable(); | 47          device::BluetoothAdapterFactory::IsBluetoothAdapterAvailable(); | 
| 48 } | 48 } | 
| 49 | 49 | 
| 50 void ExtensionBluetoothEventRouter::RunCallbackOnAdapterReady( | 50 void ExtensionBluetoothEventRouter::GetAdapter( | 
| 51     const device::BluetoothAdapter::AdapterCallback& callback) { | 51     const device::BluetoothAdapterFactory::AdapterCallback& callback) { | 
| 52   if (adapter_) { | 52   if (adapter_) { | 
| 53     callback.Run(scoped_refptr<device::BluetoothAdapter>(adapter_)); | 53     callback.Run(scoped_refptr<device::BluetoothAdapter>(adapter_)); | 
| 54     return; | 54     return; | 
| 55   } | 55   } | 
| 56 | 56 | 
| 57   device::BluetoothAdapterFactory::RunCallbackOnAdapterReady(callback); | 57   device::BluetoothAdapterFactory::GetAdapter(callback); | 
| 58 } | 58 } | 
| 59 | 59 | 
| 60 void ExtensionBluetoothEventRouter::OnListenerAdded() { | 60 void ExtensionBluetoothEventRouter::OnListenerAdded() { | 
| 61   num_event_listeners_++; | 61   num_event_listeners_++; | 
| 62   InitializeAdapterIfNeeded(); | 62   InitializeAdapterIfNeeded(); | 
| 63 } | 63 } | 
| 64 | 64 | 
| 65 void ExtensionBluetoothEventRouter::OnListenerRemoved() { | 65 void ExtensionBluetoothEventRouter::OnListenerRemoved() { | 
| 66   num_event_listeners_--; | 66   num_event_listeners_--; | 
| 67   CHECK(num_event_listeners_ >= 0); | 67   CHECK(num_event_listeners_ >= 0); | 
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 179 | 179 | 
| 180   if (!send_discovery_events_) | 180   if (!send_discovery_events_) | 
| 181     return; | 181     return; | 
| 182 | 182 | 
| 183   DispatchDeviceEvent(extensions::event_names::kBluetoothOnDeviceDiscovered, | 183   DispatchDeviceEvent(extensions::event_names::kBluetoothOnDeviceDiscovered, | 
| 184                       *extension_device); | 184                       *extension_device); | 
| 185 } | 185 } | 
| 186 | 186 | 
| 187 void ExtensionBluetoothEventRouter::InitializeAdapterIfNeeded() { | 187 void ExtensionBluetoothEventRouter::InitializeAdapterIfNeeded() { | 
| 188   if (!adapter_) { | 188   if (!adapter_) { | 
| 189     RunCallbackOnAdapterReady( | 189     GetAdapter(base::Bind(&ExtensionBluetoothEventRouter::InitializeAdapter, | 
| 190         base::Bind(&ExtensionBluetoothEventRouter::InitializeAdapter, | 190                           weak_ptr_factory_.GetWeakPtr())); | 
| 191                    weak_ptr_factory_.GetWeakPtr())); |  | 
| 192   } | 191   } | 
| 193 } | 192 } | 
| 194 | 193 | 
| 195 void ExtensionBluetoothEventRouter::InitializeAdapter( | 194 void ExtensionBluetoothEventRouter::InitializeAdapter( | 
| 196     scoped_refptr<device::BluetoothAdapter> adapter) { | 195     scoped_refptr<device::BluetoothAdapter> adapter) { | 
| 197   adapter_ = adapter; | 196   adapter_ = adapter; | 
| 198   if (adapter_) | 197   if (adapter_) | 
| 199     adapter_->AddObserver(this); | 198     adapter_->AddObserver(this); | 
| 200 } | 199 } | 
| 201 | 200 | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
| 212 | 211 | 
| 213   scoped_ptr<ListValue> args(new ListValue()); | 212   scoped_ptr<ListValue> args(new ListValue()); | 
| 214   args->Append(state.ToValue().release()); | 213   args->Append(state.ToValue().release()); | 
| 215   scoped_ptr<Event> event(new Event( | 214   scoped_ptr<Event> event(new Event( | 
| 216       extensions::event_names::kBluetoothOnAdapterStateChanged, | 215       extensions::event_names::kBluetoothOnAdapterStateChanged, | 
| 217       args.Pass())); | 216       args.Pass())); | 
| 218   ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent(event.Pass()); | 217   ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent(event.Pass()); | 
| 219 } | 218 } | 
| 220 | 219 | 
| 221 }  // namespace extensions | 220 }  // namespace extensions | 
| OLD | NEW | 
|---|