1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_MAC_H_
6 #define DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_MAC_H_
8 #import <IOBluetooth/IOBluetooth.h>
12 #include "base/basictypes.h"
13 #include "base/mac/scoped_nsobject.h"
14 #include "base/observer_list.h"
15 #include "device/bluetooth/bluetooth_device.h"
17 @
class IOBluetoothDevice
;
21 class BluetoothDeviceMac
: public BluetoothDevice
{
23 explicit BluetoothDeviceMac(IOBluetoothDevice
* device
);
24 virtual ~BluetoothDeviceMac();
26 // BluetoothDevice override
27 virtual uint32
GetBluetoothClass() const OVERRIDE
;
28 virtual std::string
GetAddress() const OVERRIDE
;
29 virtual VendorIDSource
GetVendorIDSource() const OVERRIDE
;
30 virtual uint16
GetVendorID() const OVERRIDE
;
31 virtual uint16
GetProductID() const OVERRIDE
;
32 virtual uint16
GetDeviceID() const OVERRIDE
;
33 virtual int GetRSSI() const OVERRIDE
;
34 virtual int GetCurrentHostTransmitPower() const OVERRIDE
;
35 virtual int GetMaximumHostTransmitPower() const OVERRIDE
;
36 virtual bool IsPaired() const OVERRIDE
;
37 virtual bool IsConnected() const OVERRIDE
;
38 virtual bool IsConnectable() const OVERRIDE
;
39 virtual bool IsConnecting() const OVERRIDE
;
40 virtual UUIDList
GetUUIDs() const OVERRIDE
;
41 virtual bool ExpectingPinCode() const OVERRIDE
;
42 virtual bool ExpectingPasskey() const OVERRIDE
;
43 virtual bool ExpectingConfirmation() const OVERRIDE
;
45 PairingDelegate
* pairing_delegate
,
46 const base::Closure
& callback
,
47 const ConnectErrorCallback
& error_callback
) OVERRIDE
;
48 virtual void SetPinCode(const std::string
& pincode
) OVERRIDE
;
49 virtual void SetPasskey(uint32 passkey
) OVERRIDE
;
50 virtual void ConfirmPairing() OVERRIDE
;
51 virtual void RejectPairing() OVERRIDE
;
52 virtual void CancelPairing() OVERRIDE
;
53 virtual void Disconnect(
54 const base::Closure
& callback
,
55 const ErrorCallback
& error_callback
) OVERRIDE
;
56 virtual void Forget(const ErrorCallback
& error_callback
) OVERRIDE
;
57 virtual void ConnectToService(
58 const BluetoothUUID
& uuid
,
59 const ConnectToServiceCallback
& callback
,
60 const ConnectToServiceErrorCallback
& error_callback
) OVERRIDE
;
61 virtual void CreateGattConnection(
62 const GattConnectionCallback
& callback
,
63 const ConnectErrorCallback
& error_callback
) OVERRIDE
;
64 virtual void StartConnectionMonitor(
65 const base::Closure
& callback
,
66 const ErrorCallback
& error_callback
) OVERRIDE
;
68 // Returns the timestamp when the device was last seen during an inquiry.
69 // Returns nil if the device has never been seen during an inquiry.
70 NSDate
* GetLastInquiryUpdate();
72 // Returns the Bluetooth address for the |device|. The returned address has a
73 // normalized format (see below).
74 static std::string
GetDeviceAddress(IOBluetoothDevice
* device
);
77 // BluetoothDevice override
78 virtual std::string
GetDeviceName() const OVERRIDE
;
81 friend class BluetoothAdapterMac
;
83 // Implementation to read the host's transmit power level of type
84 // |power_level_type|.
85 int GetHostTransmitPower(
86 BluetoothHCITransmitPowerLevelType power_level_type
) const;
88 base::scoped_nsobject
<IOBluetoothDevice
> device_
;
90 DISALLOW_COPY_AND_ASSIGN(BluetoothDeviceMac
);
95 #endif // DEVICE_BLUETOOTH_BLUETOOTH_DEVICE_MAC_H_