mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-13 18:27:35 +00:00
86 lines
2.8 KiB
Plaintext
86 lines
2.8 KiB
Plaintext
/* -*- 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/. */
|
|
|
|
dictionary GattCharacteristicProperties
|
|
{
|
|
boolean broadcast = false;
|
|
boolean read = false;
|
|
boolean writeNoResponse = false;
|
|
boolean write = false;
|
|
boolean notify = false;
|
|
boolean indicate = false;
|
|
boolean signedWrite = false;
|
|
boolean extendedProps = false;
|
|
};
|
|
|
|
dictionary GattPermissions
|
|
{
|
|
boolean read = false;
|
|
boolean readEncrypted = false;
|
|
boolean readEncryptedMITM = false;
|
|
boolean write = false;
|
|
boolean writeEncrypted = false;
|
|
boolean writeEncryptedMITM = false;
|
|
boolean writeSigned = false;
|
|
boolean writeSignedMITM = false;
|
|
};
|
|
|
|
/**
|
|
* BluetoothGattCharacteristic could be in the server role as a characteristic
|
|
* provided by a local GATT server, or in the client role as a characteristic
|
|
* provided by a remote GATT server.
|
|
*/
|
|
[CheckAnyPermissions="bluetooth"]
|
|
interface BluetoothGattCharacteristic
|
|
{
|
|
readonly attribute BluetoothGattService service;
|
|
[Cached, Pure]
|
|
readonly attribute sequence<BluetoothGattDescriptor> descriptors;
|
|
|
|
readonly attribute DOMString uuid;
|
|
readonly attribute unsigned short instanceId;
|
|
readonly attribute ArrayBuffer? value;
|
|
[Cached, Constant]
|
|
readonly attribute GattPermissions permissions;
|
|
[Cached, Constant]
|
|
readonly attribute GattCharacteristicProperties properties;
|
|
|
|
/**
|
|
* Read or write the value of this characteristic.
|
|
*
|
|
* If this charactersitic is in the client role, the value will be
|
|
* read from or written to the remote GATT server. Otherwise, the local value
|
|
* will be read/written.
|
|
*/
|
|
[NewObject]
|
|
Promise<ArrayBuffer> readValue();
|
|
[NewObject]
|
|
Promise<void> writeValue(ArrayBuffer value);
|
|
|
|
/**
|
|
* Start or stop subscribing notifications of this characteristic from the
|
|
* remote GATT server.
|
|
*
|
|
* This API will be rejected if this characteristic is in the server role.
|
|
*/
|
|
[NewObject]
|
|
Promise<void> startNotifications();
|
|
[NewObject]
|
|
Promise<void> stopNotifications();
|
|
|
|
/**
|
|
* Add a BLE descriptor to the local GATT characteristic.
|
|
*
|
|
* The promise will be rejected if this characteristic is in the client role
|
|
* since a GATT client is not allowed to manipulate the descriptor list in a
|
|
* remote GATT server.
|
|
*/
|
|
[NewObject]
|
|
Promise<BluetoothGattDescriptor> addDescriptor(DOMString uuid,
|
|
GattPermissions permissions,
|
|
ArrayBuffer value);
|
|
};
|