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..6dcd9aedefb0f6dafac21fb25a393d4365b36591 |
| --- /dev/null |
| +++ b/public/platform/modules/webusb/WebUSBDevice.h |
| @@ -0,0 +1,106 @@ |
| +// 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; |
| + |
| +typedef WebCallbacks<void, WebUSBError*> WebUSBDeviceOpenCallbacks; |
| +typedef WebCallbacks<void, WebUSBError*> WebUSBDeviceCloseCallbacks; |
| +typedef WebCallbacks<void, WebUSBError*> WebUSBDeviceSetConfigurationCallbacks; |
| +typedef WebCallbacks<void, WebUSBError*> WebUSBDeviceClaimInterfaceCallbacks; |
| +typedef WebCallbacks<void, WebUSBError*> WebUSBDeviceReleaseInterfaceCallbacks; |
| +typedef WebCallbacks<void, WebUSBError*> WebUSBDeviceResetCallbacks; |
| +typedef WebCallbacks<void, WebUSBError*> WebUSBDeviceSetInterfaceAlternateSettingCallbacks; |
| +typedef WebCallbacks<void, WebUSBError*> WebUSBDeviceClearHaltCallbacks; |
| +typedef WebCallbacks<WebUSBTransferInfo*, WebUSBError*> WebUSBDeviceControlTransferCallbacks; |
| +typedef WebCallbacks<WebUSBTransferInfo*, WebUSBError*> WebUSBDeviceBulkTransferCallbacks; |
| +typedef WebCallbacks<WebUSBTransferInfo*, WebUSBError*> WebUSBDeviceInterruptTransferCallbacks; |
| + |
| +class WebUSBDevice { |
| +public: |
| + enum TransferDirection { |
| + TransferDirectionIn, |
| + TransferDirectionOut |
| + }; |
| + |
| + enum RequestType { |
| + RequestTypeStandard, |
| + RequestTypeClass, |
| + RequestTypeVendor, |
| + RequestTypeReserved |
|
Reilly Grant (use Gerrit)
2015/07/28 22:51:43
Since this is a reserved value we shouldn't have a
Ken Rockot(use gerrit already)
2015/07/28 23:21:39
Done.
|
| + }; |
| + |
| + enum RequestRecipient { |
| + RequestRecipientDevice, |
| + RequestRecipientInterface, |
| + RequestRecipientEndpoint, |
| + RequestRecipientOther, |
| + }; |
| + |
| + 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 |