OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 namespace usb { | 5 namespace usb { |
6 | 6 |
7 // Direction, Recipient and RequestType all map to their namesakes within the | 7 // Direction, Recipient, RequestType, and TransferType all map to their |
8 // USB specification. | 8 // namesakes within the USB specification. |
9 enum Direction {in, out}; | 9 enum Direction {in, out}; |
10 enum Recipient {device, _interface, endpoint, other}; | 10 enum Recipient {device, _interface, endpoint, other}; |
11 enum RequestType {standard, class, vendor, reserved}; | 11 enum RequestType {standard, class, vendor, reserved}; |
| 12 enum TransferType {control, interrupt, isochronous, bulk}; |
| 13 |
| 14 // For isochronous mode, SynchronizationType and UsageType map to their |
| 15 // namesakes within the USB specification. |
| 16 enum SynchronizationType {asynchronous, adaptive, synchronous}; |
| 17 enum UsageType {data, feedback, explicitFeedback}; |
12 | 18 |
13 // A Device encapsulates everything that is needed to communicate with a USB | 19 // A Device encapsulates everything that is needed to communicate with a USB |
14 // device. They are returned by findDevice calls and have all of their | 20 // device. They are returned by findDevice calls and have all of their |
15 // fields populated before being returned. | 21 // fields populated before being returned. |
16 dictionary Device { | 22 dictionary Device { |
17 long handle; | 23 long handle; |
18 long vendorId; | 24 long vendorId; |
19 long productId; | 25 long productId; |
20 }; | 26 }; |
21 | 27 |
| 28 dictionary EndpointDescriptor { |
| 29 long address; |
| 30 TransferType type; |
| 31 Direction direction; |
| 32 long maximumPacketSize; |
| 33 |
| 34 // Used for isochronous mode. |
| 35 SynchronizationType? synchronization; |
| 36 UsageType? usage; |
| 37 |
| 38 // If this is an interrupt endpoint, this will be 1-255 |
| 39 long? pollingInterval; |
| 40 }; |
| 41 |
| 42 dictionary InterfaceDescriptor { |
| 43 long interfaceNumber; |
| 44 long alternateSetting; |
| 45 long interfaceClass; |
| 46 long interfaceSubclass; |
| 47 long interfaceProtocol; |
| 48 DOMString? description; |
| 49 EndpointDescriptor[] endpoints; |
| 50 }; |
| 51 |
22 // ControlTransferInfo represents that parameters to a single USB control | 52 // ControlTransferInfo represents that parameters to a single USB control |
23 // transfer. | 53 // transfer. |
24 dictionary ControlTransferInfo { | 54 dictionary ControlTransferInfo { |
25 // The direction of this transfer. | 55 // The direction of this transfer. |
26 Direction direction; | 56 Direction direction; |
27 | 57 |
28 // The intended recipient for this transfer. | 58 // The intended recipient for this transfer. |
29 Recipient recipient; | 59 Recipient recipient; |
30 | 60 |
31 // The type of this request. | 61 // The type of this request. |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 | 120 |
91 // FindDevicesOptions describes the properties of devices which are found and | 121 // FindDevicesOptions describes the properties of devices which are found and |
92 // opened via findDevices. | 122 // opened via findDevices. |
93 dictionary FindDevicesOptions { | 123 dictionary FindDevicesOptions { |
94 long vendorId; | 124 long vendorId; |
95 long productId; | 125 long productId; |
96 }; | 126 }; |
97 | 127 |
98 callback VoidCallback = void (); | 128 callback VoidCallback = void (); |
99 callback FindDevicesCallback = void (Device[] device); | 129 callback FindDevicesCallback = void (Device[] device); |
| 130 callback ListInterfacesCallback = void (InterfaceDescriptor[] descriptors); |
100 callback CloseDeviceCallback = void (); | 131 callback CloseDeviceCallback = void (); |
101 callback TransferCallback = void (TransferResultInfo info); | 132 callback TransferCallback = void (TransferResultInfo info); |
102 callback ResetDeviceCallback = void(boolean result); | 133 callback ResetDeviceCallback = void(boolean result); |
103 | 134 |
104 interface Functions { | 135 interface Functions { |
105 // Finds the first instance of the USB device specified by the vendorId/ | 136 // Finds the first instance of the USB device specified by the vendorId/ |
106 // productId pair and, if permissions allow, opens it for use. | 137 // productId pair and, if permissions allow, opens it for use. |
107 // Upon successfully opening a device the callback is invoked with a | 138 // Upon successfully opening a device the callback is invoked with a |
108 // populated Device object. On failure, the callback is invoked with null. | 139 // populated Device object. On failure, the callback is invoked with null. |
109 // |options|: The properties to search for on target devices. | 140 // |options|: The properties to search for on target devices. |
110 // |callback|: Invoked with the opened Device on success. | 141 // |callback|: Invoked with the opened Device on success. |
111 static void findDevices(FindDevicesOptions options, | 142 static void findDevices(FindDevicesOptions options, |
112 FindDevicesCallback callback); | 143 FindDevicesCallback callback); |
113 | 144 |
114 // Closes an open device instance. Invoking operations on a device after it | 145 // Closes an open device instance. Invoking operations on a device after it |
115 // has been closed is a safe operation, but causes no action to be taken. | 146 // has been closed is a safe operation, but causes no action to be taken. |
116 // |device|: The device to close. | 147 // |device|: The device to close. |
117 // |callback|: The callback to invoke once the device is closed. | 148 // |callback|: The callback to invoke once the device is closed. |
118 static void closeDevice(Device device, | 149 static void closeDevice(Device device, |
119 optional CloseDeviceCallback callback); | 150 optional CloseDeviceCallback callback); |
120 | 151 |
| 152 // Lists all the interfaces on the USB device. |
| 153 // |device|: The device from which the interfaces should be listed. |
| 154 // |callback|: The callback to invoke when the interfaces are enumerated. |
| 155 static void listInterfaces(Device device, |
| 156 ListInterfacesCallback callback); |
| 157 |
121 // Claims an interface on the specified USB device. | 158 // Claims an interface on the specified USB device. |
122 // |device|: The device on which the interface is to be claimed. | 159 // |device|: The device on which the interface is to be claimed. |
123 // |interface|: The interface number to be claimed. | 160 // |interface|: The interface number to be claimed. |
124 // |callback|: The callback to invoke once the interface is claimed. | 161 // |callback|: The callback to invoke once the interface is claimed. |
125 static void claimInterface(Device device, long interfaceNumber, | 162 static void claimInterface(Device device, long interfaceNumber, |
126 VoidCallback callback); | 163 VoidCallback callback); |
127 | 164 |
128 // Releases a claim to an interface on the provided device. | 165 // Releases a claim to an interface on the provided device. |
129 // |device|: The device on which the interface is to be released. | 166 // |device|: The device on which the interface is to be released. |
130 // |interface|: The interface number to be released. | 167 // |interface|: The interface number to be released. |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 // will appear to be disconected and reconnected. | 216 // will appear to be disconected and reconnected. |
180 // You must call <code>findDevice</code> again to acquire the device. | 217 // You must call <code>findDevice</code> again to acquire the device. |
181 // | 218 // |
182 // |device|: An opened device to reset. | 219 // |device|: An opened device to reset. |
183 // |callback|: Invoked once the device is reset with a boolean indicating | 220 // |callback|: Invoked once the device is reset with a boolean indicating |
184 // whether the reset is completed successfully. | 221 // whether the reset is completed successfully. |
185 static void resetDevice(Device device, | 222 static void resetDevice(Device device, |
186 ResetDeviceCallback callback); | 223 ResetDeviceCallback callback); |
187 }; | 224 }; |
188 }; | 225 }; |
OLD | NEW |