mirror of
https://github.com/servo/servo.git
synced 2025-08-10 16:05:43 +01:00
WebBluetooth API classes
This commit is contained in:
parent
00628704ca
commit
e7d70cfabf
28 changed files with 999 additions and 28 deletions
15
components/script/dom/webidls/Bluetooth.webidl
Normal file
15
components/script/dom/webidls/Bluetooth.webidl
Normal file
|
@ -0,0 +1,15 @@
|
|||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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/. */
|
||||
|
||||
// https://webbluetoothcg.github.io/web-bluetooth/#bluetooth
|
||||
|
||||
interface Bluetooth {
|
||||
// Promise<BluetoothDevice> requestDevice(RequestDeviceOptions options);
|
||||
BluetoothDevice? requestDevice(/*RequestDeviceOptions options*/);
|
||||
};
|
||||
|
||||
// Bluetooth implements EventTarget;
|
||||
// Bluetooth implements CharacteristicEventHandlers;
|
||||
// Bluetooth implements ServiceEventHandlers;
|
|
@ -0,0 +1,22 @@
|
|||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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/. */
|
||||
|
||||
//https://webbluetoothcg.github.io/web-bluetooth/#bluetoothadvertisingdata
|
||||
|
||||
/*interface BluetoothManufacturerDataMap {
|
||||
readonly maplike<unsigned short, DataView>;
|
||||
};
|
||||
|
||||
interface BluetoothServiceDataMap {
|
||||
readonly maplike<UUID, DataView>;
|
||||
};*/
|
||||
|
||||
interface BluetoothAdvertisingData {
|
||||
readonly attribute unsigned short? appearance;
|
||||
readonly attribute byte? txPower;
|
||||
readonly attribute byte? rssi;
|
||||
// readonly attribute BluetoothManufacturerDataMap manufacturerData;
|
||||
// readonly attribute BluetoothServiceDataMap serviceData;
|
||||
};
|
|
@ -0,0 +1,18 @@
|
|||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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/. */
|
||||
|
||||
// https://webbluetoothcg.github.io/web-bluetooth/#characteristicproperties
|
||||
|
||||
interface BluetoothCharacteristicProperties {
|
||||
readonly attribute boolean broadcast;
|
||||
readonly attribute boolean read;
|
||||
readonly attribute boolean writeWithoutResponse;
|
||||
readonly attribute boolean write;
|
||||
readonly attribute boolean notify;
|
||||
readonly attribute boolean indicate;
|
||||
readonly attribute boolean authenticatedSignedWrites;
|
||||
readonly attribute boolean reliableWrite;
|
||||
readonly attribute boolean writableAuxiliaries;
|
||||
};
|
30
components/script/dom/webidls/BluetoothDevice.webidl
Normal file
30
components/script/dom/webidls/BluetoothDevice.webidl
Normal file
|
@ -0,0 +1,30 @@
|
|||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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/. */
|
||||
|
||||
// https://webbluetoothcg.github.io/web-bluetooth/#bluetoothdevice
|
||||
|
||||
// Allocation authorities for Vendor IDs:
|
||||
enum VendorIDSource {
|
||||
"bluetooth",
|
||||
"usb"
|
||||
};
|
||||
|
||||
interface BluetoothDevice {
|
||||
readonly attribute DOMString id;
|
||||
readonly attribute DOMString? name;
|
||||
readonly attribute BluetoothAdvertisingData adData;
|
||||
readonly attribute unsigned long? deviceClass;
|
||||
readonly attribute VendorIDSource? vendorIDSource;
|
||||
readonly attribute unsigned long? vendorID;
|
||||
readonly attribute unsigned long? productID;
|
||||
readonly attribute unsigned long? productVersion;
|
||||
readonly attribute BluetoothRemoteGATTServer gatt;
|
||||
// readonly attribute FrozenArray[] uuids;
|
||||
};
|
||||
|
||||
// BluetoothDevice implements EventTarget;
|
||||
// BluetoothDevice implements BluetoothDeviceEventHandlers;
|
||||
// BluetoothDevice implements CharacteristicEventHandlers;
|
||||
// BluetoothDevice implements ServiceEventHandlers;
|
|
@ -0,0 +1,25 @@
|
|||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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/. */
|
||||
|
||||
// https://webbluetoothcg.github.io/web-bluetooth/#bluetoothremotegattcharacteristic
|
||||
|
||||
interface BluetoothRemoteGATTCharacteristic {
|
||||
readonly attribute BluetoothRemoteGATTService service;
|
||||
readonly attribute DOMString uuid;
|
||||
readonly attribute BluetoothCharacteristicProperties properties;
|
||||
readonly attribute ByteString? value;
|
||||
BluetoothRemoteGATTDescriptor? getDescriptor(/*BluetoothDescriptorUUID descriptor*/);
|
||||
//Promise<BluetoothRemoteGATTDescriptor> getDescriptor(BluetoothDescriptorUUID descriptor);
|
||||
//Promise<sequence<BluetoothRemoteGATTDescriptor>>
|
||||
//getDescriptors(optional BluetoothDescriptorUUID descriptor);
|
||||
//Promise<DataView> readValue();
|
||||
ByteString readValue();
|
||||
//Promise<void> writeValue(BufferSource value);
|
||||
//Promise<void> startNotifications();
|
||||
//Promise<void> stopNotifications();
|
||||
};
|
||||
|
||||
//BluetootRemoteGATTCharacteristic implements EventTarget;
|
||||
//BluetootRemoteGATTCharacteristic implements CharacteristicEventHandlers;
|
|
@ -0,0 +1,16 @@
|
|||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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/. */
|
||||
|
||||
// http://webbluetoothcg.github.io/web-bluetooth/#bluetoothremotegattdescriptor
|
||||
|
||||
interface BluetoothRemoteGATTDescriptor {
|
||||
readonly attribute BluetoothRemoteGATTCharacteristic characteristic;
|
||||
readonly attribute DOMString uuid;
|
||||
readonly attribute ByteString? value;
|
||||
|
||||
ByteString readValue();
|
||||
//Promise<DataView> readValue();
|
||||
//Promise<void> writeValue(BufferSource value);
|
||||
};
|
|
@ -0,0 +1,17 @@
|
|||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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/. */
|
||||
|
||||
//https://webbluetoothcg.github.io/web-bluetooth/#bluetoothremotegattserver
|
||||
|
||||
interface BluetoothRemoteGATTServer {
|
||||
readonly attribute BluetoothDevice device;
|
||||
readonly attribute boolean connected;
|
||||
BluetoothRemoteGATTServer connect();
|
||||
void disconnect();
|
||||
BluetoothRemoteGATTService? getPrimaryService();
|
||||
//Promise<BluetoothRemoteGATTService> getPrimaryService(BluetoothServiceUUID service);
|
||||
//Promise<sequence<BluetoothRemoteGATTService>>getPrimaryServices(optional BluetoothServiceUUID service);
|
||||
//Promise<BluetoothRemoteGATTServer> connect();
|
||||
};
|
|
@ -0,0 +1,18 @@
|
|||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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/. */
|
||||
|
||||
// https://webbluetoothcg.github.io/web-bluetooth/#bluetoothremotegattservice
|
||||
|
||||
interface BluetoothRemoteGATTService {
|
||||
readonly attribute BluetoothDevice device;
|
||||
readonly attribute DOMString uuid;
|
||||
readonly attribute boolean isPrimary;
|
||||
BluetoothRemoteGATTCharacteristic? getCharacteristic(/*DOMString characteristic*/);
|
||||
//Promise<BluetoothRemoteGATTCharacteristic>getCharacteristic(BluetoothCharacteristicUUID characteristic);
|
||||
//Promise<sequence<BluetoothRemoteGATTCharacteristic>>
|
||||
//getCharacteristics(optional BluetoothCharacteristicUUID characteristic);
|
||||
//Promise<BluetoothRemoteGATTService>getIncludedService(BluetoothServiceUUID service);
|
||||
//Promise<sequence<BluetoothRemoteGATTService>>getIncludedServices(optional BluetoothServiceUUID service);
|
||||
};
|
21
components/script/dom/webidls/BluetoothUUID.webidl
Normal file
21
components/script/dom/webidls/BluetoothUUID.webidl
Normal file
|
@ -0,0 +1,21 @@
|
|||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* 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/. */
|
||||
|
||||
// https://webbluetoothcg.github.io/web-bluetooth/#bluetoothuuid
|
||||
|
||||
interface BluetoothUUID {
|
||||
[Throws]
|
||||
static UUID getService(BluetoothServiceUUID name);
|
||||
[Throws]
|
||||
static UUID getCharacteristic(BluetoothCharacteristicUUID name);
|
||||
[Throws]
|
||||
static UUID getDescriptor(BluetoothDescriptorUUID name);
|
||||
static UUID canonicalUUID([EnforceRange] unsigned long alias);
|
||||
};
|
||||
|
||||
typedef DOMString UUID;
|
||||
typedef (DOMString or unsigned long) BluetoothServiceUUID;
|
||||
typedef (DOMString or unsigned long) BluetoothCharacteristicUUID;
|
||||
typedef (DOMString or unsigned long) BluetoothDescriptorUUID;
|
|
@ -8,6 +8,7 @@ interface Navigator {
|
|||
// objects implementing this interface also implement the interfaces given below
|
||||
};
|
||||
Navigator implements NavigatorID;
|
||||
Navigator implements NavigatorBluetooth;
|
||||
//Navigator implements NavigatorLanguage;
|
||||
//Navigator implements NavigatorOnLine;
|
||||
//Navigator implements NavigatorContentUtils;
|
||||
|
@ -25,3 +26,8 @@ interface NavigatorID {
|
|||
boolean taintEnabled(); // constant false
|
||||
readonly attribute DOMString userAgent;
|
||||
};
|
||||
|
||||
[NoInterfaceObject]
|
||||
interface NavigatorBluetooth {
|
||||
readonly attribute Bluetooth bluetooth;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue