mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
132 lines
4.2 KiB
Plaintext
132 lines
4.2 KiB
Plaintext
|
// Copyright 2016 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.
|
||
|
|
||
|
module bluetooth.mojom;
|
||
|
|
||
|
import "device/bluetooth/public/mojom/uuid.mojom";
|
||
|
|
||
|
// Values representing the possible properties of a characteristic, which
|
||
|
// define how the characteristic can be used. Each of these properties serve
|
||
|
// a role as defined in the Bluetooth Specification.
|
||
|
// |EXTENDED_PROPERTIES| is a special property that, if present,
|
||
|
// indicates that there is a characteristic descriptor (namely the
|
||
|
// "Characteristic Extended Properties Descriptor" with UUID 0x2900) that
|
||
|
// contains additional properties pertaining to the characteristic.
|
||
|
// The properties |RELIABLE_WRITE| and |WRITABLE_AUXILIARIES| are retrieved from
|
||
|
// that characteristic.
|
||
|
// TODO(crbug.com/684168): Remove assignment of values when this is automated.
|
||
|
enum Property {
|
||
|
NONE = 0,
|
||
|
BROADCAST = 1,
|
||
|
READ = 2,
|
||
|
WRITE_WITHOUT_RESPONSE = 4,
|
||
|
WRITE = 8,
|
||
|
NOTIFY = 16,
|
||
|
INDICATE = 32,
|
||
|
AUTHENTICATED_SIGNED_WRITES = 64,
|
||
|
EXTENDED_PROPERTIES = 128,
|
||
|
RELIABLE_WRITE = 256,
|
||
|
WRITABLE_AUXILIARIES = 512,
|
||
|
READ_ENCRYPTED = 1024,
|
||
|
WRITE_ENCRYPTED = 2048,
|
||
|
READ_ENCRYPTED_AUTHENTICATED = 4096,
|
||
|
WRITE_ENCRYPTED_AUTHENTICATED = 8192
|
||
|
};
|
||
|
|
||
|
enum GattResult {
|
||
|
SUCCESS,
|
||
|
UNKNOWN,
|
||
|
FAILED,
|
||
|
IN_PROGRESS,
|
||
|
INVALID_LENGTH,
|
||
|
NOT_PERMITTED,
|
||
|
NOT_AUTHORIZED,
|
||
|
NOT_PAIRED,
|
||
|
NOT_SUPPORTED,
|
||
|
SERVICE_NOT_FOUND,
|
||
|
CHARACTERISTIC_NOT_FOUND,
|
||
|
DESCRIPTOR_NOT_FOUND
|
||
|
};
|
||
|
|
||
|
// TODO(crbug.com/657632): Remove when numerical values can be optional.
|
||
|
struct RSSIWrapper {
|
||
|
int8 value;
|
||
|
};
|
||
|
|
||
|
struct DeviceInfo {
|
||
|
string? name;
|
||
|
string name_for_display;
|
||
|
string address;
|
||
|
bool is_gatt_connected;
|
||
|
RSSIWrapper? rssi;
|
||
|
};
|
||
|
|
||
|
struct ServiceInfo {
|
||
|
string id;
|
||
|
UUID uuid;
|
||
|
bool is_primary;
|
||
|
};
|
||
|
|
||
|
struct CharacteristicInfo {
|
||
|
string id;
|
||
|
UUID uuid;
|
||
|
uint32 properties;
|
||
|
array<uint8> last_known_value;
|
||
|
};
|
||
|
|
||
|
struct DescriptorInfo {
|
||
|
string id;
|
||
|
UUID uuid;
|
||
|
array<uint8> last_known_value;
|
||
|
};
|
||
|
|
||
|
interface Device {
|
||
|
// Disconnects and deletes the Device.
|
||
|
Disconnect();
|
||
|
|
||
|
// Gets basic information about the device. Returns null, if no device is
|
||
|
// available.
|
||
|
GetInfo() => (DeviceInfo? info);
|
||
|
|
||
|
// Gets the GATT Services in this device's GATT Server.
|
||
|
GetServices() => (array<ServiceInfo> services);
|
||
|
|
||
|
// Gets the GATT Characteristics in the GATT Service with |service_id|.
|
||
|
// If |characteristics| is null, an error occured while attempting to retrieve
|
||
|
// the array of characteristics. If |characteristics| is empty, this simply
|
||
|
// means that no characteristics were found.
|
||
|
GetCharacteristics(string service_id) =>
|
||
|
(array<CharacteristicInfo>? characteristics);
|
||
|
|
||
|
// Reads the value for the GATT Characteristic with |characteristic_id| in
|
||
|
// the GATT Service with |service_id|.
|
||
|
ReadValueForCharacteristic(string service_id, string characteristic_id) =>
|
||
|
(GattResult result, array<uint8>? value);
|
||
|
|
||
|
// Writes the |value| to the GATT Characteristic with |characteristic_id| in
|
||
|
// the GATT Service with |service_id|.
|
||
|
WriteValueForCharacteristic(string service_id, string characteristic_id,
|
||
|
array<uint8> value) => (GattResult result);
|
||
|
|
||
|
// Gets the GATT Descriptors of the GATT Characteristic with matching
|
||
|
// |characteristic_id| in the GATT Service with matching |service_id|.
|
||
|
// If |descriptors| is null, an error occured while attempting to retrieve
|
||
|
// the array of descriptors. If |descriptors| is empty, this simply
|
||
|
// means that no descriptors were found.
|
||
|
GetDescriptors(string service_id, string characteristic_id) =>
|
||
|
(array<DescriptorInfo>? descriptors);
|
||
|
|
||
|
// Reads the value for the GATT Descriptor with |descriptor_id| in the GATT
|
||
|
// Characteristic with |characteristic_id| in the GATT Service with
|
||
|
// |service_id|.
|
||
|
ReadValueForDescriptor(string service_id, string characteristic_id,
|
||
|
string descriptor_id) => (GattResult result, array<uint8>? value);
|
||
|
|
||
|
// Writes the |value| for the GATT Descriptor with |descriptor_id| in the GATT
|
||
|
// Characteristic with |characteristic_id| in the GATT Service with
|
||
|
// |service_id|.
|
||
|
WriteValueForDescriptor(string service_id, string characteristic_id,
|
||
|
string descriptor_id, array<uint8> value) => (GattResult result);
|
||
|
};
|