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

Unified Diff: Source/modules/webusb/USBDevice.h

Issue 1245363002: Add WebUSB bindings and client interface (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: iface ctors, OWNERS, rebase Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/modules/webusb/USBController.cpp ('k') | Source/modules/webusb/USBDevice.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « Source/modules/webusb/USBController.cpp ('k') | Source/modules/webusb/USBDevice.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698