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 23 matching lines...) Expand all Loading... |
34 } | 34 } |
35 | 35 |
36 ExtensionBluetoothEventRouter::~ExtensionBluetoothEventRouter() { | 36 ExtensionBluetoothEventRouter::~ExtensionBluetoothEventRouter() { |
37 CHECK(socket_map_.size() == 0); | 37 CHECK(socket_map_.size() == 0); |
38 if (adapter_) { | 38 if (adapter_) { |
39 adapter_->RemoveObserver(this); | 39 adapter_->RemoveObserver(this); |
40 adapter_ = NULL; | 40 adapter_ = NULL; |
41 } | 41 } |
42 } | 42 } |
43 | 43 |
44 scoped_refptr<const device::BluetoothAdapter> | |
45 ExtensionBluetoothEventRouter::adapter() { | |
46 return GetMutableAdapter(); | |
47 } | |
48 | |
49 scoped_refptr<device::BluetoothAdapter> | 44 scoped_refptr<device::BluetoothAdapter> |
50 ExtensionBluetoothEventRouter::GetMutableAdapter() { | 45 ExtensionBluetoothEventRouter::GetAdapter() { |
51 if (adapter_) | 46 if (adapter_) |
52 return adapter_; | 47 return adapter_; |
53 | 48 |
54 return device::BluetoothAdapterFactory::DefaultAdapter(); | 49 return device::BluetoothAdapterFactory::DefaultAdapter(); |
55 } | 50 } |
56 | 51 |
57 void ExtensionBluetoothEventRouter::OnListenerAdded() { | 52 void ExtensionBluetoothEventRouter::OnListenerAdded() { |
58 num_event_listeners_++; | 53 num_event_listeners_++; |
59 InitializeAdapterIfNeeded(); | 54 InitializeAdapterIfNeeded(); |
60 } | 55 } |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 | 171 |
177 if (!send_discovery_events_) | 172 if (!send_discovery_events_) |
178 return; | 173 return; |
179 | 174 |
180 DispatchDeviceEvent(extensions::event_names::kBluetoothOnDeviceDiscovered, | 175 DispatchDeviceEvent(extensions::event_names::kBluetoothOnDeviceDiscovered, |
181 *extension_device); | 176 *extension_device); |
182 } | 177 } |
183 | 178 |
184 void ExtensionBluetoothEventRouter::InitializeAdapterIfNeeded() { | 179 void ExtensionBluetoothEventRouter::InitializeAdapterIfNeeded() { |
185 if (!adapter_) { | 180 if (!adapter_) { |
186 adapter_ = GetMutableAdapter(); | 181 adapter_ = GetAdapter(); |
187 adapter_->AddObserver(this); | 182 adapter_->AddObserver(this); |
188 } | 183 } |
189 } | 184 } |
190 | 185 |
191 void ExtensionBluetoothEventRouter::MaybeReleaseAdapter() { | 186 void ExtensionBluetoothEventRouter::MaybeReleaseAdapter() { |
192 if (adapter_ && num_event_listeners_ == 0) { | 187 if (adapter_ && num_event_listeners_ == 0) { |
193 adapter_->RemoveObserver(this); | 188 adapter_->RemoveObserver(this); |
194 adapter_ = NULL; | 189 adapter_ = NULL; |
195 } | 190 } |
196 } | 191 } |
197 | 192 |
198 void ExtensionBluetoothEventRouter::DispatchAdapterStateEvent() { | 193 void ExtensionBluetoothEventRouter::DispatchAdapterStateEvent() { |
199 api::bluetooth::AdapterState state; | 194 api::bluetooth::AdapterState state; |
200 PopulateAdapterState(*adapter_, &state); | 195 PopulateAdapterState(*adapter_, &state); |
201 | 196 |
202 scoped_ptr<ListValue> args(new ListValue()); | 197 scoped_ptr<ListValue> args(new ListValue()); |
203 args->Append(state.ToValue().release()); | 198 args->Append(state.ToValue().release()); |
204 scoped_ptr<Event> event(new Event( | 199 scoped_ptr<Event> event(new Event( |
205 extensions::event_names::kBluetoothOnAdapterStateChanged, | 200 extensions::event_names::kBluetoothOnAdapterStateChanged, |
206 args.Pass())); | 201 args.Pass())); |
207 ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent(event.Pass()); | 202 ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent(event.Pass()); |
208 } | 203 } |
209 | 204 |
210 } // namespace extensions | 205 } // namespace extensions |
OLD | NEW |