| Index: extensions/common/api/hid.idl
|
| diff --git a/extensions/common/api/hid.idl b/extensions/common/api/hid.idl
|
| index c6bb316311968db0d462bea3e9e8464635854e3a..efdace17c9d4406d12d5e3276b875191953c8ca3 100644
|
| --- a/extensions/common/api/hid.idl
|
| +++ b/extensions/common/api/hid.idl
|
| @@ -6,33 +6,29 @@
|
| // This API provides access to HID operations from within the context of an app.
|
| // Using this API, apps can function as drivers for hardware devices.
|
| namespace hid {
|
| - // HID top-level collection attributes.
|
| - // Each enumerated device interface exposes an array of these objects.
|
| - // |usagePage|: HID usage page identifier.
|
| - // |usage|: Page-defined usage identifier.
|
| - // |reportIds|: Report IDs which belong to the collection and to its children.
|
| dictionary HidCollectionInfo {
|
| + // HID usage page identifier.
|
| long usagePage;
|
| + // Page-defined usage identifier.
|
| long usage;
|
| + // Report IDs which belong to the collection and to its children.
|
| long[] reportIds;
|
| };
|
|
|
| - // Returned by <code>getDevices</code> functions to describes a connected HID
|
| - // device. Use <code>connect</code> to connect to any of the returned devices.
|
| - // |deviceId|: Device opaque ID.
|
| - // |vendorId|: Vendor ID.
|
| - // |productId|: Product ID.
|
| - // |collections|: Top-level collections from this device's report descriptor.
|
| - // |maxInputReportSize|: Top-level collection's max input report size.
|
| - // |maxOutputReportSize|: Top-level collection's max output report size.
|
| - // |maxFeatureReportSize|: Top-level collection's max feature report size.
|
| - dictionary HidDeviceInfo {
|
| + [noinline_doc] dictionary HidDeviceInfo {
|
| + // Device opaque ID.
|
| long deviceId;
|
| + // Vendor ID.
|
| long vendorId;
|
| + // Product ID.
|
| long productId;
|
| + // Top-level collections from this device's report descriptors.
|
| HidCollectionInfo[] collections;
|
| + // Top-level collection's maximum input report size.
|
| long maxInputReportSize;
|
| + // Top-level collection's maximum output report size.
|
| long maxOutputReportSize;
|
| + // Top-level collection's maximum feature report size.
|
| long maxFeatureReportSize;
|
| };
|
|
|
| @@ -42,48 +38,54 @@ namespace hid {
|
| long connectionId;
|
| };
|
|
|
| - // Searching criteria to enumerate devices with.
|
| + [noinline_doc] dictionary DeviceFilter {
|
| + // Device vendor ID.
|
| + long? vendorId;
|
| + // Device product ID, only checked only if the vendor ID matches.
|
| + long? productId;
|
| + // HID usage page identifier.
|
| + long? usagePage;
|
| + // HID usage identifier, checked only if the HID usage page matches.
|
| + long? usage;
|
| + };
|
| +
|
| dictionary GetDevicesOptions {
|
| - long vendorId;
|
| - long productId;
|
| + [deprecated="Equivalent to setting $(ref:DeviceFilter.vendorId)."]
|
| + long? vendorId;
|
| + [deprecated="Equivalent to setting $(ref:DeviceFilter.productId)."]
|
| + long? productId;
|
| + // A device matching any given filter will be returned. An empty filter list
|
| + // will return all devices the app has permission for.
|
| + DeviceFilter[]? filters;
|
| };
|
|
|
| callback GetDevicesCallback = void (HidDeviceInfo[] devices);
|
| callback ConnectCallback = void (HidConnectInfo connection);
|
| callback DisconnectCallback = void ();
|
|
|
| - // The callback to be invoked when a <code>receive</code> call is finished.
|
| // |reportId|: The ID of the report.
|
| // |data|: The content of the report.
|
| callback ReceiveCallback = void (long reportId, ArrayBuffer data);
|
|
|
| - // The callback to be invoked when a <code>receiveFeatureReport</code> call
|
| - // is finished.
|
| // |data|: The content of the report.
|
| callback ReceiveFeatureReportCallback = void (ArrayBuffer data);
|
|
|
| - // The callback to be invoked when a <code>send</code> or
|
| - // <code>sendFeatureReport</code> call is finished.
|
| callback SendCallback = void();
|
|
|
| interface Functions {
|
| - // Enumerate all the connected HID devices specified by the vendorId/
|
| - // productId/interfaceId tuple.
|
| + // Enumerate connected HID devices.
|
| // |options|: The properties to search for on target devices.
|
| - // |callback|: Invoked with the <code>HidDeviceInfo</code> array on success.
|
| static void getDevices(GetDevicesOptions options,
|
| GetDevicesCallback callback);
|
|
|
| // Open a connection to an HID device for communication.
|
| // |deviceId|: The ID of the device to open.
|
| - // |callback|: Invoked with an <code>HidConnectInfo</code>.
|
| static void connect(long deviceId,
|
| ConnectCallback callback);
|
|
|
| // Disconnect from a device. Invoking operations on a device after calling
|
| // this is safe but has no effect.
|
| // |connectionId|: The connection to close.
|
| - // |callback|: The callback to invoke once the device is closed.
|
| static void disconnect(long connectionId,
|
| optional DisconnectCallback callback);
|
|
|
| @@ -91,7 +93,6 @@ namespace hid {
|
| //
|
| // Input reports are returned to the host through the INTERRUPT IN endpoint.
|
| // |connectionId|: The connection from which to receive a report.
|
| - // |callback|: The callback to invoke with received report.
|
| static void receive(long connectionId,
|
| ReceiveCallback callback);
|
|
|
| @@ -103,7 +104,6 @@ namespace hid {
|
| // |connectionId|: The connection to which to send a report.
|
| // |reportId|: The report ID to use, or <code>0</code> if none.
|
| // |data|: The report data.
|
| - // |callback|: The callback to invoke once the write is finished.
|
| static void send(long connectionId,
|
| long reportId,
|
| ArrayBuffer data,
|
| @@ -113,7 +113,6 @@ namespace hid {
|
| //
|
| // |connectionId|: The connection to read Input report from.
|
| // |reportId|: The report ID, or zero if none.
|
| - // |callback|: The callback to invoke once the write is finished.
|
| static void receiveFeatureReport(long connectionId,
|
| long reportId,
|
| ReceiveFeatureReportCallback callback);
|
| @@ -125,7 +124,6 @@ namespace hid {
|
| // |connectionId|: The connection to read Input report from.
|
| // |reportId|: The report ID to use, or <code>0</code> if none.
|
| // |data|: The report data.
|
| - // |callback|: The callback to invoke once the write is finished.
|
| static void sendFeatureReport(long connectionId,
|
| long reportId,
|
| ArrayBuffer data,
|
|
|