Index: Source/modules/webusb/USBDevice.h |
diff --git a/Source/modules/webusb/USBDevice.h b/Source/modules/webusb/USBDevice.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d7430b2a924567e7cfa912d6184f45cf0cf611a4 |
--- /dev/null |
+++ b/Source/modules/webusb/USBDevice.h |
@@ -0,0 +1,73 @@ |
+// Copyright 2015 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. |
+ |
+#ifndef USBDevice_h |
+#define USBDevice_h |
+ |
+#include "bindings/core/v8/ScriptPromise.h" |
+#include "bindings/core/v8/ScriptWrappable.h" |
+#include "bindings/modules/v8/UnionTypesModules.h" |
+#include "modules/webusb/USBConfiguration.h" |
+#include "platform/heap/Handle.h" |
+#include "public/platform/modules/webusb/WebUSBDevice.h" |
+#include "public/platform/modules/webusb/WebUSBDeviceInfo.h" |
+ |
+namespace blink { |
+ |
+class USBControlTransferParameters; |
+ |
+class USBDevice |
+ : public GarbageCollectedFinalized<USBDevice> |
+ , public ScriptWrappable { |
+ DEFINE_WRAPPERTYPEINFO(); |
+public: |
+ typedef WebUSBDeviceInfo WebType; |
+ |
+ static USBDevice* create(PassOwnPtr<WebUSBDevice>); |
+ |
+ USBDevice(PassOwnPtr<WebUSBDevice>); |
+ virtual ~USBDevice() { } |
+ |
+ const WebUSBDeviceInfo& info() const { return m_device->info(); } |
+ |
+ String guid() const { return info().guid; } |
+ uint8_t usbVersionMajor() { return info().usbVersionMajor; } |
+ uint8_t usbVersionMinor() { return info().usbVersionMinor; } |
+ uint8_t usbVersionSubminor() { return info().usbVersionSubminor; } |
+ uint8_t deviceClass() { return info().deviceClass; } |
+ uint8_t deviceSubclass() const { return info().deviceSubclass; } |
+ uint8_t deviceProtocol() const { return info().deviceProtocol; } |
+ uint16_t vendorId() const { return info().vendorID; } |
+ uint16_t productId() const { return info().productID; } |
+ uint8_t deviceVersionMajor() const { return info().deviceVersionMajor; } |
+ uint8_t deviceVersionMinor() const { return info().deviceVersionMinor; } |
+ uint8_t deviceVersionSubminor() const { return info().deviceVersionSubminor; } |
+ String manufacturerName() const { return info().manufacturerName; } |
+ String productName() const { return info().productName; } |
+ String serialNumber() const { return info().serialNumber; } |
+ HeapVector<Member<USBConfiguration>> configurations() const; |
+ |
+ ScriptPromise open(ScriptState*); |
+ ScriptPromise close(ScriptState*); |
+ ScriptPromise setConfiguration(ScriptState*, uint8_t configurationValue); |
+ ScriptPromise claimInterface(ScriptState*, uint8_t interfaceNumber); |
+ ScriptPromise releaseInterface(ScriptState*, uint8_t interfaceNumber); |
+ ScriptPromise setInterface(ScriptState*, uint8_t interfaceNumber, uint8_t alternateSetting); |
+ ScriptPromise controlTransferIn(ScriptState*, const USBControlTransferParameters&, uint16_t length); |
+ ScriptPromise controlTransferOut(ScriptState*, const USBControlTransferParameters&); |
+ ScriptPromise controlTransferOut(ScriptState*, const USBControlTransferParameters&, const ArrayBufferOrArrayBufferView& data); |
+ ScriptPromise clearHalt(ScriptState*, uint8_t endpointNumber); |
+ ScriptPromise transferIn(ScriptState*, uint8_t endpointNumber, unsigned length); |
+ ScriptPromise transferOut(ScriptState*, uint8_t endpointNumber, const ArrayBufferOrArrayBufferView& data); |
+ ScriptPromise reset(ScriptState*); |
+ |
+ DEFINE_INLINE_TRACE() { } |
+ |
+private: |
+ OwnPtr<WebUSBDevice> m_device; |
+}; |
+ |
+} // namespace blink |
+ |
+#endif // USBDevice_h |