/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */ /* vim: set ts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsIDOMEventTarget.idl" interface nsIDOMDOMRequest; interface nsIDOMBlob; interface nsIDOMBluetoothDevice; [scriptable, builtinclass, uuid(ad42ba9f-4c30-4ed5-80c2-8b8520a50e0b)] interface nsIDOMBluetoothAdapter : nsIDOMEventTarget { readonly attribute DOMString address; [binaryname(AdapterClass)] readonly attribute unsigned long class; readonly attribute bool enabled; readonly attribute bool discovering; [implicit_jscontext] readonly attribute jsval devices; [implicit_jscontext] readonly attribute jsval uuids; readonly attribute DOMString name; readonly attribute bool discoverable; // Unit: sec readonly attribute unsigned long discoverableTimeout; nsIDOMDOMRequest setName(in DOMString name); nsIDOMDOMRequest setDiscoverable(in bool discoverable); nsIDOMDOMRequest setDiscoverableTimeout(in unsigned long timeout); nsIDOMDOMRequest startDiscovery(); nsIDOMDOMRequest stopDiscovery(); nsIDOMDOMRequest pair(in nsIDOMBluetoothDevice aDevice); nsIDOMDOMRequest unpair(in nsIDOMBluetoothDevice aDevice); nsIDOMDOMRequest getPairedDevices(); nsIDOMDOMRequest setPinCode(in DOMString aDeviceAddress, in DOMString aPinCode); nsIDOMDOMRequest setPasskey(in DOMString aDeviceAddress, in unsigned long aPasskey); nsIDOMDOMRequest setPairingConfirmation(in DOMString aDeviceAddress, in bool aConfirmation); nsIDOMDOMRequest setAuthorization(in DOMString aDeviceAddress, in bool aAllow); /** * Connect/Disconnect to a specific service of a target remote device. * To check the value of service UUIDs, please check "Bluetooth Assigned * Numbers" / "Service Discovery Protocol" for more information. * * @param aDeviceAddress Remote device address * @param aProfile 2-octets service UUID */ nsIDOMDOMRequest connect(in DOMString aDeviceAddress, in unsigned short aProfile); nsIDOMDOMRequest disconnect(in unsigned short aProfile); // One device can only send one file at a time nsIDOMDOMRequest sendFile(in DOMString aDeviceAddress, in nsIDOMBlob aBlob); nsIDOMDOMRequest stopSendingFile(in DOMString aDeviceAddress); // Fired when discoverying and any device is discovered. [implicit_jscontext] attribute jsval ondevicefound; // Fired when any device is out of discoverable range. [implicit_jscontext] attribute jsval ondevicedisappeared; // Fired when any device is created. [implicit_jscontext] attribute jsval ondevicecreated; // Fired when a property of the adapter is changed [implicit_jscontext] attribute jsval onpropertychanged; // Pairing related events [implicit_jscontext] attribute jsval onrequestconfirmation; [implicit_jscontext] attribute jsval onrequestpincode; [implicit_jscontext] attribute jsval onrequestpasskey; [implicit_jscontext] attribute jsval onauthorize; [implicit_jscontext] attribute jsval oncancel; };