| 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..8ad6f9e59e05fae4421aab6b2153eac54cefed26
|
| --- /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
|
| + };
|
| +
|
| + 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
|
|
|