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

Side by Side Diff: third_party/WebKit/public/platform/modules/webusb/WebUSBDevice.h

Issue 1850023002: Consume Mojo services directly in Blink's WebUSB implementation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
OLDNEW
(Empty)
1 // Copyright 2015 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 #ifndef WebUSBDevice_h
6 #define WebUSBDevice_h
7
8 #include "public/platform/WebCallbacks.h"
9 #include "public/platform/WebPassOwnPtr.h"
10 #include "public/platform/WebVector.h"
11
12 namespace blink {
13
14 struct WebUSBDeviceInfo;
15 struct WebUSBError;
16 struct WebUSBTransferInfo;
17
18 using WebUSBDeviceOpenCallbacks = WebCallbacks<void, const WebUSBError&>;
19 using WebUSBDeviceCloseCallbacks = WebCallbacks<void, const WebUSBError&>;
20 using WebUSBDeviceSetConfigurationCallbacks = WebCallbacks<void, const WebUSBErr or&>;
21 using WebUSBDeviceClaimInterfaceCallbacks = WebCallbacks<void, const WebUSBError &>;
22 using WebUSBDeviceReleaseInterfaceCallbacks = WebCallbacks<void, const WebUSBErr or&>;
23 using WebUSBDeviceResetCallbacks = WebCallbacks<void, const WebUSBError&>;
24 using WebUSBDeviceSetInterfaceAlternateSettingCallbacks = WebCallbacks<void, con st WebUSBError&>;
25 using WebUSBDeviceClearHaltCallbacks = WebCallbacks<void, const WebUSBError&>;
26 using WebUSBDeviceTransferCallbacks = WebCallbacks<WebPassOwnPtr<WebUSBTransferI nfo>, const WebUSBError&>;
27
28 class WebUSBDevice {
29 public:
30 enum class TransferDirection {
31 In,
32 Out,
33 };
34
35 enum class RequestType {
36 Standard,
37 Class,
38 Vendor,
39 };
40
41 enum class RequestRecipient {
42 Device,
43 Interface,
44 Endpoint,
45 Other,
46 };
47
48 struct ControlTransferParameters {
49 TransferDirection direction;
50 RequestType type;
51 RequestRecipient recipient;
52 uint8_t request;
53 uint16_t value;
54 uint16_t index;
55 };
56
57 virtual ~WebUSBDevice() { }
58
59 virtual const WebUSBDeviceInfo& info() const = 0;
60
61 // Opens the device.
62 // Ownership of the WebUSBDeviceOpenCallbacks is transferred to the client.
63 virtual void open(WebUSBDeviceOpenCallbacks*) = 0;
64
65 // Closes the device.
66 // Ownership of the WebUSBDeviceCloseCallbacks is transferred to the client.
67 virtual void close(WebUSBDeviceCloseCallbacks*) = 0;
68
69 // Sets the active configuration for the device.
70 // Ownership of the WebUSBDeviceSetConfigurationCallbacks is transferred to the client.
71 virtual void setConfiguration(uint8_t configurationValue, WebUSBDeviceSetCon figurationCallbacks*) = 0;
72
73 // Claims an interface in the active configuration.
74 // Ownership of the WebUSBDeviceClaimInterfaceCallbacks is transferred to th e client.
75 virtual void claimInterface(uint8_t interfaceNumber, WebUSBDeviceClaimInterf aceCallbacks*) = 0;
76
77 // Releases a claimed interface.
78 // Ownership of the WebUSBDeviceReleaseInterfaceCallbacks is transferred to the client.
79 virtual void releaseInterface(uint8_t interfaceNumber, WebUSBDeviceReleaseIn terfaceCallbacks*) = 0;
80
81 // Sets the alternate setting of an interface.
82 // Ownership of the WebUSBDeviceSetInterfaceAlternateSettingCallbacks is tra nsferred to the client.
83 virtual void setInterface(uint8_t interfaceNumber, uint8_t alternateSetting, WebUSBDeviceSetInterfaceAlternateSettingCallbacks*) = 0;
84
85 // Clears the halt condition on a specific endpoint.
86 // Ownership of the WebUSBDeviceClearHaltCallbacks is transferred to the cli ent.
87 virtual void clearHalt(uint8_t endpointNumber, WebUSBDeviceClearHaltCallback s*) = 0;
88
89 // Initiates a control transfer.
90 // Ownership of the WebUSBDeviceTransferCallbacks is transferred to the clie nt.
91 virtual void controlTransfer(const ControlTransferParameters&, uint8_t* data , size_t dataSize, unsigned timeout, WebUSBDeviceTransferCallbacks*) = 0;
92
93 // Initiates a bulk or interrupt transfer.
94 // Ownership of the WebUSBDeviceTransferCallbacks is transferred to the clie nt.
95 virtual void transfer(TransferDirection, uint8_t endpointNumber, uint8_t* da ta, size_t dataSize, unsigned timeout, WebUSBDeviceTransferCallbacks*) = 0;
96
97 // Initiates an isochronous transfer.
98 // Ownership of the WebUSBDeviceTransferCallbacks is transferred to the clie nt.
99 virtual void isochronousTransfer(TransferDirection, uint8_t endpointNumber, uint8_t* data, size_t dataSize, WebVector<unsigned> packetLengths, unsigned time out, WebUSBDeviceTransferCallbacks*) = 0;
100
101 // Resets the device.
102 // Ownership of the WebUSBDeviceResetCallbacks is transferred to the client.
103 virtual void reset(WebUSBDeviceResetCallbacks*) = 0;
104 };
105
106 } // namespace blink
107
108 #endif // WebUSBDevice_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698