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

Side by Side Diff: chrome/browser/chromeos/bluetooth/bluetooth_adapter.cc

Issue 9694054: bluetooth: implement device pairing support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add closeOverlay() to reject button Created 8 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/chromeos/bluetooth/bluetooth_adapter.h" 5 #include "chrome/browser/chromeos/bluetooth/bluetooth_adapter.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 device->SetObjectPath(device_path); 280 device->SetObjectPath(device_path);
281 device->Update(properties, true); 281 device->Update(properties, true);
282 282
283 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, 283 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_,
284 DeviceChanged(this, device)); 284 DeviceChanged(this, device));
285 return; 285 return;
286 } 286 }
287 287
288 // Device has an address and was not previously known, add to the map 288 // Device has an address and was not previously known, add to the map
289 // and notify observers. 289 // and notify observers.
290 BluetoothDevice* device = BluetoothDevice::CreateBound(device_path, 290 BluetoothDevice* device = BluetoothDevice::CreateBound(this, device_path,
291 properties); 291 properties);
292 devices_[address] = device; 292 devices_[address] = device;
293 293
294 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, 294 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_,
295 DeviceAdded(this, device)); 295 DeviceAdded(this, device));
296 } 296 }
297 297
298 BluetoothAdapter::DeviceList BluetoothAdapter::GetDevices() { 298 BluetoothAdapter::DeviceList BluetoothAdapter::GetDevices() {
299 DeviceList devices; 299 DeviceList devices;
300 for (DevicesMap::iterator iter = devices_.begin(); 300 for (DevicesMap::iterator iter = devices_.begin();
301 iter != devices_.end(); ++iter) 301 iter != devices_.end(); ++iter)
302 devices.push_back(iter->second); 302 devices.push_back(iter->second);
303 303
304 return devices; 304 return devices;
305 } 305 }
306 306
307 BluetoothDevice* BluetoothAdapter::GetDevice(const std::string& address) {
308 DevicesMap::iterator iter = devices_.find(address);
309 if (iter != devices_.end())
310 return iter->second;
311
312 return NULL;
313 }
314
307 void BluetoothAdapter::ClearDevices() { 315 void BluetoothAdapter::ClearDevices() {
308 for (DevicesMap::iterator iter = devices_.begin(); 316 for (DevicesMap::iterator iter = devices_.begin();
309 iter != devices_.end(); ++iter) { 317 iter != devices_.end(); ++iter) {
310 BluetoothDevice* device = iter->second; 318 BluetoothDevice* device = iter->second;
311 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, 319 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_,
312 DeviceRemoved(this, device)); 320 DeviceRemoved(this, device));
313 321
314 delete device; 322 delete device;
315 } 323 }
316 devices_.clear(); 324 devices_.clear();
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 const BluetoothDeviceClient::Properties& properties) { 382 const BluetoothDeviceClient::Properties& properties) {
375 if (adapter_path != object_path_) 383 if (adapter_path != object_path_)
376 return; 384 return;
377 385
378 // DeviceFound can also be called to indicate that a device we've 386 // DeviceFound can also be called to indicate that a device we've
379 // paired with or previously connected to is now visible to the adapter, 387 // paired with or previously connected to is now visible to the adapter,
380 // so check it's not already in the list and just update if it is. 388 // so check it's not already in the list and just update if it is.
381 BluetoothDevice* device; 389 BluetoothDevice* device;
382 DevicesMap::iterator iter = devices_.find(address); 390 DevicesMap::iterator iter = devices_.find(address);
383 if (iter == devices_.end()) { 391 if (iter == devices_.end()) {
384 device = BluetoothDevice::CreateUnbound(&properties); 392 device = BluetoothDevice::CreateUnbound(this, &properties);
385 devices_[address] = device; 393 devices_[address] = device;
386 394
387 if (device->IsSupported()) 395 if (device->IsSupported())
388 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_, 396 FOR_EACH_OBSERVER(BluetoothAdapter::Observer, observers_,
389 DeviceAdded(this, device)); 397 DeviceAdded(this, device));
390 } else { 398 } else {
391 device = iter->second; 399 device = iter->second;
392 device->Update(&properties, false); 400 device->Update(&properties, false);
393 401
394 if (device->IsSupported() || !device->WasDiscovered()) 402 if (device->IsSupported() || !device->WasDiscovered())
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 } 440 }
433 441
434 // static 442 // static
435 BluetoothAdapter* BluetoothAdapter::Create(const std::string& address) { 443 BluetoothAdapter* BluetoothAdapter::Create(const std::string& address) {
436 BluetoothAdapter* adapter = new BluetoothAdapter; 444 BluetoothAdapter* adapter = new BluetoothAdapter;
437 adapter->FindAdapter(address); 445 adapter->FindAdapter(address);
438 return adapter; 446 return adapter;
439 } 447 }
440 448
441 } // namespace chromeos 449 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698