Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3320)

Unified Diff: chrome/common/extensions/api/usb.idl

Issue 268713013: Move chrome.usb to //extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/common/extensions/api/api.gyp ('k') | extensions/DEPS » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/extensions/api/usb.idl
diff --git a/chrome/common/extensions/api/usb.idl b/chrome/common/extensions/api/usb.idl
deleted file mode 100644
index 6b6b74c54699192a79b77fd9409b550a767af3c0..0000000000000000000000000000000000000000
--- a/chrome/common/extensions/api/usb.idl
+++ /dev/null
@@ -1,307 +0,0 @@
-// Copyright (c) 2012 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.
-
-// Use the <code>chrome.usb</code> API to interact with connected USB
-// devices. This API provides access to USB operations from within the context
-// of an app. Using this API, apps can function as drivers for hardware devices.
-namespace usb {
-
- // Direction, Recipient, RequestType, and TransferType all map to their
- // namesakes within the USB specification.
- enum Direction {in, out};
- enum Recipient {device, _interface, endpoint, other};
- enum RequestType {standard, class, vendor, reserved};
- enum TransferType {control, interrupt, isochronous, bulk};
-
- // For isochronous mode, SynchronizationType and UsageType map to their
- // namesakes within the USB specification.
- enum SynchronizationType {asynchronous, adaptive, synchronous};
- enum UsageType {data, feedback, explicitFeedback};
-
- // Returned by |getDevices| to identify a connected USB device.
- dictionary Device {
- // The id of the USB device. It remains unchanged until the device is
- // unplugged.
- long device;
- long vendorId;
- long productId;
- };
-
- // Returned by |openDevice| to be used for USB communication.
- // Every time a device is opened, a new connection handle is created.
- //
- // A connection handle represents the underlying data structure that contains
- // all the data we need to communicate with a USB device, including the status
- // of interfaces, the pending transfers, the descriptors, and etc. A connectin
- // handle id is different from a USB device id.
- //
- // All connection handles can work together if the device allows it.
- // The connection handle will be automatically closed when the app is reloaded
- // or suspended.
- //
- // When a connection handle is closed, all the interfaces it claimed will be
- // released and all the transfers in progress will be canceled immediately.
- dictionary ConnectionHandle {
- // The id of the USB connection handle.
- long handle;
- long vendorId;
- long productId;
- };
-
- dictionary EndpointDescriptor {
- long address;
- TransferType type;
- Direction direction;
- long maximumPacketSize;
-
- // Used for isochronous mode.
- SynchronizationType? synchronization;
- UsageType? usage;
-
- // If this is an interrupt endpoint, this will be 1-255.
- long? pollingInterval;
- };
-
- dictionary InterfaceDescriptor {
- long interfaceNumber;
- long alternateSetting;
- long interfaceClass;
- long interfaceSubclass;
- long interfaceProtocol;
- DOMString? description;
- EndpointDescriptor[] endpoints;
- };
-
- // ControlTransferInfo represents that parameters to a single USB control
- // transfer.
- dictionary ControlTransferInfo {
- // The direction of this transfer.
- Direction direction;
-
- // The intended recipient for this transfer.
- Recipient recipient;
-
- // The type of this request.
- RequestType requestType;
-
- long request;
- long value;
- long index;
-
- // If this transfer is an input transfer, then this field must be set to
- // indicate the expected data length. If this is an output transfer, then
- // this field is ignored.
- long? length;
-
- // The data payload carried by this transfer. If this is an output transfer
- // then this field must be set.
- ArrayBuffer? data;
- };
-
- // GenericTransferInfo is used by both bulk and interrupt transfers to
- // specify the parameters of the transfer.
- dictionary GenericTransferInfo {
- // The direction of this transfer.
- Direction direction;
-
- long endpoint;
-
- // If this is an input transfer then this field indicates the size of the
- // input buffer. If this is an output transfer then this field is ignored.
- long? length;
-
- // If this is an output transfer then this field must be populated.
- // Otherwise, it will be ignored.
- ArrayBuffer? data;
- };
-
- // IsochronousTransferInfo describes a single multi-packet isochronous
- // transfer.
- dictionary IsochronousTransferInfo {
- // All of the normal transfer parameters are encapsulated in the
- // transferInfo parameters. Note that the data specified in this parameter
- // block is split along packetLength boundaries to form the individual
- // packets of the transfer.
- GenericTransferInfo transferInfo;
-
- // The total number of packets in this transfer.
- long packets;
-
- // The length of each of the packets in this transfer.
- long packetLength;
- };
-
- dictionary TransferResultInfo {
- // A value of 0 indicates that the transfer was a success. Other values
- // indicate failure.
- long? resultCode;
-
- // If the transfer was an input transfer then this field will contain all
- // of the input data requested.
- ArrayBuffer? data;
- };
-
- // Describes the properties of devices which are found via |getDevices|.
- dictionary EnumerateDevicesOptions {
- long vendorId;
- long productId;
- };
-
- // Describes the properties of devices which are found via |findDevices|.
- dictionary EnumerateDevicesAndRequestAccessOptions {
- long vendorId;
- long productId;
- // The interface id to request access against.
- // Only available on ChromeOS. It has no effect on other platforms.
- long? interfaceId;
- };
-
- callback VoidCallback = void ();
- callback GetDevicesCallback = void (Device[] devices);
- callback RequestAccessCallback = void (boolean sucess);
- callback OpenDeviceCallback = void (ConnectionHandle handle);
- callback FindDevicesCallback = void (ConnectionHandle[] handles);
- callback ListInterfacesCallback = void (InterfaceDescriptor[] descriptors);
- callback CloseDeviceCallback = void ();
- callback TransferCallback = void (TransferResultInfo info);
- callback ResetDeviceCallback = void(boolean result);
-
- interface Functions {
- // Lists USB devices specified by vendorId/productId/interfaceId tuple.
- // |options|: The properties to search for on target devices.
- // |callback|: Invoked with a list of |Device|s on complete.
- static void getDevices(EnumerateDevicesOptions options,
- GetDevicesCallback callback);
-
- // This method is ChromeOS specific. Calling this method on other platforms
- // will fail.
- // Requests access from the permission broker to an OS claimed device if the
- // given interface on the device is not claimed.
- //
- // |device|: The device to request access to.
- // |interfaceId|:
- static void requestAccess(Device device,
- long interfaceId,
- RequestAccessCallback callback);
-
- // Opens a USB device returned by |getDevices|.
- // |device|: The device to open.
- // |callback|: Invoked with the created ConnectionHandle on complete.
- static void openDevice(Device device, OpenDeviceCallback callback);
-
- // Finds USB devices specified by the vendorId/productId/interfaceId tuple
- // and, if permissions allow, opens them for use.
- //
- // On Chrome OS, you can specify the interfaceId. In that case the method
- // will request access from permission broker in the same way as in
- // |requestUsbAcess|.
- //
- // If the access request is rejected, or the device is failed to be opened,
- // its connection handle will not be created or returned.
- //
- // Calling this method is equivalent to calling |getDevices| followed by
- // a series of |requestAccess| (if it is on ChromeOs) and |openDevice|
- // calls, and returning all the successfully opened connection handles.
- //
- // |options|: The properties to search for on target devices.
- // |callback|: Invoked with the opened ConnectionHandle on complete.
- static void findDevices(EnumerateDevicesAndRequestAccessOptions options,
- FindDevicesCallback callback);
-
- // Closes a connection handle. Invoking operations on a device after it
- // has been closed is a safe operation, but causes no action to be taken.
- // |handle|: The connection handle to close.
- // |callback|: The callback to invoke once the device is closed.
- static void closeDevice(ConnectionHandle handle,
- optional CloseDeviceCallback callback);
-
- // Lists all the interfaces on the USB device.
- // |handle|: The device from which the interfaces should be listed.
- // |callback|: The callback to invoke when the interfaces are enumerated.
- static void listInterfaces(ConnectionHandle handle,
- ListInterfacesCallback callback);
-
- // Claims an interface on the specified USB device.
- // Before you can transfer data with endpoints, you must claim their parent
- // interfaces. Only one connection handle on the same host can claim each
- // interface. If the interface is already claimed, this call will fail.
- //
- // You shall call releaseInterface when the interface is not needed anymore.
- //
- // |handle|: The device on which the interface is to be claimed.
- // |interface|: The interface number to be claimed.
- // |callback|: The callback to invoke once the interface is claimed.
- static void claimInterface(ConnectionHandle handle, long interfaceNumber,
- VoidCallback callback);
-
- // Releases a claim to an interface on the provided device.
- // |handle|: The device on which the interface is to be released.
- // |interface|: The interface number to be released.
- // |callback|: The callback to invoke once the interface is released.
- static void releaseInterface(ConnectionHandle handle, long interfaceNumber,
- VoidCallback callback);
-
- // Selects an alternate setting on a previously claimed interface on a
- // device.
- // |handle|: The device on which the interface settings are to be set.
- // |interface|: The interface number to be set.
- // |alternateSetting|: The alternate setting to set.
- // |callback|: The callback to invoke once the interface setting is set.
- static void setInterfaceAlternateSetting(ConnectionHandle handle,
- long interfaceNumber,
- long alternateSetting,
- VoidCallback callback);
-
- // Performs a control transfer on the specified device. See the
- // ControlTransferInfo structure for the parameters required to make a
- // transfer.
- //
- // Conceptually control transfer talks to the device itself. You do not need
- // to claim interface 0 to perform a control transfer.
- //
- // |handle|: A connection handle to make the transfer on.
- // |transferInfo|: The parameters to the transfer. See ControlTransferInfo.
- // |callback|: Invoked once the transfer has completed.
- static void controlTransfer(ConnectionHandle handle,
- ControlTransferInfo transferInfo,
- TransferCallback callback);
-
- // Performs a bulk transfer on the specified device.
- // |handle|: A connection handle to make the transfer on.
- // |transferInfo|: The parameters to the transfer. See GenericTransferInfo.
- // |callback|: Invoked once the transfer has completed.
- static void bulkTransfer(ConnectionHandle handle,
- GenericTransferInfo transferInfo,
- TransferCallback callback);
-
- // Performs an interrupt transfer on the specified device.
- // |handle|: A connection handle to make the transfer on.
- // |transferInfo|: The parameters to the transfer. See GenericTransferInfo.
- // |callback|: Invoked once the transfer has completed.
- static void interruptTransfer(ConnectionHandle handle,
- GenericTransferInfo transferInfo,
- TransferCallback callback);
-
- // Performs an isochronous transfer on the specific device.
- // |handle|: A connection handle to make the transfer on.
- // |transferInfo|: The parameters to the transfer. See
- // IsochronousTransferInfo.
- // |callback|: Invoked once the transfer has been completed.
- static void isochronousTransfer(ConnectionHandle handle,
- IsochronousTransferInfo transferInfo,
- TransferCallback callback);
-
- // Tries to reset the USB device and restores it to the previous status.
- // If the reset fails, the given connection handle will be closed and the
- // USB device will appear to be disconnected then reconnected.
- // In that case you must call |getDevices| or |findDevices| again to acquire
- // the device.
- //
- // |handle|: A connection handle to reset.
- // |callback|: Invoked once the device is reset with a boolean indicating
- // whether the reset is completed successfully.
- static void resetDevice(ConnectionHandle handle,
- ResetDeviceCallback callback);
- };
-};
« no previous file with comments | « chrome/common/extensions/api/api.gyp ('k') | extensions/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698