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

Side by Side Diff: device/bluetooth/bluetooth_device.h

Issue 1941923002: bluetooth: Return int8_t and use -128 for unknown tx power. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@my-origin
Patch Set: Fix extensions tests Created 4 years, 7 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
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 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_H_ 5 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_H_
6 #define DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_H_ 6 #define DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
11 #include <memory> 11 #include <memory>
12 #include <set> 12 #include <set>
13 #include <string> 13 #include <string>
14 #include <vector> 14 #include <vector>
15 15
16 #include "base/callback.h" 16 #include "base/callback.h"
17 #include "base/containers/scoped_ptr_hash_map.h" 17 #include "base/containers/scoped_ptr_hash_map.h"
18 #include "base/gtest_prod_util.h" 18 #include "base/gtest_prod_util.h"
19 #include "base/memory/ref_counted.h" 19 #include "base/memory/ref_counted.h"
20 #include "base/optional.h"
20 #include "base/strings/string16.h" 21 #include "base/strings/string16.h"
21 #include "device/bluetooth/bluetooth_export.h" 22 #include "device/bluetooth/bluetooth_export.h"
22 #include "device/bluetooth/bluetooth_uuid.h" 23 #include "device/bluetooth/bluetooth_uuid.h"
23 #include "net/log/net_log.h" 24 #include "net/log/net_log.h"
24 25
25 namespace base { 26 namespace base {
26 class BinaryValue; 27 class BinaryValue;
27 } 28 }
28 29
29 namespace device { 30 namespace device {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 DEVICE_VIDEO, 71 DEVICE_VIDEO,
71 DEVICE_PERIPHERAL, 72 DEVICE_PERIPHERAL,
72 DEVICE_JOYSTICK, 73 DEVICE_JOYSTICK,
73 DEVICE_GAMEPAD, 74 DEVICE_GAMEPAD,
74 DEVICE_KEYBOARD, 75 DEVICE_KEYBOARD,
75 DEVICE_MOUSE, 76 DEVICE_MOUSE,
76 DEVICE_TABLET, 77 DEVICE_TABLET,
77 DEVICE_KEYBOARD_MOUSE_COMBO 78 DEVICE_KEYBOARD_MOUSE_COMBO
78 }; 79 };
79 80
80 // The value returned if the RSSI or transmit power cannot be read.
81 static const int kUnknownPower = 127;
82 // The value returned if the appearance is not present. 81 // The value returned if the appearance is not present.
83 static const uint16_t kAppearanceNotPresent = 0xffc0; 82 static const uint16_t kAppearanceNotPresent = 0xffc0;
84 83
85 struct DEVICE_BLUETOOTH_EXPORT ConnectionInfo { 84 struct DEVICE_BLUETOOTH_EXPORT ConnectionInfo {
86 int rssi; 85 base::Optional<int8_t> rssi;
87 int transmit_power; 86 base::Optional<int8_t> transmit_power;
88 int max_transmit_power; 87 base::Optional<int8_t> max_transmit_power;
89 88
90 ConnectionInfo(); 89 ConnectionInfo();
91 ConnectionInfo(int rssi, int transmit_power, int max_transmit_power); 90 ConnectionInfo(const base::Optional<int8_t>& rssi,
91 const base::Optional<int8_t>& transmit_power,
92 const base::Optional<int8_t>& max_transmit_power);
92 ~ConnectionInfo(); 93 ~ConnectionInfo();
93 }; 94 };
94 95
95 // Possible errors passed back to an error callback function in case of a 96 // Possible errors passed back to an error callback function in case of a
96 // failed call to Connect(). 97 // failed call to Connect().
97 enum ConnectErrorCode { 98 enum ConnectErrorCode {
98 ERROR_ATTRIBUTE_LENGTH_INVALID, 99 ERROR_ATTRIBUTE_LENGTH_INVALID,
99 ERROR_AUTH_CANCELED, 100 ERROR_AUTH_CANCELED,
100 ERROR_AUTH_FAILED, 101 ERROR_AUTH_FAILED,
101 ERROR_AUTH_REJECTED, 102 ERROR_AUTH_REJECTED,
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 // such as vendor and product id. 277 // such as vendor and product id.
277 bool IsTrustable() const; 278 bool IsTrustable() const;
278 279
279 // Returns the set of UUIDs that this device supports. For classic Bluetooth 280 // Returns the set of UUIDs that this device supports. For classic Bluetooth
280 // devices this data is collected from both the EIR data and SDP tables, 281 // devices this data is collected from both the EIR data and SDP tables,
281 // for Low Energy devices this data is collected from AD and GATT primary 282 // for Low Energy devices this data is collected from AD and GATT primary
282 // services, for dual mode devices this may be collected from both./ 283 // services, for dual mode devices this may be collected from both./
283 virtual UUIDList GetUUIDs() const = 0; 284 virtual UUIDList GetUUIDs() const = 0;
284 285
285 // The received signal strength, in dBm. This field is avaliable and valid 286 // The received signal strength, in dBm. This field is avaliable and valid
286 // only during discovery. If not during discovery, or RSSI wasn't reported, 287 // only during discovery. If not during discovery, or RSSI wasn't reported
287 // this method will return |kUnknownPower|. 288 // this value will be absent.
288 virtual int16_t GetInquiryRSSI() const = 0; 289 virtual base::Optional<int8_t> GetInquiryRSSI() const = 0;
289 290
290 // The transmitted power level. This field is avaliable only for LE devices 291 // The transmitted power level. This field is avaliable only for LE devices
291 // that include this field in AD. It is avaliable and valid only during 292 // that include this field in AD. It is avaliable and valid only during
292 // discovery. If not during discovery, or TxPower wasn't reported, this 293 // discovery. If not during discovery, or TxPower wasn't reported, this
293 // method will return |kUnknownPower|. 294 // value will be absent.
294 virtual int16_t GetInquiryTxPower() const = 0; 295 virtual base::Optional<int8_t> GetInquiryTxPower() const = 0;
295 296
296 // The ErrorCallback is used for methods that can fail in which case it 297 // The ErrorCallback is used for methods that can fail in which case it
297 // is called, in the success case the callback is simply not called. 298 // is called, in the success case the callback is simply not called.
298 typedef base::Callback<void()> ErrorCallback; 299 typedef base::Callback<void()> ErrorCallback;
299 300
300 // The ConnectErrorCallback is used for methods that can fail with an error, 301 // The ConnectErrorCallback is used for methods that can fail with an error,
301 // passed back as an error code argument to this callback. 302 // passed back as an error code argument to this callback.
302 // In the success case this callback is not called. 303 // In the success case this callback is not called.
303 typedef base::Callback<void(enum ConnectErrorCode)> ConnectErrorCallback; 304 typedef base::Callback<void(enum ConnectErrorCode)> ConnectErrorCallback;
304 305
(...skipping 16 matching lines...) Expand all
321 // The RSSI indicates the power present in the received radio signal, measured 322 // The RSSI indicates the power present in the received radio signal, measured
322 // in dBm, to a resolution of 1dBm. Larger (typically, less negative) values 323 // in dBm, to a resolution of 1dBm. Larger (typically, less negative) values
323 // indicate a stronger signal. 324 // indicate a stronger signal.
324 // 325 //
325 // The transmit power indicates the strength of the signal broadcast from the 326 // The transmit power indicates the strength of the signal broadcast from the
326 // host's Bluetooth antenna when communicating with the device, measured in 327 // host's Bluetooth antenna when communicating with the device, measured in
327 // dBm, to a resolution of 1dBm. Larger (typically, less negative) values 328 // dBm, to a resolution of 1dBm. Larger (typically, less negative) values
328 // indicate a stronger signal. 329 // indicate a stronger signal.
329 // 330 //
330 // If the device isn't connected, then the ConnectionInfo struct passed into 331 // If the device isn't connected, then the ConnectionInfo struct passed into
331 // the callback will be populated with |kUnknownPower|. 332 // the callback will be populated with absent values.
332 virtual void GetConnectionInfo(const ConnectionInfoCallback& callback) = 0; 333 virtual void GetConnectionInfo(const ConnectionInfoCallback& callback) = 0;
333 334
334 // Initiates a connection to the device, pairing first if necessary. 335 // Initiates a connection to the device, pairing first if necessary.
335 // 336 //
336 // Method calls will be made on the supplied object |pairing_delegate| 337 // Method calls will be made on the supplied object |pairing_delegate|
337 // to indicate what display, and in response should make method calls 338 // to indicate what display, and in response should make method calls
338 // back to the device object. Not all devices require user responses 339 // back to the device object. Not all devices require user responses
339 // during pairing, so it is normal for |pairing_delegate| to receive no 340 // during pairing, so it is normal for |pairing_delegate| to receive no
340 // calls. To explicitly force a low-security connection without bonding, 341 // calls. To explicitly force a low-security connection without bonding,
341 // pass NULL, though this is ignored if the device is already paired. 342 // pass NULL, though this is ignored if the device is already paired.
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 553
553 private: 554 private:
554 // Returns a localized string containing the device's bluetooth address and 555 // Returns a localized string containing the device's bluetooth address and
555 // a device type for display when |name_| is empty. 556 // a device type for display when |name_| is empty.
556 base::string16 GetAddressWithLocalizedDeviceTypeName() const; 557 base::string16 GetAddressWithLocalizedDeviceTypeName() const;
557 }; 558 };
558 559
559 } // namespace device 560 } // namespace device
560 561
561 #endif // DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_H_ 562 #endif // DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698