OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
keybuk
2012/09/13 23:57:30
rename to bluetooth_device_chromeos.h
youngki
2012/09/17 21:53:02
Done.
| |
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 CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_DBUS_H_ |
6 #define CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_H_ | 6 #define CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_DBUS_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
12 #include "base/callback.h" | |
13 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
14 #include "base/memory/scoped_vector.h" | 13 #include "base/memory/scoped_vector.h" |
15 #include "base/memory/weak_ptr.h" | 14 #include "base/memory/weak_ptr.h" |
16 #include "base/string16.h" | 15 #include "base/string16.h" |
16 #include "chrome/browser/chromeos/bluetooth/bluetooth_device.h" | |
17 #include "chromeos/dbus/bluetooth_agent_service_provider.h" | 17 #include "chromeos/dbus/bluetooth_agent_service_provider.h" |
18 #include "chromeos/dbus/bluetooth_device_client.h" | 18 #include "chromeos/dbus/bluetooth_device_client.h" |
19 #include "chromeos/dbus/bluetooth_out_of_band_client.h" | 19 #include "chromeos/dbus/bluetooth_out_of_band_client.h" |
20 #include "dbus/object_path.h" | 20 #include "dbus/object_path.h" |
21 | 21 |
22 namespace chromeos { | 22 namespace chromeos { |
23 | 23 |
24 class BluetoothAdapter; | 24 class BluetoothAdapterDBus; |
25 class BluetoothServiceRecord; | 25 class BluetoothServiceRecord; |
26 class BluetoothSocket; | |
27 | 26 |
28 // The BluetoothDevice class represents a remote Bluetooth device, both | 27 struct BluetoothOutOfBandPairingData; |
29 // its properties and capabilities as discovered by a local adapter and | 28 |
30 // actions that may be performed on the remove device such as pairing, | 29 // The BluetoothDeviceDBus class is an implementation of BluetoothDevice using |
31 // connection and disconnection. | 30 // DBus for Linux/ChromeOS platform. |
32 // | 31 // |
33 // The class is instantiated and managed by the BluetoothAdapter class | 32 // The class is instantiated and managed by the BluetoothAdapterDBus class |
34 // and pointers should only be obtained from that class and not cached, | 33 // and pointers should only be obtained from the BluetoothAdapter and not |
35 // instead use the address() method as a unique key for a device. | 34 // cached, instead use the address() method as a unique key for a device. |
36 // | 35 // |
37 // Since the lifecycle of BluetoothDevice instances is managed by | 36 // Since the lifecycle of BluetoothDeviceDBus instances is managed by |
38 // BluetoothAdapter, that class rather than this provides observer methods | 37 // BluetoothAdapterDBus, that class rather than this provides observer methods |
39 // for devices coming and going, as well as properties being updated. | 38 // for devices coming and going, as well as properties being updated. |
40 class BluetoothDevice : public BluetoothDeviceClient::Observer, | 39 class BluetoothDeviceDBus : public BluetoothDevice, |
keybuk
2012/09/13 23:57:30
BluetoothDeviceChromeOs
youngki
2012/09/17 21:53:02
Done.
| |
41 public BluetoothAgentServiceProvider::Delegate { | 40 public BluetoothDeviceClient::Observer, |
41 public BluetoothAgentServiceProvider::Delegate { | |
42 public: | 42 public: |
43 // Possible values that may be returned by GetDeviceType(), representing | 43 virtual ~BluetoothDeviceDBus(); |
44 // different types of bluetooth device that we support or are aware of | |
45 // decoded from the bluetooth class information. | |
46 enum DeviceType { | |
47 DEVICE_UNKNOWN, | |
48 DEVICE_COMPUTER, | |
49 DEVICE_PHONE, | |
50 DEVICE_MODEM, | |
51 DEVICE_PERIPHERAL, | |
52 DEVICE_JOYSTICK, | |
53 DEVICE_GAMEPAD, | |
54 DEVICE_KEYBOARD, | |
55 DEVICE_MOUSE, | |
56 DEVICE_TABLET, | |
57 DEVICE_KEYBOARD_MOUSE_COMBO | |
58 }; | |
59 | |
60 // Interface for observing changes from bluetooth devices. | |
61 class Observer { | |
62 public: | |
63 virtual ~Observer() {} | |
64 | |
65 // TODO(keybuk): add observers for pairing and connection. | |
66 }; | |
67 | |
68 // Interface for negotiating pairing of bluetooth devices. | |
69 class PairingDelegate { | |
70 public: | |
71 virtual ~PairingDelegate() {} | |
72 | |
73 // This method will be called when the Bluetooth daemon requires a | |
74 // PIN Code for authentication of the device |device|, the delegate should | |
75 // obtain the code from the user and call SetPinCode() on the device to | |
76 // provide it, or RejectPairing() or CancelPairing() to reject or cancel | |
77 // the request. | |
78 // | |
79 // PIN Codes are generally required for Bluetooth 2.0 and earlier devices | |
80 // for which there is no automatic pairing or special handling. | |
81 virtual void RequestPinCode(BluetoothDevice* device) = 0; | |
82 | |
83 // This method will be called when the Bluetooth daemon requires a | |
84 // Passkey for authentication of the device |device|, the delegate should | |
85 // obtain the passkey from the user (a numeric in the range 0-999999) and | |
86 // call SetPasskey() on the device to provide it, or RejectPairing() or | |
87 // CancelPairing() to reject or cancel the request. | |
88 // | |
89 // Passkeys are generally required for Bluetooth 2.1 and later devices | |
90 // which cannot provide input or display on their own, and don't accept | |
91 // passkey-less pairing. | |
92 virtual void RequestPasskey(BluetoothDevice* device) = 0; | |
93 | |
94 // This method will be called when the Bluetooth daemon requires that the | |
95 // user enter the PIN code |pincode| into the device |device| so that it | |
96 // may be authenticated. The DismissDisplayOrConfirm() method | |
97 // will be called to dismiss the display once pairing is complete or | |
98 // cancelled. | |
99 // | |
100 // This is used for Bluetooth 2.0 and earlier keyboard devices, the | |
101 // |pincode| will always be a six-digit numeric in the range 000000-999999 | |
102 // for compatibilty with later specifications. | |
103 virtual void DisplayPinCode(BluetoothDevice* device, | |
104 const std::string& pincode) = 0; | |
105 | |
106 // This method will be called when the Bluetooth daemon requires that the | |
107 // user enter the Passkey |passkey| into the device |device| so that it | |
108 // may be authenticated. The DismissDisplayOrConfirm() method will be | |
109 // called to dismiss the display once pairing is complete or cancelled. | |
110 // | |
111 // This is used for Bluetooth 2.1 and later devices that support input | |
112 // but not display, such as keyboards. The Passkey is a numeric in the | |
113 // range 0-999999 and should be always presented zero-padded to six | |
114 // digits. | |
115 virtual void DisplayPasskey(BluetoothDevice* device, | |
116 uint32 passkey) = 0; | |
117 | |
118 // This method will be called when the Bluetooth daemon requires that the | |
119 // user confirm that the Passkey |passkey| is displayed on the screen | |
120 // of the device |device| so that it may be authenticated. The delegate | |
121 // should display to the user and ask for confirmation, then call | |
122 // ConfirmPairing() on the device to confirm, RejectPairing() on the device | |
123 // to reject or CancelPairing() on the device to cancel authentication | |
124 // for any other reason. | |
125 // | |
126 // This is used for Bluetooth 2.1 and later devices that support display, | |
127 // such as other computers or phones. The Passkey is a numeric in the | |
128 // range 0-999999 and should be always present zero-padded to six | |
129 // digits. | |
130 virtual void ConfirmPasskey(BluetoothDevice* device, | |
131 uint32 passkey) = 0; | |
132 | |
133 // This method will be called when any previous DisplayPinCode(), | |
134 // DisplayPasskey() or ConfirmPasskey() request should be concluded | |
135 // and removed from the user. | |
136 virtual void DismissDisplayOrConfirm() = 0; | |
137 }; | |
138 | |
139 virtual ~BluetoothDevice(); | |
140 | 44 |
141 // Returns the Bluetooth of address the device. This should be used as | 45 // Returns the Bluetooth of address the device. This should be used as |
142 // a unique key to identify the device and copied where needed. | 46 // a unique key to identify the device and copied where needed. |
143 virtual const std::string& address() const; | 47 virtual const std::string& address() const OVERRIDE; |
144 | 48 |
145 // Returns the name of the device suitable for displaying, this may | 49 // Returns the name of the device suitable for displaying, this may |
146 // be a synthesied string containing the address and localized type name | 50 // be a synthesied string containing the address and localized type name |
147 // if the device has no obtained name. | 51 // if the device has no obtained name. |
148 virtual string16 GetName() const; | 52 virtual string16 GetName() const OVERRIDE; |
149 | 53 |
150 // Returns the type of the device, limited to those we support or are | 54 // Returns the type of the device, limited to those we support or are |
151 // aware of, by decoding the bluetooth class information. The returned | 55 // aware of, by decoding the bluetooth class information. The returned |
152 // values are unique, and do not overlap, so DEVICE_KEYBOARD is not also | 56 // values are unique, and do not overlap, so DEVICE_KEYBOARD is not also |
153 // DEVICE_PERIPHERAL. | 57 // DEVICE_PERIPHERAL. |
154 DeviceType GetDeviceType() const; | 58 virtual BluetoothDevice::DeviceType GetDeviceType() const OVERRIDE; |
155 | 59 |
156 // Returns a localized string containing the device's bluetooth address and | 60 // Returns a localized string containing the device's bluetooth address and |
157 // a device type for display when |name_| is empty. | 61 // a device type for display when |name_| is empty. |
158 string16 GetAddressWithLocalizedDeviceTypeName() const; | 62 string16 GetAddressWithLocalizedDeviceTypeName() const; |
159 | 63 |
160 // Indicates whether the class of this device is supported by Chrome OS. | 64 // Indicates whether the class of this device is supported by Chrome OS. |
161 bool IsSupported() const; | 65 bool IsSupported() const; |
162 | 66 |
163 // Indicates whether the device is paired to the adapter, whether or not | 67 // Indicates whether the device is paired to the adapter, whether or not |
164 // that pairing is permanent or temporary. | 68 // that pairing is permanent or temporary. |
165 virtual bool IsPaired() const; | 69 virtual bool IsPaired() const OVERRIDE; |
166 | 70 |
167 // Indicates whether the device is visible to the adapter, this is not | 71 // Indicates whether the device is visible to the adapter, this is not |
168 // mutually exclusive to being paired. | 72 // mutually exclusive to being paired. |
169 bool IsVisible() const { return visible_; } | 73 bool IsVisible() const { return visible_; } |
170 | 74 |
171 // Indicates whether the device is bonded to the adapter, bonding is | 75 // Indicates whether the device is bonded to the adapter, bonding is |
172 // formed by pairing and exchanging high-security link keys so that | 76 // formed by pairing and exchanging high-security link keys so that |
173 // connections may be encrypted. | 77 // connections may be encrypted. |
174 virtual bool IsBonded() const; | 78 virtual bool IsBonded() const OVERRIDE; |
175 | 79 |
176 // Indicates whether the device is currently connected to the adapter | 80 // Indicates whether the device is currently connected to the adapter |
177 // and at least one service available for use. | 81 // and at least one service available for use. |
178 virtual bool IsConnected() const; | 82 virtual bool IsConnected() const OVERRIDE; |
179 | 83 |
180 // Returns the services (as UUID strings) that this device provides. | 84 // Returns the services (as UUID strings) that this device provides. |
181 typedef std::vector<std::string> ServiceList; | 85 typedef std::vector<std::string> ServiceList; |
182 const ServiceList& GetServices() const { return service_uuids_; } | 86 const ServiceList& GetServices() const { return service_uuids_; } |
183 | 87 |
184 // The ErrorCallback is used for methods that can fail in which case it | |
185 // is called, in the success case the callback is simply not called. | |
186 typedef base::Callback<void()> ErrorCallback; | |
187 | |
188 // Returns the services (as BluetoothServiceRecord objects) that this device | 88 // Returns the services (as BluetoothServiceRecord objects) that this device |
189 // provides. | 89 // provides. |
190 typedef ScopedVector<BluetoothServiceRecord> ServiceRecordList; | 90 virtual void GetServiceRecords(const ServiceRecordsCallback& callback, |
191 typedef base::Callback<void(const ServiceRecordList&)> ServiceRecordsCallback; | 91 const ErrorCallback& error_callback) OVERRIDE; |
192 void GetServiceRecords(const ServiceRecordsCallback& callback, | |
193 const ErrorCallback& error_callback); | |
194 | 92 |
195 // Indicates whether this device provides the given service. |uuid| should | 93 // Indicates whether this device provides the given service. |uuid| should |
196 // be in canonical form (see bluetooth_utils::CanonicalUuid). | 94 // be in canonical form (see bluetooth_utils::CanonicalUuid). |
197 virtual bool ProvidesServiceWithUUID(const std::string& uuid) const; | 95 virtual bool ProvidesServiceWithUUID(const std::string& uuid) const OVERRIDE; |
198 | |
199 // The ProvidesServiceCallback is used by ProvidesServiceWithName to indicate | |
200 // whether or not a matching service was found. | |
201 typedef base::Callback<void(bool)> ProvidesServiceCallback; | |
202 | 96 |
203 // Indicates whether this device provides the given service. | 97 // Indicates whether this device provides the given service. |
204 virtual void ProvidesServiceWithName(const std::string& name, | 98 virtual void ProvidesServiceWithName(const std::string& name, |
205 const ProvidesServiceCallback& callback); | 99 const ProvidesServiceCallback& callback) |
100 OVERRIDE; | |
206 | 101 |
207 // Indicates whether the device is currently pairing and expecting a | 102 // Indicates whether the device is currently pairing and expecting a |
208 // PIN Code to be returned. | 103 // PIN Code to be returned. |
209 bool ExpectingPinCode() const { return !pincode_callback_.is_null(); } | 104 bool ExpectingPinCode() const { return !pincode_callback_.is_null(); } |
210 | 105 |
211 // Indicates whether the device is currently pairing and expecting a | 106 // Indicates whether the device is currently pairing and expecting a |
212 // Passkey to be returned. | 107 // Passkey to be returned. |
213 bool ExpectingPasskey() const { return !passkey_callback_.is_null(); } | 108 bool ExpectingPasskey() const { return !passkey_callback_.is_null(); } |
214 | 109 |
215 // Indicates whether the device is currently pairing and expecting | 110 // Indicates whether the device is currently pairing and expecting |
216 // confirmation of a displayed passkey. | 111 // confirmation of a displayed passkey. |
217 bool ExpectingConfirmation() const { | 112 bool ExpectingConfirmation() const { |
218 return !confirmation_callback_.is_null(); | 113 return !confirmation_callback_.is_null(); |
219 } | 114 } |
220 | 115 |
221 // Initiates a connection to the device, pairing first if necessary. | 116 // Initiates a connection to the device, pairing first if necessary. |
222 // | 117 // |
223 // Method calls will be made on the supplied object |pairing_delegate| | 118 // Method calls will be made on the supplied object |pairing_delegate| |
224 // to indicate what display, and in response should make method calls | 119 // to indicate what display, and in response should make method calls |
225 // back to the device object. Not all devices require user responses | 120 // back to the device object. Not all devices require user responses |
226 // during pairing, so it is normal for |pairing_delegate| to receive no | 121 // during pairing, so it is normal for |pairing_delegate| to receive no |
227 // calls. To explicitly force a low-security connection without bonding, | 122 // calls. To explicitly force a low-security connection without bonding, |
228 // pass NULL, though this is ignored if the device is already paired. | 123 // pass NULL, though this is ignored if the device is already paired. |
229 // | 124 // |
230 // If the request fails, |error_callback| will be called; otherwise, | 125 // If the request fails, |error_callback| will be called; otherwise, |
231 // |callback| is called when the request is complete. | 126 // |callback| is called when the request is complete. |
232 void Connect(PairingDelegate* pairing_delegate, | 127 void Connect(BluetoothDevice::PairingDelegate* pairing_delegate, |
233 const base::Closure& callback, | 128 const base::Closure& callback, |
234 const ErrorCallback& error_callback); | 129 const ErrorCallback& error_callback); |
235 | 130 |
236 // Sends the PIN code |pincode| to the remote device during pairing. | 131 // Sends the PIN code |pincode| to the remote device during pairing. |
237 // | 132 // |
238 // PIN Codes are generally required for Bluetooth 2.0 and earlier devices | 133 // PIN Codes are generally required for Bluetooth 2.0 and earlier devices |
239 // for which there is no automatic pairing or special handling. | 134 // for which there is no automatic pairing or special handling. |
240 void SetPinCode(const std::string& pincode); | 135 void SetPinCode(const std::string& pincode); |
241 | 136 |
242 // Sends the Passkey |passkey| to the remote device during pairing. | 137 // Sends the Passkey |passkey| to the remote device during pairing. |
(...skipping 23 matching lines...) Expand all Loading... | |
266 | 161 |
267 // Disconnects the device, terminating the low-level ACL connection | 162 // Disconnects the device, terminating the low-level ACL connection |
268 // and any application connections using it, and then discards link keys | 163 // and any application connections using it, and then discards link keys |
269 // and other pairing information. The device object remainds valid until | 164 // and other pairing information. The device object remainds valid until |
270 // returing from the calling function, after which it should be assumed to | 165 // returing from the calling function, after which it should be assumed to |
271 // have been deleted. If the request fails, |error_callback| will be called. | 166 // have been deleted. If the request fails, |error_callback| will be called. |
272 // There is no callback for success beause this object is often deleted | 167 // There is no callback for success beause this object is often deleted |
273 // before that callback would be called. | 168 // before that callback would be called. |
274 void Forget(const ErrorCallback& error_callback); | 169 void Forget(const ErrorCallback& error_callback); |
275 | 170 |
276 // SocketCallback is used by ConnectToService to return a BluetoothSocket | |
277 // to the caller, or NULL if there was an error. The socket will remain open | |
278 // until the last reference to the returned BluetoothSocket is released. | |
279 typedef base::Callback<void(scoped_refptr<BluetoothSocket>)> SocketCallback; | |
280 | |
281 // Attempts to open a socket to a service matching |uuid| on this device. If | 171 // Attempts to open a socket to a service matching |uuid| on this device. If |
282 // the connection is successful, |callback| is called with a BluetoothSocket. | 172 // the connection is successful, |callback| is called with a |
173 // BluetoothSocket. | |
283 // Otherwise |callback| is called with NULL. The socket is closed as soon as | 174 // Otherwise |callback| is called with NULL. The socket is closed as soon as |
284 // all references to the BluetoothSocket are released. Note that the | 175 // all references to the BluetoothSocket are released. Note that the |
285 // BluetoothSocket object can outlive both this BluetoothDevice and the | 176 // BluetoothSocket object can outlive both this BluetoothDeviceDBus and |
286 // BluetoothAdapter for this device. | 177 // the BluetoothAdapterDBus for this device. |
287 void ConnectToService(const std::string& service_uuid, | 178 virtual void ConnectToService(const std::string& service_uuid, |
288 const SocketCallback& callback); | 179 const SocketCallback& callback) OVERRIDE; |
289 | 180 |
290 // Sets the Out Of Band pairing data for this device to |data|. Exactly one | 181 // Sets the Out Of Band pairing data for this device to |data|. Exactly one |
291 // of |callback| or |error_callback| will be run. | 182 // of |callback| or |error_callback| will be run. |
292 virtual void SetOutOfBandPairingData( | 183 virtual void SetOutOfBandPairingData( |
293 const chromeos::BluetoothOutOfBandPairingData& data, | 184 const chromeos::BluetoothOutOfBandPairingData& data, |
294 const base::Closure& callback, | 185 const base::Closure& callback, |
295 const ErrorCallback& error_callback); | 186 const ErrorCallback& error_callback) OVERRIDE; |
296 | 187 |
297 // Clears the Out Of Band pairing data for this device. Exactly one of | 188 // Clears the Out Of Band pairing data for this device. Exactly one of |
298 // |callback| or |error_callback| will be run. | 189 // |callback| or |error_callback| will be run. |
299 virtual void ClearOutOfBandPairingData( | 190 virtual void ClearOutOfBandPairingData( |
300 const base::Closure& callback, | 191 const base::Closure& callback, |
301 const ErrorCallback& error_callback); | 192 const ErrorCallback& error_callback) OVERRIDE; |
302 | 193 |
303 private: | 194 private: |
304 friend class BluetoothAdapter; | 195 friend class BluetoothAdapterDBus; |
305 friend class MockBluetoothDevice; | 196 friend class MockBluetoothDevice; |
306 | 197 |
307 explicit BluetoothDevice(BluetoothAdapter* adapter); | 198 explicit BluetoothDeviceDBus(BluetoothAdapterDBus* adapter); |
308 | 199 |
309 // Sets the dbus object path for the device to |object_path|, indicating | 200 // Sets the dbus object path for the device to |object_path|, indicating |
310 // that the device has gone from being discovered to paired or bonded. | 201 // that the device has gone from being discovered to paired or bonded. |
311 void SetObjectPath(const dbus::ObjectPath& object_path); | 202 void SetObjectPath(const dbus::ObjectPath& object_path); |
312 | 203 |
313 // Removes the dbus object path from the device, indicating that the | 204 // Removes the dbus object path from the device, indicating that the |
314 // device is no longer paired or bonded, but perhaps still visible. | 205 // device is no longer paired or bonded, but perhaps still visible. |
315 void RemoveObjectPath(); | 206 void RemoveObjectPath(); |
316 | 207 |
317 // Sets whether the device is visible to the owning adapter to |visible|. | 208 // Sets whether the device is visible to the owning adapter to |visible|. |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
395 const std::string& error_message); | 286 const std::string& error_message); |
396 | 287 |
397 // Called by BluetoothDeviceClient when a call to Disconnect() completes, | 288 // Called by BluetoothDeviceClient when a call to Disconnect() completes, |
398 // |success| indicates whether or not the request succeeded, |callback| and | 289 // |success| indicates whether or not the request succeeded, |callback| and |
399 // |error_callback| are the callbacks provided to Disconnect() and | 290 // |error_callback| are the callbacks provided to Disconnect() and |
400 // |device_path| is the device disconnected. | 291 // |device_path| is the device disconnected. |
401 void DisconnectCallback(const base::Closure& callback, | 292 void DisconnectCallback(const base::Closure& callback, |
402 const ErrorCallback& error_callback, | 293 const ErrorCallback& error_callback, |
403 const dbus::ObjectPath& device_path, bool success); | 294 const dbus::ObjectPath& device_path, bool success); |
404 | 295 |
405 // Called by BluetoothAdapterClient when a call to RemoveDevice() completes, | 296 // Called by BluetoothAdapterClient when a call to RemoveDevice() |
406 // |success| indicates whether or not the request succeeded, |error_callback| | 297 // completes, |success| indicates whether or not the request succeeded, |
407 // is the callback provided to Forget() and |adapter_path| is the d-bus | 298 // |error_callback| is the callback provided to Forget() and |adapter_path| is |
408 // object path of the adapter that performed the removal. | 299 // the d-bus object path of the adapter that performed the removal. |
409 void ForgetCallback(const ErrorCallback& error_callback, | 300 void ForgetCallback(const ErrorCallback& error_callback, |
410 const dbus::ObjectPath& adapter_path, bool success); | 301 const dbus::ObjectPath& adapter_path, bool success); |
411 | 302 |
412 // Called if the call to GetServiceRecords from ProvidesServiceWithName fails. | 303 // Called if the call to GetServiceRecords from ProvidesServiceWithName fails. |
413 void SearchServicesForNameErrorCallback( | 304 void SearchServicesForNameErrorCallback( |
414 const ProvidesServiceCallback& callback); | 305 const ProvidesServiceCallback& callback); |
415 | 306 |
416 // Called by GetServiceRecords with the list of BluetoothServiceRecords to | 307 // Called by GetServiceRecords with the list of BluetoothServiceRecords to |
417 // search for |name|. |callback| is the callback from | 308 // search for |name|. |callback| is the callback from |
418 // ProvidesServiceWithName. | 309 // ProvidesServiceWithName. |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
547 // their response (success, rejected or cancelled). | 438 // their response (success, rejected or cancelled). |
548 virtual void ConfirmModeChange(Mode mode, | 439 virtual void ConfirmModeChange(Mode mode, |
549 const ConfirmationCallback& callback) OVERRIDE; | 440 const ConfirmationCallback& callback) OVERRIDE; |
550 | 441 |
551 // BluetoothAgentServiceProvider::Delegate override. | 442 // BluetoothAgentServiceProvider::Delegate override. |
552 // | 443 // |
553 // This method will be called by the Bluetooth daemon to indicate that | 444 // This method will be called by the Bluetooth daemon to indicate that |
554 // the request failed before a reply was returned from the device. | 445 // the request failed before a reply was returned from the device. |
555 virtual void Cancel() OVERRIDE; | 446 virtual void Cancel() OVERRIDE; |
556 | 447 |
557 // Creates a new BluetoothDevice object bound to the adapter |adapter|. | 448 // Creates a new BluetoothDeviceDBus object bound to the adapter |adapter|. |
558 static BluetoothDevice* Create(BluetoothAdapter* adapter); | 449 static BluetoothDeviceDBus* Create(BluetoothAdapterDBus* adapter); |
559 | 450 |
560 // The adapter that owns this device instance. | 451 // The adapter that owns this device instance. |
561 BluetoothAdapter* adapter_; | 452 BluetoothAdapterDBus* adapter_; |
562 | 453 |
563 // The dbus object path of the device, will be empty if the device has only | 454 // The dbus object path of the device, will be empty if the device has only |
564 // been discovered and not yet paired with. | 455 // been discovered and not yet paired with. |
565 dbus::ObjectPath object_path_; | 456 dbus::ObjectPath object_path_; |
566 | 457 |
567 // The Bluetooth address of the device. | 458 // The Bluetooth address of the device. |
568 std::string address_; | 459 std::string address_; |
569 | 460 |
570 // The name of the device, as supplied by the remote device. | 461 // The name of the device, as supplied by the remote device. |
571 std::string name_; | 462 std::string name_; |
572 | 463 |
573 // The Bluetooth class of the device, a bitmask that may be decoded using | 464 // The Bluetooth class of the device, a bitmask that may be decoded using |
574 // https://www.bluetooth.org/Technical/AssignedNumbers/baseband.htm | 465 // https://www.bluetooth.org/Technical/AssignedNumbers/baseband.htm |
575 uint32 bluetooth_class_; | 466 uint32 bluetooth_class_; |
576 | 467 |
577 // Tracked device state, updated by the adapter managing the lifecyle of | 468 // Tracked device state, updated by the adapter managing the lifecyle of |
578 // the device. | 469 // the device. |
579 bool visible_; | 470 bool visible_; |
580 bool bonded_; | 471 bool bonded_; |
581 bool connected_; | 472 bool connected_; |
582 | 473 |
583 // The services (identified by UUIDs) that this device provides. | 474 // The services (identified by UUIDs) that this device provides. |
584 std::vector<std::string> service_uuids_; | 475 std::vector<std::string> service_uuids_; |
585 | 476 |
586 // During pairing this is set to an object that we don't own, but on which | 477 // During pairing this is set to an object that we don't own, but on which |
587 // we can make method calls to request, display or confirm PIN Codes and | 478 // we can make method calls to request, display or confirm PIN Codes and |
588 // Passkeys. Generally it is the object that owns this one. | 479 // Passkeys. Generally it is the object that owns this one. |
589 PairingDelegate* pairing_delegate_; | 480 BluetoothDevice::PairingDelegate* pairing_delegate_; |
590 | 481 |
591 // During pairing this is set to an instance of a D-Bus agent object | 482 // During pairing this is set to an instance of a D-Bus agent object |
592 // intialized with our own class as its delegate. | 483 // intialized with our own class as its delegate. |
593 scoped_ptr<BluetoothAgentServiceProvider> agent_; | 484 scoped_ptr<BluetoothAgentServiceProvider> agent_; |
594 | 485 |
595 // During pairing these callbacks are set to those provided by method calls | 486 // During pairing these callbacks are set to those provided by method calls |
596 // made on us by |agent_| and are called by our own method calls such as | 487 // made on us by |agent_| and are called by our own method calls such as |
597 // SetPinCode() and SetPasskey(). | 488 // SetPinCode() and SetPasskey(). |
598 PinCodeCallback pincode_callback_; | 489 PinCodeCallback pincode_callback_; |
599 PasskeyCallback passkey_callback_; | 490 PasskeyCallback passkey_callback_; |
600 ConfirmationCallback confirmation_callback_; | 491 ConfirmationCallback confirmation_callback_; |
601 | 492 |
602 // Used to keep track of pending application connection requests. | 493 // Used to keep track of pending application connection requests. |
603 int connecting_applications_counter_; | 494 int connecting_applications_counter_; |
604 | 495 |
605 // Note: This should remain the last member so it'll be destroyed and | 496 // Note: This should remain the last member so it'll be destroyed and |
606 // invalidate its weak pointers before any other members are destroyed. | 497 // invalidate its weak pointers before any other members are destroyed. |
607 base::WeakPtrFactory<BluetoothDevice> weak_ptr_factory_; | 498 base::WeakPtrFactory<BluetoothDeviceDBus> weak_ptr_factory_; |
608 | 499 |
609 DISALLOW_COPY_AND_ASSIGN(BluetoothDevice); | 500 DISALLOW_COPY_AND_ASSIGN(BluetoothDeviceDBus); |
610 }; | 501 }; |
611 | 502 |
612 } // namespace chromeos | 503 } // namespace chromeos |
613 | 504 |
614 #endif // CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_H_ | 505 #endif // CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_DBUS_H_ |
OLD | NEW |