48 lines
908 B
C++
48 lines
908 B
C++
#pragma once
|
|
|
|
#include "ehs/Types.h"
|
|
|
|
namespace ehs
|
|
{
|
|
class EHS_LIB_IO UsbBase
|
|
{
|
|
private:
|
|
UInt_32 bus;
|
|
UInt_32 address;
|
|
|
|
public:
|
|
virtual ~UsbBase() = default;
|
|
|
|
UsbBase();
|
|
|
|
UsbBase(UInt_32 bus, UInt_32 address);
|
|
|
|
UsbBase(UsbBase&& usb) noexcept;
|
|
|
|
UsbBase(const UsbBase& usb);
|
|
|
|
UsbBase& operator=(UsbBase&& usb) noexcept;
|
|
|
|
UsbBase& operator=(const UsbBase& usb);
|
|
|
|
virtual void Initialize() = 0;
|
|
|
|
virtual void Release() = 0;
|
|
|
|
virtual bool IsInitialized() const = 0;
|
|
|
|
virtual Size Send(const Byte* data, Size size) = 0;
|
|
|
|
void BulkSend(const Byte* data, Size size);
|
|
|
|
virtual Size Receive(Byte* data, Size size) = 0;
|
|
|
|
void BulkReceive(Byte** data, Size* size);
|
|
|
|
UInt_32 GetBus() const;
|
|
|
|
UInt_32 GetAddress() const;
|
|
|
|
bool IsValid() const;
|
|
};
|
|
} |