| 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 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_CHROMEOS_H_ | 5 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_CHROMEOS_H_ |
| 6 #define DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_CHROMEOS_H_ | 6 #define DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_CHROMEOS_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 // The BluetoothDeviceChromeOS class is an implementation of BluetoothDevice | 33 // The BluetoothDeviceChromeOS class is an implementation of BluetoothDevice |
| 34 // for Chrome OS platform. | 34 // for Chrome OS platform. |
| 35 class BluetoothDeviceChromeOS | 35 class BluetoothDeviceChromeOS |
| 36 : public device::BluetoothDevice, | 36 : public device::BluetoothDevice, |
| 37 public BluetoothDeviceClient::Observer, | 37 public BluetoothDeviceClient::Observer, |
| 38 public BluetoothAgentServiceProvider::Delegate { | 38 public BluetoothAgentServiceProvider::Delegate { |
| 39 public: | 39 public: |
| 40 virtual ~BluetoothDeviceChromeOS(); | 40 virtual ~BluetoothDeviceChromeOS(); |
| 41 | 41 |
| 42 // BluetoothDevice override | 42 // BluetoothDevice override |
| 43 virtual uint32 bluetooth_class() const OVERRIDE; |
| 44 virtual std::string name() const OVERRIDE; |
| 45 virtual std::string address() const OVERRIDE; |
| 43 virtual bool IsPaired() const OVERRIDE; | 46 virtual bool IsPaired() const OVERRIDE; |
| 44 virtual const ServiceList& GetServices() const OVERRIDE; | 47 virtual bool IsConnected() const OVERRIDE; |
| 48 virtual bool IsConnectable() const OVERRIDE; |
| 49 virtual bool IsConnecting() const OVERRIDE; |
| 50 virtual ServiceList GetServices() const OVERRIDE; |
| 45 virtual void GetServiceRecords( | 51 virtual void GetServiceRecords( |
| 46 const ServiceRecordsCallback& callback, | 52 const ServiceRecordsCallback& callback, |
| 47 const ErrorCallback& error_callback) OVERRIDE; | 53 const ErrorCallback& error_callback) OVERRIDE; |
| 48 virtual void ProvidesServiceWithName( | 54 virtual void ProvidesServiceWithName( |
| 49 const std::string& name, | 55 const std::string& name, |
| 50 const ProvidesServiceCallback& callback) OVERRIDE; | 56 const ProvidesServiceCallback& callback) OVERRIDE; |
| 51 virtual bool ExpectingPinCode() const OVERRIDE; | 57 virtual bool ExpectingPinCode() const OVERRIDE; |
| 52 virtual bool ExpectingPasskey() const OVERRIDE; | 58 virtual bool ExpectingPasskey() const OVERRIDE; |
| 53 virtual bool ExpectingConfirmation() const OVERRIDE; | 59 virtual bool ExpectingConfirmation() const OVERRIDE; |
| 54 virtual void Connect( | 60 virtual void Connect( |
| (...skipping 19 matching lines...) Expand all Loading... |
| 74 virtual void ClearOutOfBandPairingData( | 80 virtual void ClearOutOfBandPairingData( |
| 75 const base::Closure& callback, | 81 const base::Closure& callback, |
| 76 const ErrorCallback& error_callback) OVERRIDE; | 82 const ErrorCallback& error_callback) OVERRIDE; |
| 77 | 83 |
| 78 private: | 84 private: |
| 79 friend class BluetoothAdapterChromeOS; | 85 friend class BluetoothAdapterChromeOS; |
| 80 friend class device::MockBluetoothDevice; | 86 friend class device::MockBluetoothDevice; |
| 81 | 87 |
| 82 explicit BluetoothDeviceChromeOS(BluetoothAdapterChromeOS* adapter); | 88 explicit BluetoothDeviceChromeOS(BluetoothAdapterChromeOS* adapter); |
| 83 | 89 |
| 90 // Returns whether this device has an object path. |
| 91 bool HasObjectPath() const { return !object_path_.value().empty(); } |
| 92 |
| 84 // Sets the dbus object path for the device to |object_path|, indicating | 93 // Sets the dbus object path for the device to |object_path|, indicating |
| 85 // that the device has gone from being discovered to paired or bonded. | 94 // that the device has gone from being discovered to paired or connected. |
| 86 void SetObjectPath(const dbus::ObjectPath& object_path); | 95 void SetObjectPath(const dbus::ObjectPath& object_path); |
| 87 | 96 |
| 88 // Removes the dbus object path from the device, indicating that the | 97 // Removes the dbus object path from the device, indicating that the |
| 89 // device is no longer paired or bonded, but perhaps still visible. | 98 // device is no longer paired or connected, but perhaps still visible. |
| 90 void RemoveObjectPath(); | 99 void RemoveObjectPath(); |
| 91 | 100 |
| 92 // Sets whether the device is visible to the owning adapter to |visible|. | 101 // Returns whether this was a discovered device. |
| 93 void SetVisible(bool visible) { visible_ = visible; } | 102 bool WasDiscovered() const { return discovered_; } |
| 103 |
| 104 // Sets whether the device was discovered. |
| 105 void SetDiscovered(bool discovered) { discovered_ = discovered; } |
| 94 | 106 |
| 95 // Updates device information from the properties in |properties|, device | 107 // Updates device information from the properties in |properties|, device |
| 96 // state properties such as |paired_| and |connected_| are ignored unless | 108 // state properties such as |paired_| and |connected_| are ignored unless |
| 97 // |update_state| is true. | 109 // |update_state| is true. |
| 98 void Update(const BluetoothDeviceClient::Properties* properties, | 110 void Update(const BluetoothDeviceClient::Properties* properties, |
| 99 bool update_state); | 111 bool update_state); |
| 100 | 112 |
| 101 // Called by BluetoothAdapterClient when a call to CreateDevice() or | 113 // Called by BluetoothAdapterClient when a call to CreateDevice() or |
| 102 // CreatePairedDevice() succeeds, provides the new object path for the remote | 114 // CreatePairedDevice() succeeds, provides the new object path for the remote |
| 103 // device in |device_path|. |callback| and |error_callback| are the callbacks | 115 // device in |device_path|. |callback| and |error_callback| are the callbacks |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 364 // |adapter|. | 376 // |adapter|. |
| 365 static BluetoothDeviceChromeOS* Create(BluetoothAdapterChromeOS* adapter); | 377 static BluetoothDeviceChromeOS* Create(BluetoothAdapterChromeOS* adapter); |
| 366 | 378 |
| 367 // The adapter that owns this device instance. | 379 // The adapter that owns this device instance. |
| 368 BluetoothAdapterChromeOS* adapter_; | 380 BluetoothAdapterChromeOS* adapter_; |
| 369 | 381 |
| 370 // The dbus object path of the device, will be empty if the device has only | 382 // The dbus object path of the device, will be empty if the device has only |
| 371 // been discovered and not yet paired with. | 383 // been discovered and not yet paired with. |
| 372 dbus::ObjectPath object_path_; | 384 dbus::ObjectPath object_path_; |
| 373 | 385 |
| 386 // The Bluetooth class of the device, a bitmask that may be decoded using |
| 387 // https://www.bluetooth.org/Technical/AssignedNumbers/baseband.htm |
| 388 uint32 bluetooth_class_; |
| 389 |
| 390 // The name of the device, as supplied by the remote device. |
| 391 std::string name_; |
| 392 |
| 393 // The Bluetooth address of the device. |
| 394 std::string address_; |
| 395 |
| 396 // Tracked device state, updated by the adapter managing the lifecyle of |
| 397 // the device. |
| 398 bool paired_; |
| 399 bool connected_; |
| 400 |
| 401 // Indicates whether the device normally accepts connections initiated from |
| 402 // the adapter once paired. |
| 403 bool connectable_; |
| 404 |
| 405 // Indicated whether the device is in a connecting status. |
| 406 bool connecting_; |
| 407 |
| 408 // Used by BluetoothAdapterChromeOS (a friend) to avoid removing discovered |
| 409 // devices when they are unpaired. |
| 410 bool discovered_; |
| 411 |
| 374 // The services (identified by UUIDs) that this device provides. | 412 // The services (identified by UUIDs) that this device provides. |
| 375 std::vector<std::string> service_uuids_; | 413 ServiceList service_uuids_; |
| 376 | 414 |
| 377 // During pairing this is set to an object that we don't own, but on which | 415 // During pairing this is set to an object that we don't own, but on which |
| 378 // we can make method calls to request, display or confirm PIN Codes and | 416 // we can make method calls to request, display or confirm PIN Codes and |
| 379 // Passkeys. Generally it is the object that owns this one. | 417 // Passkeys. Generally it is the object that owns this one. |
| 380 device::BluetoothDevice::PairingDelegate* pairing_delegate_; | 418 device::BluetoothDevice::PairingDelegate* pairing_delegate_; |
| 381 | 419 |
| 382 // During pairing this is set to an instance of a D-Bus agent object | 420 // During pairing this is set to an instance of a D-Bus agent object |
| 383 // intialized with our own class as its delegate. | 421 // intialized with our own class as its delegate. |
| 384 scoped_ptr<BluetoothAgentServiceProvider> agent_; | 422 scoped_ptr<BluetoothAgentServiceProvider> agent_; |
| 385 | 423 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 406 // Note: This should remain the last member so it'll be destroyed and | 444 // Note: This should remain the last member so it'll be destroyed and |
| 407 // invalidate its weak pointers before any other members are destroyed. | 445 // invalidate its weak pointers before any other members are destroyed. |
| 408 base::WeakPtrFactory<BluetoothDeviceChromeOS> weak_ptr_factory_; | 446 base::WeakPtrFactory<BluetoothDeviceChromeOS> weak_ptr_factory_; |
| 409 | 447 |
| 410 DISALLOW_COPY_AND_ASSIGN(BluetoothDeviceChromeOS); | 448 DISALLOW_COPY_AND_ASSIGN(BluetoothDeviceChromeOS); |
| 411 }; | 449 }; |
| 412 | 450 |
| 413 } // namespace chromeos | 451 } // namespace chromeos |
| 414 | 452 |
| 415 #endif // DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_CHROMEOS_H_ | 453 #endif // DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_CHROMEOS_H_ |
| OLD | NEW |