Chromium Code Reviews| Index: public/platform/modules/webusb/WebUSBDevice.h |
| diff --git a/public/platform/modules/webusb/WebUSBDevice.h b/public/platform/modules/webusb/WebUSBDevice.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c3bde0df775c2b1fa85143e693b418dda439dfe1 |
| --- /dev/null |
| +++ b/public/platform/modules/webusb/WebUSBDevice.h |
| @@ -0,0 +1,105 @@ |
| +// 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 WebUSBDevice_h |
| +#define WebUSBDevice_h |
| + |
| +#include "public/platform/WebCallbacks.h" |
| +#include "public/platform/WebVector.h" |
| + |
| +namespace blink { |
| + |
| +struct WebUSBDeviceInfo; |
| +struct WebUSBError; |
| +struct WebUSBTransferInfo; |
| + |
| +using WebUSBDeviceOpenCallbacks = WebCallbacks<void, WebUSBError*>; |
|
yhirano
2015/08/03 05:28:51
const WebUSBError&
Ken Rockot(use gerrit already)
2015/08/03 21:49:44
Done.
|
| +using WebUSBDeviceCloseCallbacks = WebCallbacks<void, WebUSBError*>; |
| +using WebUSBDeviceSetConfigurationCallbacks = WebCallbacks<void, WebUSBError*>; |
| +using WebUSBDeviceClaimInterfaceCallbacks = WebCallbacks<void, WebUSBError*>; |
| +using WebUSBDeviceReleaseInterfaceCallbacks = WebCallbacks<void, WebUSBError*>; |
| +using WebUSBDeviceResetCallbacks = WebCallbacks<void, WebUSBError*>; |
| +using WebUSBDeviceSetInterfaceAlternateSettingCallbacks = WebCallbacks<void, WebUSBError*>; |
| +using WebUSBDeviceClearHaltCallbacks = WebCallbacks<void, WebUSBError*>; |
| +using WebUSBDeviceControlTransferCallbacks = WebCallbacks<WebUSBTransferInfo*, WebUSBError*>; |
|
yhirano
2015/08/03 05:28:51
Please consider using |WebPassOwnPtr<WebTransferIn
yhirano
2015/08/03 05:28:52
Is WebUSBTransferInfo defined anywhere?
Ken Rockot(use gerrit already)
2015/08/03 21:49:44
Oops - Added the header to this CL.
Ken Rockot(use gerrit already)
2015/08/03 21:49:44
Done.
|
| +using WebUSBDeviceBulkTransferCallbacks = WebCallbacks<WebUSBTransferInfo*, WebUSBError*>; |
| +using WebUSBDeviceInterruptTransferCallbacks = WebCallbacks<WebUSBTransferInfo*, WebUSBError*>; |
| + |
| +class WebUSBDevice { |
| +public: |
| + enum class TransferDirection { |
| + In, |
| + Out, |
| + }; |
| + |
| + enum class RequestType { |
| + Standard, |
| + Class, |
| + Vendor, |
| + }; |
| + |
| + enum RequestRecipient { |
| + Device, |
| + Interface, |
| + Endpoint, |
| + Other, |
| + }; |
| + |
| + struct ControlTransferParameters { |
| + TransferDirection direction; |
| + RequestType type; |
| + RequestRecipient recipient; |
| + uint8_t request; |
| + uint16_t value; |
| + uint16_t index; |
| + }; |
| + |
| + virtual ~WebUSBDevice() { } |
| + |
| + virtual const WebUSBDeviceInfo& info() const = 0; |
| + |
| + // Opens the device. |
| + // Ownership of the WebUSBDeviceOpenCallbacks is transferred to the client. |
| + virtual void open(WebUSBDeviceOpenCallbacks*) = 0; |
| + |
| + // Closes the device. |
| + // Ownership of the WebUSBDeviceCloseCallbacks is transferred to the client. |
| + virtual void close(WebUSBDeviceCloseCallbacks*) = 0; |
| + |
| + // Sets the active configuration for the device. |
| + // Ownership of the WebUSBDeviceSetConfigurationCallbacks is transferred to the client. |
| + virtual void setConfiguration(uint8_t configurationValue, WebUSBDeviceSetConfigurationCallbacks*) = 0; |
| + |
| + // Claims an interface in the active configuration. |
| + // Ownership of the WebUSBDeviceClaimInterfaceCallbacks is transferred to the client. |
| + virtual void claimInterface(uint8_t interfaceNumber, WebUSBDeviceClaimInterfaceCallbacks*) = 0; |
| + |
| + // Releases a claimed interface. |
| + // Ownership of the WebUSBDeviceReleaseInterfaceCallbacks is transferred to the client. |
| + virtual void releaseInterface(uint8_t interfaceNumber, WebUSBDeviceReleaseInterfaceCallbacks*) = 0; |
| + |
| + // Sets the alternate setting of an interface. |
| + // Ownership of the WebUSBDeviceSetInterfaceAlternateSettingCallbacks is transferred to the client. |
| + virtual void setInterface(uint8_t interfaceNumber, uint8_t alternateSetting, WebUSBDeviceSetInterfaceAlternateSettingCallbacks*) = 0; |
| + |
| + // Clears the halt condition on a specific endpoint. |
| + // Ownership of the WebUSBDeviceClearHaltCallbacks is transferred to the client. |
| + virtual void clearHalt(uint8_t endpointNumber, WebUSBDeviceClearHaltCallbacks*) = 0; |
| + |
| + // Initiates a control transfer. |
| + // Ownership of the WebUSBDeviceControlTransferCallbacks is transferred to the client. |
| + virtual void controlTransfer(const ControlTransferParameters&, uint8_t* data, size_t dataSize, unsigned timeout, WebUSBDeviceControlTransferCallbacks*) = 0; |
| + |
| + // Initiates a bulk or interrupt transfer. |
| + // Ownership of the WebUSBDeviceBulkTransferCallbacks is transferred to the client. |
| + virtual void transfer(TransferDirection, uint8_t endpointNumber, uint8_t* data, size_t dataSize, unsigned timeout, WebUSBDeviceBulkTransferCallbacks*) = 0; |
| + |
| + // Resets the device. |
| + // Ownership of the WebUSBDeviceResetCallbacks is transferred to the client. |
| + virtual void reset(WebUSBDeviceResetCallbacks*) = 0; |
| +}; |
| + |
| +} // namespace blink |
| + |
| +#endif // WebUSBDevice_h |