| 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..b2f674e37d0ee1ab712635a150f44bb519ee8325
|
| --- /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;
|
| +
|
| +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,
|
| + };
|
| +
|
| + 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
|
|
|