1 // Copyright 2014 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. 4 5 #ifndef CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_API_PAIRING_DELEGATE_H_ 6 #define CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_API_PAIRING_DELEGATE_H_ 7 8 #include <string> 9 10 #include "chrome/common/extensions/api/bluetooth_private.h" 11 #include "device/bluetooth/bluetooth_device.h" 12 13 namespace content { 14 class BrowserContext; 15 } 16 17 namespace extensions { 18 19 // A pairing delegate to dispatch incoming Bluetooth pairing events to the API 20 // event router. 21 class BluetoothApiPairingDelegate 22 : public device::BluetoothDevice::PairingDelegate { 23 public: 24 BluetoothApiPairingDelegate(const std::string& extension_id, 25 content::BrowserContext* browser_context); 26 virtual ~BluetoothApiPairingDelegate(); 27 28 // device::PairingDelegate overrides: 29 virtual void RequestPinCode(device::BluetoothDevice* device) OVERRIDE; 30 virtual void RequestPasskey(device::BluetoothDevice* device) OVERRIDE; 31 virtual void DisplayPinCode(device::BluetoothDevice* device, 32 const std::string& pincode) OVERRIDE; 33 virtual void DisplayPasskey(device::BluetoothDevice* device, 34 uint32 passkey) OVERRIDE; 35 virtual void KeysEntered(device::BluetoothDevice* device, 36 uint32 entered) OVERRIDE; 37 virtual void ConfirmPasskey(device::BluetoothDevice* device, 38 uint32 passkey) OVERRIDE; 39 virtual void AuthorizePairing(device::BluetoothDevice* device) OVERRIDE; 40 41 private: 42 // Dispatches a pairing event to the extension. 43 void DispatchPairingEvent( 44 const api::bluetooth_private::PairingEvent& pairing_event); 45 46 std::string extension_id_; 47 content::BrowserContext* browser_context_; 48 }; 49 50 } // namespace extensions 51 52 #endif // CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_BLUETOOTH_API_PAIRING_DELEGATE_H_ 53