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

Side by Side Diff: third_party/WebKit/Source/modules/webusb/USBDevice.h

Issue 1806163002: Track USB alternate interface state in Blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@blink_interface_state
Patch Set: Fixed typo and rebased. Created 4 years, 9 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
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 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 #ifndef USBDevice_h 5 #ifndef USBDevice_h
6 #define USBDevice_h 6 #define USBDevice_h
7 7
8 #include "bindings/core/v8/ScriptPromise.h" 8 #include "bindings/core/v8/ScriptPromise.h"
9 #include "bindings/core/v8/ScriptWrappable.h" 9 #include "bindings/core/v8/ScriptWrappable.h"
10 #include "bindings/modules/v8/UnionTypesModules.h" 10 #include "bindings/modules/v8/UnionTypesModules.h"
(...skipping 27 matching lines...) Expand all
38 38
39 static USBDevice* take(ScriptPromiseResolver*, PassOwnPtr<WebUSBDevice>); 39 static USBDevice* take(ScriptPromiseResolver*, PassOwnPtr<WebUSBDevice>);
40 40
41 explicit USBDevice(PassOwnPtr<WebUSBDevice>, ExecutionContext*); 41 explicit USBDevice(PassOwnPtr<WebUSBDevice>, ExecutionContext*);
42 virtual ~USBDevice() { } 42 virtual ~USBDevice() { }
43 43
44 const WebUSBDeviceInfo& info() const { return m_device->info(); } 44 const WebUSBDeviceInfo& info() const { return m_device->info(); }
45 void onDeviceOpenedOrClosed(bool); 45 void onDeviceOpenedOrClosed(bool);
46 void onConfigurationSelected(bool success, size_t configurationIndex); 46 void onConfigurationSelected(bool success, size_t configurationIndex);
47 void onInterfaceClaimedOrUnclaimed(bool claimed, size_t interfaceIndex); 47 void onInterfaceClaimedOrUnclaimed(bool claimed, size_t interfaceIndex);
48 void onAlternateInterfaceSelected(bool success, size_t interfaceIndex, size_ t alternateIndex);
48 bool isInterfaceClaimed(size_t configurationIndex, size_t interfaceIndex) co nst; 49 bool isInterfaceClaimed(size_t configurationIndex, size_t interfaceIndex) co nst;
50 size_t selectedAlternateInterface(size_t interfaceIndex) const;
49 51
50 // IDL exposed interface: 52 // IDL exposed interface:
51 String guid() const { return info().guid; } 53 String guid() const { return info().guid; }
52 uint8_t usbVersionMajor() { return info().usbVersionMajor; } 54 uint8_t usbVersionMajor() { return info().usbVersionMajor; }
53 uint8_t usbVersionMinor() { return info().usbVersionMinor; } 55 uint8_t usbVersionMinor() { return info().usbVersionMinor; }
54 uint8_t usbVersionSubminor() { return info().usbVersionSubminor; } 56 uint8_t usbVersionSubminor() { return info().usbVersionSubminor; }
55 uint8_t deviceClass() { return info().deviceClass; } 57 uint8_t deviceClass() { return info().deviceClass; }
56 uint8_t deviceSubclass() const { return info().deviceSubclass; } 58 uint8_t deviceSubclass() const { return info().deviceSubclass; }
57 uint8_t deviceProtocol() const { return info().deviceProtocol; } 59 uint8_t deviceProtocol() const { return info().deviceProtocol; }
58 uint16_t vendorId() const { return info().vendorID; } 60 uint16_t vendorId() const { return info().vendorID; }
59 uint16_t productId() const { return info().productID; } 61 uint16_t productId() const { return info().productID; }
60 uint8_t deviceVersionMajor() const { return info().deviceVersionMajor; } 62 uint8_t deviceVersionMajor() const { return info().deviceVersionMajor; }
61 uint8_t deviceVersionMinor() const { return info().deviceVersionMinor; } 63 uint8_t deviceVersionMinor() const { return info().deviceVersionMinor; }
62 uint8_t deviceVersionSubminor() const { return info().deviceVersionSubminor; } 64 uint8_t deviceVersionSubminor() const { return info().deviceVersionSubminor; }
63 String manufacturerName() const { return info().manufacturerName; } 65 String manufacturerName() const { return info().manufacturerName; }
64 String productName() const { return info().productName; } 66 String productName() const { return info().productName; }
65 String serialNumber() const { return info().serialNumber; } 67 String serialNumber() const { return info().serialNumber; }
66 USBConfiguration* configuration() const; 68 USBConfiguration* configuration() const;
67 HeapVector<Member<USBConfiguration>> configurations() const; 69 HeapVector<Member<USBConfiguration>> configurations() const;
68 bool opened() const { return m_opened; } 70 bool opened() const { return m_opened; }
69 71
70 ScriptPromise open(ScriptState*); 72 ScriptPromise open(ScriptState*);
71 ScriptPromise close(ScriptState*); 73 ScriptPromise close(ScriptState*);
72 ScriptPromise selectConfiguration(ScriptState*, uint8_t configurationValue); 74 ScriptPromise selectConfiguration(ScriptState*, uint8_t configurationValue);
73 ScriptPromise claimInterface(ScriptState*, uint8_t interfaceNumber); 75 ScriptPromise claimInterface(ScriptState*, uint8_t interfaceNumber);
74 ScriptPromise releaseInterface(ScriptState*, uint8_t interfaceNumber); 76 ScriptPromise releaseInterface(ScriptState*, uint8_t interfaceNumber);
75 ScriptPromise setInterface(ScriptState*, uint8_t interfaceNumber, uint8_t al ternateSetting); 77 ScriptPromise selectAlternateInterface(ScriptState*, uint8_t interfaceNumber , uint8_t alternateSetting);
76 ScriptPromise controlTransferIn(ScriptState*, const USBControlTransferParame ters& setup, unsigned length); 78 ScriptPromise controlTransferIn(ScriptState*, const USBControlTransferParame ters& setup, unsigned length);
77 ScriptPromise controlTransferOut(ScriptState*, const USBControlTransferParam eters& setup); 79 ScriptPromise controlTransferOut(ScriptState*, const USBControlTransferParam eters& setup);
78 ScriptPromise controlTransferOut(ScriptState*, const USBControlTransferParam eters& setup, const ArrayBufferOrArrayBufferView& data); 80 ScriptPromise controlTransferOut(ScriptState*, const USBControlTransferParam eters& setup, const ArrayBufferOrArrayBufferView& data);
79 ScriptPromise clearHalt(ScriptState*, String direction, uint8_t endpointNumb er); 81 ScriptPromise clearHalt(ScriptState*, String direction, uint8_t endpointNumb er);
80 ScriptPromise transferIn(ScriptState*, uint8_t endpointNumber, unsigned leng th); 82 ScriptPromise transferIn(ScriptState*, uint8_t endpointNumber, unsigned leng th);
81 ScriptPromise transferOut(ScriptState*, uint8_t endpointNumber, const ArrayB ufferOrArrayBufferView& data); 83 ScriptPromise transferOut(ScriptState*, uint8_t endpointNumber, const ArrayB ufferOrArrayBufferView& data);
82 ScriptPromise isochronousTransferIn(ScriptState*, uint8_t endpointNumber, Ve ctor<unsigned> packetLengths); 84 ScriptPromise isochronousTransferIn(ScriptState*, uint8_t endpointNumber, Ve ctor<unsigned> packetLengths);
83 ScriptPromise isochronousTransferOut(ScriptState*, uint8_t endpointNumber, c onst ArrayBufferOrArrayBufferView& data, Vector<unsigned> packetLengths); 85 ScriptPromise isochronousTransferOut(ScriptState*, uint8_t endpointNumber, c onst ArrayBufferOrArrayBufferView& data, Vector<unsigned> packetLengths);
84 ScriptPromise reset(ScriptState*); 86 ScriptPromise reset(ScriptState*);
85 87
86 void contextDestroyed() override; 88 void contextDestroyed() override;
87 89
88 DECLARE_TRACE(); 90 DECLARE_TRACE();
89 91
90 private: 92 private:
91 int findConfigurationIndex(uint8_t configurationValue) const; 93 int findConfigurationIndex(uint8_t configurationValue) const;
92 int findInterfaceIndex(uint8_t interfaceNumber) const; 94 int findInterfaceIndex(uint8_t interfaceNumber) const;
95 int findAlternateIndex(size_t interfaceIndex, uint8_t alternateSetting) cons t;
93 bool ensureNoDeviceOrInterfaceChangeInProgress(ScriptPromiseResolver*) const ; 96 bool ensureNoDeviceOrInterfaceChangeInProgress(ScriptPromiseResolver*) const ;
94 bool ensureDeviceConfigured(ScriptPromiseResolver*) const; 97 bool ensureDeviceConfigured(ScriptPromiseResolver*) const;
95 bool ensureInterfaceClaimed(uint8_t interfaceNumber, ScriptPromiseResolver*) const; 98 bool ensureInterfaceClaimed(uint8_t interfaceNumber, ScriptPromiseResolver*) const;
96 bool ensureEndpointAvailable(bool inTransfer, uint8_t endpointNumber, Script PromiseResolver*) const; 99 bool ensureEndpointAvailable(bool inTransfer, uint8_t endpointNumber, Script PromiseResolver*) const;
97 bool anyInterfaceChangeInProgress() const; 100 bool anyInterfaceChangeInProgress() const;
98 101
99 OwnPtr<WebUSBDevice> m_device; 102 OwnPtr<WebUSBDevice> m_device;
100 bool m_opened; 103 bool m_opened;
101 bool m_deviceStateChangeInProgress; 104 bool m_deviceStateChangeInProgress;
102 int m_configurationIndex; 105 int m_configurationIndex;
103 WTF::BitVector m_claimedInterfaces; 106 WTF::BitVector m_claimedInterfaces;
104 WTF::BitVector m_interfaceStateChangeInProgress; 107 WTF::BitVector m_interfaceStateChangeInProgress;
108 WTF::Vector<size_t> m_selectedAlternates;
105 }; 109 };
106 110
107 } // namespace blink 111 } // namespace blink
108 112
109 #endif // USBDevice_h 113 #endif // USBDevice_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698