dxd - dynax driver framework 3.0.2
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::usb::platform::interface Class Reference

the platform half of an interface: the IOUSBLib interface plugin, its exclusive open and the run loop its asynchronous completions arrive on More...

#include <dx_usb_platform_interface.h>

Inheritance diagram for dx::usb::platform::interface:
Collaboration diagram for dx::usb::platform::interface:

Classes

class  runloop
 the interface's own realtime run loop: every asynchronous completion of its pipes runs here, at a 125 µs timing policy More...

Public Member Functions

interface& close(bool force= false) noexcept
interface& close(bool= false) noexcept
uint8_t index() const
uint8_t index() const
 interface(handlehandle handlehandle, const dx::log& log= {})
interface& open()
 opens the USB intreface for exclusice access
::IOUSBInterfaceInterface650* operator ->() const
 operator ::IOUSBInterfaceInterface650**() const
 operator ::IOUSBInterfaceInterface650**() const
 operator ::WINUSB_INTERFACE_HANDLE() const
virtual interface& operator [](uint8_t setting)
virtual interface& operator [](unsigned char setting)
uint8_t setting() const
virtual uint8_t setting() const
template<typename data_t>
data_t submit(const control& control) const
template<typename data_t>
data_t submit(const control& control, uint8_t idx= 0) const
template<typename data_t>
interface& submit(const request<data_t>& request) const
template<typename data_t>
interface& submit(const request<data_t>& request, uint8_t idx= 0) const
virtual ~interface() noexcept

Public Attributes

dx::usb::platform::interface::runloop runloop

Protected Types

typedef io_object_t handle
typedef ::WINUSB_INTERFACE_HANDLE handle

Protected Member Functions

void initialize(::IOCFPlugInInterface** cf_interface, ::CFUUIDRef uuid)
void initialize(io_object_t io_object, ::CFUUIDRef type, ::CFUUIDRef uuid)
 interface(io_object_t io_object, const dx::log& log= {})
virtual ~interface()

Protected Attributes

dx::log log{}
std::atomic<int> opened{}
handle winusb

Detailed Description

the platform half of an interface: the IOUSBLib interface plugin, its exclusive open and the run loop its asynchronous completions arrive on

the platform half of an interface: its WinUSB handle and its path - WinUSB associates an interface with the handle it was opened through, so there is nothing else to hold

Member Typedef Documentation

◆ handle [1/2]

typedef io_object_t dx::usb::platform::interface::handle
protected

◆ handle [2/2]

Constructor & Destructor Documentation

◆ interface() [1/2]

dx::usb::platform::interface::interface(io_object_t io_object, const dx::log& log= {})
inlineprotected

create USB interval related realtime runloop thread timing policy

create and attach runloop source of asynchronous interface operation

◆ ~interface() [1/2]

virtual dx::usb::platform::interface::~interface()
inlineprotectedvirtual
Here is the call graph for this function:

◆ interface() [2/2]

dx::usb::platform::interface::interface(handle handle, const dx::log& log= {})
inline

◆ ~interface() [2/2]

virtual dx::usb::platform::interface::~interface()
inlinevirtualnoexcept
Here is the call graph for this function:

Member Function Documentation

◆ close() [1/2]

interface& dx::usb::platform::interface::close(bool force= false)
inlinenoexcept
Here is the caller graph for this function:

◆ close() [2/2]

interface& dx::usb::platform::interface::close(bool= false)
inlinenoexcept

◆ index() [1/2]

uint8_t dx::usb::platform::interface::index() const
inline
Here is the caller graph for this function:

◆ index() [2/2]

uint8_t dx::usb::platform::interface::index() const
inline

◆ initialize() [1/2]

void cf::interface<::IOUSBInterfaceInterface650>::initialize(::IOCFPlugInInterface** cf_interface, ::CFUUIDRef uuid)
inlineprotectedinherited
Here is the caller graph for this function:

◆ initialize() [2/2]

void cf::interface<::IOUSBInterfaceInterface650>::initialize(io_object_t io_object, ::CFUUIDRef type, ::CFUUIDRef uuid)
protectedinherited

◆ open()

interface& dx::usb::platform::interface::open()
inline

opens the USB intreface for exclusice access

Here is the caller graph for this function:

◆ operator ->()

::IOUSBInterfaceInterface650* cf::interface<::IOUSBInterfaceInterface650>::operator ->() const
inlineinherited

◆ operator ::IOUSBInterfaceInterface650 **() [1/2]

cf::interface<::IOUSBInterfaceInterface650>::operator ::IOUSBInterfaceInterface650**() const
inlineinherited

◆ operator ::IOUSBInterfaceInterface650 **() [2/2]

cf::interface<::IOUSBInterfaceInterface650>::operator ::IOUSBInterfaceInterface650**() const
inlineinherited

◆ operator ::WINUSB_INTERFACE_HANDLE()

dx::usb::platform::interface::operator ::WINUSB_INTERFACE_HANDLE() const
inline

◆ operator []() [1/2]

virtual interface& dx::usb::platform::interface::operator [](uint8_t setting)
inlinevirtual

Reimplemented in dx::usb::interface.

Here is the call graph for this function:

◆ operator []() [2/2]

virtual interface& dx::usb::platform::interface::operator [](unsigned char setting)
inlinevirtual

Reimplemented in dx::usb::interface.

Here is the call graph for this function:

◆ setting() [1/2]

uint8_t dx::usb::platform::interface::setting() const
inline
Here is the caller graph for this function:

◆ setting() [2/2]

virtual uint8_t dx::usb::platform::interface::setting() const
inlinevirtual

◆ submit() [1/4]

template<typename data_t>
data_t dx::usb::platform::interface::submit(const control& control) const
inline
Here is the call graph for this function:

◆ submit() [2/4]

template<typename data_t>
data_t dx::usb::platform::interface::submit(const control& control, uint8_t idx= 0) const
inline
Here is the call graph for this function:

◆ submit() [3/4]

template<typename data_t>
interface& dx::usb::platform::interface::submit(const request<data_t>& request) const
inline

◆ submit() [4/4]

template<typename data_t>
interface& dx::usb::platform::interface::submit(const request<data_t>& request, uint8_t idx= 0) const
inline
Here is the caller graph for this function:

Member Data Documentation

◆ log

dx::log dx::usb::platform::interface::log{}
protected

◆ opened

std::atomic<int> dx::usb::platform::interface::opened{}
protected

◆ runloop

dx::usb::platform::interface::runloop dx::usb::platform::interface::runloop

◆ winusb

handle dx::usb::platform::interface::winusb
protected

The documentation for this class was generated from the following files: