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

Unified Diff: chrome/browser/chromeos/bluetooth/bluetooth_device.h

Issue 11075006: Moved bluetooth adapter files to device/bluetooth/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: renamed 'bluetooth' target to 'device_bluetooth'. Created 8 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/bluetooth/bluetooth_device.h
diff --git a/chrome/browser/chromeos/bluetooth/bluetooth_device.h b/chrome/browser/chromeos/bluetooth/bluetooth_device.h
deleted file mode 100644
index ddd4f80a0732619e0dd4a760193f103c76f566d4..0000000000000000000000000000000000000000
--- a/chrome/browser/chromeos/bluetooth/bluetooth_device.h
+++ /dev/null
@@ -1,318 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_H_
-#define CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_H_
-
-#include <string>
-#include <vector>
-
-#include "base/callback.h"
-#include "base/string16.h"
-#include "base/memory/ref_counted.h"
-
-namespace chromeos {
-
-class BluetoothServiceRecord;
-class BluetoothSocket;
-
-struct BluetoothOutOfBandPairingData;
-
-// BluetoothDevice represents a remote Bluetooth device, both its properties and
-// capabilities as discovered by a local adapter and actions that may be
-// performed on the remove device such as pairing, connection and disconnection.
-//
-// The class is instantiated and managed by the BluetoothAdapter class
-// and pointers should only be obtained from that class and not cached,
-// instead use the address() method as a unique key for a device.
-//
-// Since the lifecycle of BluetoothDevice instances is managed by
-// BluetoothAdapter, that class rather than this provides observer methods
-// for devices coming and going, as well as properties being updated.
-class BluetoothDevice {
- public:
- // Possible values that may be returned by GetDeviceType(), representing
- // different types of bluetooth device that we support or are aware of
- // decoded from the bluetooth class information.
- enum DeviceType {
- DEVICE_UNKNOWN,
- DEVICE_COMPUTER,
- DEVICE_PHONE,
- DEVICE_MODEM,
- DEVICE_AUDIO,
- DEVICE_CAR_AUDIO,
- DEVICE_VIDEO,
- DEVICE_PERIPHERAL,
- DEVICE_JOYSTICK,
- DEVICE_GAMEPAD,
- DEVICE_KEYBOARD,
- DEVICE_MOUSE,
- DEVICE_TABLET,
- DEVICE_KEYBOARD_MOUSE_COMBO
- };
-
- // Interface for observing changes from bluetooth devices.
- class Observer {
- public:
- virtual ~Observer() {}
-
- // TODO(keybuk): add observers for pairing and connection.
- };
-
- // Interface for negotiating pairing of bluetooth devices.
- class PairingDelegate {
- public:
- virtual ~PairingDelegate() {}
-
- // This method will be called when the Bluetooth daemon requires a
- // PIN Code for authentication of the device |device|, the delegate should
- // obtain the code from the user and call SetPinCode() on the device to
- // provide it, or RejectPairing() or CancelPairing() to reject or cancel
- // the request.
- //
- // PIN Codes are generally required for Bluetooth 2.0 and earlier devices
- // for which there is no automatic pairing or special handling.
- virtual void RequestPinCode(BluetoothDevice* device) = 0;
-
- // This method will be called when the Bluetooth daemon requires a
- // Passkey for authentication of the device |device|, the delegate should
- // obtain the passkey from the user (a numeric in the range 0-999999) and
- // call SetPasskey() on the device to provide it, or RejectPairing() or
- // CancelPairing() to reject or cancel the request.
- //
- // Passkeys are generally required for Bluetooth 2.1 and later devices
- // which cannot provide input or display on their own, and don't accept
- // passkey-less pairing.
- virtual void RequestPasskey(BluetoothDevice* device) = 0;
-
- // This method will be called when the Bluetooth daemon requires that the
- // user enter the PIN code |pincode| into the device |device| so that it
- // may be authenticated. The DismissDisplayOrConfirm() method
- // will be called to dismiss the display once pairing is complete or
- // cancelled.
- //
- // This is used for Bluetooth 2.0 and earlier keyboard devices, the
- // |pincode| will always be a six-digit numeric in the range 000000-999999
- // for compatibilty with later specifications.
- virtual void DisplayPinCode(BluetoothDevice* device,
- const std::string& pincode) = 0;
-
- // This method will be called when the Bluetooth daemon requires that the
- // user enter the Passkey |passkey| into the device |device| so that it
- // may be authenticated. The DismissDisplayOrConfirm() method will be
- // called to dismiss the display once pairing is complete or cancelled.
- //
- // This is used for Bluetooth 2.1 and later devices that support input
- // but not display, such as keyboards. The Passkey is a numeric in the
- // range 0-999999 and should be always presented zero-padded to six
- // digits.
- virtual void DisplayPasskey(BluetoothDevice* device,
- uint32 passkey) = 0;
-
- // This method will be called when the Bluetooth daemon requires that the
- // user confirm that the Passkey |passkey| is displayed on the screen
- // of the device |device| so that it may be authenticated. The delegate
- // should display to the user and ask for confirmation, then call
- // ConfirmPairing() on the device to confirm, RejectPairing() on the device
- // to reject or CancelPairing() on the device to cancel authentication
- // for any other reason.
- //
- // This is used for Bluetooth 2.1 and later devices that support display,
- // such as other computers or phones. The Passkey is a numeric in the
- // range 0-999999 and should be always present zero-padded to six
- // digits.
- virtual void ConfirmPasskey(BluetoothDevice* device,
- uint32 passkey) = 0;
-
- // This method will be called when any previous DisplayPinCode(),
- // DisplayPasskey() or ConfirmPasskey() request should be concluded
- // and removed from the user.
- virtual void DismissDisplayOrConfirm() = 0;
- };
-
- virtual ~BluetoothDevice();
-
- // Returns the Bluetooth of address the device. This should be used as
- // a unique key to identify the device and copied where needed.
- virtual const std::string& address() const;
-
- // Returns the name of the device suitable for displaying, this may
- // be a synthesied string containing the address and localized type name
- // if the device has no obtained name.
- virtual string16 GetName() const;
-
- // Returns the type of the device, limited to those we support or are
- // aware of, by decoding the bluetooth class information. The returned
- // values are unique, and do not overlap, so DEVICE_KEYBOARD is not also
- // DEVICE_PERIPHERAL.
- DeviceType GetDeviceType() const;
-
- // Indicates whether the device is paired to the adapter, whether or not
- // that pairing is permanent or temporary.
- virtual bool IsPaired() const = 0;
-
- // Indicates whether the device is visible to the adapter, this is not
- // mutually exclusive to being paired.
- virtual bool IsVisible() const;
-
- // Indicates whether the device is bonded to the adapter, bonding is
- // formed by pairing and exchanging high-security link keys so that
- // connections may be encrypted.
- virtual bool IsBonded() const;
-
- // Indicates whether the device is currently connected to the adapter
- // and at least one service available for use.
- virtual bool IsConnected() const;
-
- // Returns the services (as UUID strings) that this device provides.
- typedef std::vector<std::string> ServiceList;
- virtual const ServiceList& GetServices() const = 0;
-
- // The ErrorCallback is used for methods that can fail in which case it
- // is called, in the success case the callback is simply not called.
- typedef base::Callback<void()> ErrorCallback;
-
- // Returns the services (as BluetoothServiceRecord objects) that this device
- // provides.
- typedef ScopedVector<BluetoothServiceRecord> ServiceRecordList;
- typedef base::Callback<void(const ServiceRecordList&)> ServiceRecordsCallback;
- virtual void GetServiceRecords(const ServiceRecordsCallback& callback,
- const ErrorCallback& error_callback) = 0;
-
- // Indicates whether this device provides the given service. |uuid| should
- // be in canonical form (see bluetooth_utils::CanonicalUuid).
- virtual bool ProvidesServiceWithUUID(const std::string& uuid) const = 0;
-
- // The ProvidesServiceCallback is used by ProvidesServiceWithName to indicate
- // whether or not a matching service was found.
- typedef base::Callback<void(bool)> ProvidesServiceCallback;
-
- // Indicates whether this device provides the given service.
- virtual void ProvidesServiceWithName(
- const std::string& name,
- const ProvidesServiceCallback& callback) = 0;
-
- // Indicates whether the device is currently pairing and expecting a
- // PIN Code to be returned.
- virtual bool ExpectingPinCode() const = 0;
-
- // Indicates whether the device is currently pairing and expecting a
- // Passkey to be returned.
- virtual bool ExpectingPasskey() const = 0;
-
- // Indicates whether the device is currently pairing and expecting
- // confirmation of a displayed passkey.
- virtual bool ExpectingConfirmation() const = 0;
-
- // SocketCallback is used by ConnectToService to return a BluetoothSocket to
- // the caller, or NULL if there was an error. The socket will remain open
- // until the last reference to the returned BluetoothSocket is released.
- typedef base::Callback<void(scoped_refptr<BluetoothSocket>)>
- SocketCallback;
-
- // Initiates a connection to the device, pairing first if necessary.
- //
- // Method calls will be made on the supplied object |pairing_delegate|
- // to indicate what display, and in response should make method calls
- // back to the device object. Not all devices require user responses
- // during pairing, so it is normal for |pairing_delegate| to receive no
- // calls. To explicitly force a low-security connection without bonding,
- // pass NULL, though this is ignored if the device is already paired.
- //
- // If the request fails, |error_callback| will be called; otherwise,
- // |callback| is called when the request is complete.
- virtual void Connect(PairingDelegate* pairing_delegate,
- const base::Closure& callback,
- const ErrorCallback& error_callback) = 0;
-
- // Sends the PIN code |pincode| to the remote device during pairing.
- //
- // PIN Codes are generally required for Bluetooth 2.0 and earlier devices
- // for which there is no automatic pairing or special handling.
- virtual void SetPinCode(const std::string& pincode) = 0;
-
- // Sends the Passkey |passkey| to the remote device during pairing.
- //
- // Passkeys are generally required for Bluetooth 2.1 and later devices
- // which cannot provide input or display on their own, and don't accept
- // passkey-less pairing, and are a numeric in the range 0-999999.
- virtual void SetPasskey(uint32 passkey) = 0;
-
- // Confirms to the remote device during pairing that a passkey provided by
- // the ConfirmPasskey() delegate call is displayed on both devices.
- virtual void ConfirmPairing() = 0;
-
- // Rejects a pairing or connection request from a remote device.
- virtual void RejectPairing() = 0;
-
- // Cancels a pairing or connection attempt to a remote device.
- virtual void CancelPairing() = 0;
-
- // Disconnects the device, terminating the low-level ACL connection
- // and any application connections using it. Link keys and other pairing
- // information are not discarded, and the device object is not deleted.
- // If the request fails, |error_callback| will be called; otherwise,
- // |callback| is called when the request is complete.
- virtual void Disconnect(const base::Closure& callback,
- const ErrorCallback& error_callback) = 0;
-
- // Disconnects the device, terminating the low-level ACL connection
- // and any application connections using it, and then discards link keys
- // and other pairing information. The device object remainds valid until
- // returing from the calling function, after which it should be assumed to
- // have been deleted. If the request fails, |error_callback| will be called.
- // There is no callback for success beause this object is often deleted
- // before that callback would be called.
- virtual void Forget(const ErrorCallback& error_callback) = 0;
-
- // Attempts to open a socket to a service matching |uuid| on this device. If
- // the connection is successful, |callback| is called with a BluetoothSocket.
- // Otherwise |callback| is called with NULL. The socket is closed as soon as
- // all references to the BluetoothSocket are released. Note that the
- // BluetoothSocket object can outlive both this BluetoothDevice and the
- // BluetoothAdapter for this device.
- virtual void ConnectToService(const std::string& service_uuid,
- const SocketCallback& callback) = 0;
-
- // Sets the Out Of Band pairing data for this device to |data|. Exactly one
- // of |callback| or |error_callback| will be run.
- virtual void SetOutOfBandPairingData(
- const BluetoothOutOfBandPairingData& data,
- const base::Closure& callback,
- const ErrorCallback& error_callback) = 0;
-
- // Clears the Out Of Band pairing data for this device. Exactly one of
- // |callback| or |error_callback| will be run.
- virtual void ClearOutOfBandPairingData(
- const base::Closure& callback,
- const ErrorCallback& error_callback) = 0;
-
- protected:
- BluetoothDevice();
-
- // The Bluetooth class of the device, a bitmask that may be decoded using
- // https://www.bluetooth.org/Technical/AssignedNumbers/baseband.htm
- uint32 bluetooth_class_;
-
- // The name of the device, as supplied by the remote device.
- std::string name_;
-
- // The Bluetooth address of the device.
- std::string address_;
-
- // Tracked device state, updated by the adapter managing the lifecyle of
- // the device.
- bool visible_;
- bool bonded_;
- bool connected_;
-
- private:
- // Returns a localized string containing the device's bluetooth address and
- // a device type for display when |name_| is empty.
- string16 GetAddressWithLocalizedDeviceTypeName() const;
-};
-
-} // namespace chromeos
-
-#endif // CHROME_BROWSER_CHROMEOS_BLUETOOTH_BLUETOOTH_DEVICE_H_

Powered by Google App Engine
This is Rietveld 408576698