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

Side by Side Diff: chrome/common/extensions/api/experimental.usb.idl

Issue 10224009: Experimental USB API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 // TODO(gdk): The string-style enumerations are temporary, and will be removed
6 // once full enumeration support is added. Also, the array-of-longs are
7 // temporary and will be removed once there is full ArrayBuffer support.
8
9 [nodoc] namespace experimental.usb {
10
11 // A Device encapsulates everything that is needed to communicate with a USB
12 // device. They are returned by findDevice calls and have all of their
13 // fields populated before being returned.
14 dictionary Device {
15 long handle;
16 long vendorId;
17 long productId;
18 };
19
20 // ControlTransferInfo represents that parameters to a single USB control
21 // transfer.
22 dictionary ControlTransferInfo {
23 // The direction of this transfer. Must be one of either in or out.
24 DOMString direction;
miket_OOO 2012/04/25 23:10:37 A little vertical whitespace would be helpful for
Garret Kelly 2012/04/26 20:13:44 Done.
25 // The intended recipient for this transfer. Must be one of device,
26 // interface, endpoint, or other.
27 DOMString recipient;
28 // The type of this request. Must be one of standard, class, vendor,
29 // or reserved.
30 DOMString requestType;
31 long request;
32 long value;
33 long index;
34 // If this transfer is an input transfer, then this field must be set to
35 // indicate the expected data length. If this is an output transfer, then
36 // this field is ignored.
37 long? length;
38 long[]? data;
39 };
40
41 // GenericTransferInfo is used by both bulk and interrupt transfers to
42 // specify the parameters of the transfer.
43 dictionary GenericTransferInfo {
44 // The direction of this transfer. Must be one of in or out.
45 DOMString direction;
46 long endpoint;
47 // If this is an input transfer then this field indicates the size of the
48 // input buffer. If this is an output transfer then this field is ignored.
49 long? length;
50 Blob? data;
51 // If this is an output transfer then this field must be populated.
52 // Otherwise, it will be ignored.
53 long[]? data;
54 };
55
56 // When a USB event occurs the event handler specified in findDevice will
asargent_no_longer_on_chrome 2012/04/26 21:21:45 Can you clarify here that it's the onEvent propert
Garret Kelly 2012/04/27 00:32:34 Done.
57 // have a UsbEvent delivered to it which will contain the result of a
58 // trasnsfer, including returned data.
miket_OOO 2012/04/25 23:10:37 spelling
Garret Kelly 2012/04/26 20:13:44 Done.
59 dictionary UsbEvent {
60 // A string indicating the type of the event. Currently will only contain
61 // the value 'transferResult'.
62 DOMString type;
63 // A value of 1 indicates that the transfer was a success. Other values
miket_OOO 2012/04/25 23:10:37 This feels nonstandard. Could zero indicate succes
Garret Kelly 2012/04/26 20:13:44 Done.
64 // indicate faliure.
miket_OOO 2012/04/25 23:10:37 spelling
Garret Kelly 2012/04/26 20:13:44 Done.
65 long? resultCode;
66 // If the transfer was an input transfer then this field will contain all
67 // of the input data requested.
68 long[]? data;
69
70 // The following fields are used for internal event routing and can be
71 // ignored.
72 [nodoc] boolean isFinalEvent;
73 [nodoc] long srcId;
74 };
75
76 callback OnEventCallback = void (UsbEvent event);
77
78 dictionary DeviceOptions {
79 // The schema generator does not support dictionaries with only events.
80 // Ignore this field.
81 [nodoc] long? dummyValue;
82 // Invoked by the extension API whenever an event occurs the device(s)
miket_OOO 2012/04/25 23:10:37 occurs for? with?
Garret Kelly 2012/04/26 20:13:44 Done.
83 // that this DeviceOptions is associated with.
84 OnEventCallback? onEvent;
85 };
86
87 callback FindDeviceCallback = void (optional Device device);
88 callback TransferCallback = void ();
89
90 interface Functions {
91 // Finds the first instance of the USB device specified by the vendorId/
92 // productId pair and, if permissions allow, opens it for use.
93 // If the device is successfully opened, invokes the provided callback with
94 // the Device object.
asargent_no_longer_on_chrome 2012/04/26 21:21:45 comment nit: The FindDeviceCallback should fire on
Garret Kelly 2012/04/27 00:32:34 Quite right. It actually does, and this comment is
95 // |vendorId|: The vendor ID of the USB device to find.
96 // |productId|: The product ID of the USB device to find.
97 // |callback|: Invoked with the opened Device on success.
98 static void findDevice(long vendorId, long productId,
99 DeviceOptions options, FindDeviceCallback callback);
100
101 // Closes an open device instance. Invoking operations on a device after it
102 // has been closed is a safe operation, but causes no action to be taken.
103 // |device|: The device to close.
104 static void closeDevice(Device device);
105
106 // Performs a control transfer on the specified device. See the
107 // ControlTransferInfo structure for the parameters required to make a
108 // transfer.
109 // |device|: An open device to make the transfer on.
110 // |transferInfo|: The parameters to the transfer. See ControlTransferInfo.
111 // |callback|: Invoked once the transfer has completed.
112 static void controlTransfer(Device device,
113 ControlTransferInfo transferInfo, optional TransferCallback callback);
114
115 // Performs a bulk transfer on the specified device.
116 // |device|: An open device to make the transfer on.
117 // |transferInfo|: The paramters to the transfer. See GenericTransferInfo.
118 // |callback|: Invoked once the transfer has completed.
119 static void bulkTransfer(Device device, GenericTransferInfo transferInfo,
120 optional TransferCallback callback);
121
122 // Performs a control transfer on the specified device.
asargent_no_longer_on_chrome 2012/04/26 21:21:45 nit: Should this say "Performs an interrupt transf
Garret Kelly 2012/04/27 00:32:34 D'oh! Done.
123 // |device|: An open device to make the transfer on.
124 // |transferInfo|: The paramters to the transfer. See GenericTransferInfo.
125 // |callback|: Invoked once the transfer has completed.
126 static void interruptTransfer(Device device,
127 GenericTransferInfo transferInfo, optional TransferCallback callback);
128 };
129
130 interface Events {
131 static void onEvent(UsbEvent event);
132 };
133
134 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698