|
dxd - dynax driver framework 2.7.0d222
cross platform open source driver development framework
|
#include <dx_usb_device.h>
Public Types | |
| typedef device<> | device_t |
| typedef device<> | device_t |
| enum | type |
Public Member Functions | |
| pipe & | abort () try |
| virtual void | callback () |
| catch (...) | |
| catch (...) | |
| catch (...) | |
| catch (...) | |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| DX_PRAGMA_IGNORE_RETURN_VALUE_BEGIN | catch (const dx::exception &__dx_exception) |
| catch (const std::exception &__std_exception) | |
| catch (const std::exception &__std_exception) | |
| catch (const std::exception &__std_exception) | |
| catch (const std::exception &__std_exception) | |
| void | conclude () noexcept override |
| conclude notification: object will be removed. If you overwrite conclude() you also need to overwrite destructor and check if its needed to be called from there. Called only through try_conclude() - never call this directly from outside the class hierarchy. | |
| pipe & | drain (std::chrono::milliseconds timeout=std::chrono::milliseconds(250)) noexcept |
| waits for already-submitted requests to complete on their own, without cancelling them | |
| dx_catchall_rethrow () virtual void free() noexcept | |
| dx_catchall_rethrow (;,"endpoint:%x interface:%d setting:%d", endpoint.address, endpoint.interface, endpoint.setting) pipe &max_frame_size(uint32_t frame_size) | |
| dx_catchall_rethrow () os_result status() const noexcept | |
| virtual void | exception (const exception &exception, bool filtered=false) const noexcept=0 |
| notification exception handler | |
| void | info (std::ostream &os) noexcept override |
| log object class information | |
| virtual event & | initialize (bool signalled=false) |
| virtual event & | initialize (const std::string &, bool signalled=false) |
| operator const os_event () const noexcept | |
| operator os_event () noexcept | |
| operator::HANDLE () const noexcept | |
| template<typename data_t> | |
| pipe & | operator<< (const data_t &data) |
| synchronous USB write request | |
| template<typename data_t> | |
| pipe & | operator>> (data_t &data) |
| synchronous USB read request | |
| pipe (device_t &device, const usb::endpoint &endpoint) | |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END event & | reset (uint64_t count=0) override try |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END event & | reset (uint64_t count=0) override try |
| super & | signal (uint64_t count=1) override try |
| super & | signal (uint64_t count=1) override try |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END uint64_t | signalled () const |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END uint64_t | signalled () const |
| virtual bool | start (uint64_t=0, unsigned int starting=1) |
| virtual bool | start (uint64_t=0, unsigned int starting=1) |
| virtual unsigned int | stop (bool force=false) noexcept |
| virtual unsigned int | stop (bool force=false) noexcept |
| pipe & | submit (const request< data_t > &request) const try |
| standard request to pipe | |
| bool | try_conclude () noexcept |
| atomically conclude()s if currently launched; returns whether this call did it | |
| bool | try_conclude () noexcept |
| atomically conclude()s if currently launched; returns whether this call did it | |
| bool | try_launch () |
| atomically launch()es if not already launched; returns whether this call did it | |
| bool | try_launch () |
| atomically launch()es if not already launched; returns whether this call did it | |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END super & | wait (bool reset=false) override try |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END super & | wait (bool reset=false) override try |
| template<typename rep_t, typename period_t> | |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END bool | wait (const std::chrono::duration< rep_t, period_t > &timeout, bool reset=false) try |
| template<typename rep_t, typename period_t> | |
| DX_PRAGMA_IGNORE_RETURN_VALUE_END bool | wait (const std::chrono::duration< rep_t, period_t > &timeout, bool reset=false) try |
| ~pipe () override | |
Public Attributes | |
| const usb::endpoint::attributes & | attributes = reinterpret_cast<const struct usb::endpoint::attributes&>(bmAttributes) |
| std::deque< union audio::descriptor::endpoint > | audio |
| class buffer { | |
| } | buffer |
| ::WINUSB_INTERFACE_HANDLE | handle |
| interface & | interface |
| std::atomic< bool > | launched |
| std::atomic< bool > | launched |
| unsigned int | micro_frames |
| std::deque< std::function< void(control &)> > | notify |
| std::deque< std::function< void(control &)> > | notify |
| std::atomic< unsigned int > | started |
| std::atomic< unsigned int > | started |
Static Public Attributes | |
| static constexpr auto | scope = kernel |
Protected Member Functions | |
| dx_catchall_handler (this,) public | |
| dx_pass (rx==tx? overflow:ok, "too manny (%d) outstanding asynchronous transactions for endpoint %x", max, address) | |
| virtual void | flush () |
| virtual void | flush () |
| void | halt () noexcept override |
| async IO thread control (required for Windows compatibility) | |
| if (tx==max) tx=0 | |
| virtual void | launch () |
| launch notification: object mounted and ready to use. Called only through try_launch() - never call this directly from outside the class hierarchy. | |
| pipe & | read (void *data, size_t size) try |
| synchronous USB read request | |
| pipe & | receive (void *data, size_t size) try |
| asynchronous USB read request | |
| virtual void | received (os_result, size_t) |
| virtual async callbacks | |
| virtual void | transmitted (os_result, size_t) |
| pipe & | write (const void *data, size_t size) try |
| synchronous USB write request | |
Protected Attributes | |
| struct { | |
| } | address |
| device<> & | device |
| device<> & | device |
| uint64_t ::USBD_ISO_PACKET_DESCRIPTOR * | frame |
| uint8_t | idx |
| struct { | |
| class buffer { | |
| } buffer | |
| unsigned int micro_frames = 0 | |
| } | isoc |
| ::HANDLE | process = ::GetCurrentProcess() |
| uint64_t & | sequence |
| std::recursive_mutex | start_stop_in_progress |
| start/stop operation in progress | |
| std::recursive_mutex | start_stop_in_progress |
| start/stop operation in progress | |
| return * | this |
| size_t size | try |
| struct { | |
| ::WINUSB_INTERFACE_HANDLE handle | |
| } | winusb |
|
inherited |
|
inherited |
|
stronginherited |
|
inline |
|
inlineoverride |
|
inlineinherited |
|
inlinevirtualinherited |
The default implementation is based on event<user> which is signalled when triggered via callback() from kernel. This is to achieve compatibility with Windows events. Its probably more adequate to overwrite callback() and do the work here if feasible.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineoverridevirtualnoexcept |
conclude notification: object will be removed. If you overwrite conclude() you also need to overwrite destructor and check if its needed to be called from there. Called only through try_conclude() - never call this directly from outside the class hierarchy.
Reimplemented from dx::object.
|
inlinenoexceptinherited |
waits for already-submitted requests to complete on their own, without cancelling them
|
inlineprotectedinherited |
|
inlinenoexceptinherited |
|
inline |
|
inlinenoexceptinherited |
|
protectedinherited |
|
pure virtualnoexceptinherited |
notification exception handler
|
inlineprotectedvirtualinherited |
|
inlineprotectedvirtualinherited |
|
inlineoverrideprotectedvirtualnoexceptinherited |
async IO thread control (required for Windows compatibility)
Reimplemented from dx::stream::control< stream::object< device<> > >.
|
protectedpure virtualinherited |
|
inlineoverridevirtualnoexcept |
log object class information
< Bit D7 indicates a requirement for wMaxPacketSize packets.; D7: MaxPacketsOnly
< D1..0: Pitch Control; D3..2: Data Overrun Control; D5..4: Data Underrun Control; D7..6: Reserved. Must be set to 0.
< Indicates the units used for the wLockDelay field: 0: Undefined; 1: Milliseconds; 2: Decoded PCM samples; 3..255: Reserved
< Indicates the time it takes this endpoint to reliably lock its internal clock recovery circuitry. Units used depend on the value of the bLockDelayUnits field.
< Number of Embedded MIDI Jacks: n.
< ID of the n-th Embedded Jack that is associated with this endpoint.
Reimplemented from dx::stream::control< stream::object< device<> > >.
Reimplemented in dx::usb::stream::pipe< device_t, circular_t, stream_t >.
|
inlinevirtualinherited |
|
inlinevirtualinherited |
Reimplemented in dx::shared::event.
|
inlineprotectedvirtualinherited |
launch notification: object mounted and ready to use. Called only through try_launch() - never call this directly from outside the class hierarchy.
|
inlinenoexceptinherited |
|
inlinenoexceptinherited |
|
inline |
synchronous USB write request
|
inline |
synchronous USB read request
|
inlineprotectedinherited |
synchronous USB read request
|
inlineprotectedinherited |
asynchronous USB read request
|
inlineprotectedvirtualinherited |
virtual async callbacks
|
inlineoverridevirtualinherited |
Implements dx::abstract::event.
|
inlineoverridevirtualinherited |
Implements dx::abstract::event.
|
inlineinherited |
|
inlineinherited |
|
inlinevirtualinherited |
result indicates if start changed the state.
|
inlinevirtualinherited |
result indicates if start changed the state.
|
inlinevirtualnoexceptinherited |
result indicates the amount of stopped start references
|
inlinevirtualnoexceptinherited |
result indicates the amount of stopped start references
|
inlineinherited |
standard request to pipe
|
inlineprotectedvirtualinherited |
|
inlinenoexceptinherited |
atomically conclude()s if currently launched; returns whether this call did it
|
inlinenoexceptinherited |
atomically conclude()s if currently launched; returns whether this call did it
|
inlineinherited |
atomically launch()es if not already launched; returns whether this call did it
|
inlineinherited |
atomically launch()es if not already launched; returns whether this call did it
|
inlineoverridevirtualinherited |
Implements dx::abstract::event.
|
inlineoverridevirtualinherited |
Implements dx::abstract::event.
|
inlineinherited |
wait with duration timeout returns true: signalled false: timed out
|
inlineinherited |
wait with duration timeout returns true: signalled false: timed out
|
inlineprotectedinherited |
synchronous USB write request
| struct { ... } dx::usb::platform::pipe< device<>, interface >::address |
| const usb::endpoint::attributes& dx::usb::pipe< device_t >::attributes = reinterpret_cast<const struct usb::endpoint::attributes&>(bmAttributes) |
|
inherited |
| class { ... } ::buffer dx::usb::platform::pipe< device<>, interface >::buffer |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
protectedinherited |
|
inherited |
| struct { ... } dx::usb::platform::pipe< device<>, interface >::isoc |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
start/stop operation in progress
|
protectedinherited |
start/stop operation in progress
|
inherited |
|
inherited |
|
protectedinherited |
|
protectedinherited |
| struct { ... } dx::usb::platform::pipe< device<>, interface >::winusb |
| (c) copyright 2009 dynamic acoustics e.U. | generated on |