dxd - dynax driver framework 2.2.0d91
cross platform open source driver development framework
|
#include <dx_usb_device_platform.h>
Classes | |
struct | isoc |
Public Types | |
typedef device_t | device_t |
enum class | type : uint8_t { control =::kUSBControl , isoc = ::kUSBIsoc , bulk = ::kUSBBulk , irq = ::kUSBInterrupt , control =::UsbdPipeTypeControl , isoc = ::UsbdPipeTypeIsochronous , bulk = ::UsbdPipeTypeBulk , irq = ::UsbdPipeTypeInterrupt } |
enum class | type : unsigned char { control =::kUSBControl , isoc = ::kUSBIsoc , bulk = ::kUSBBulk , irq = ::kUSBInterrupt , control =::UsbdPipeTypeControl , isoc = ::UsbdPipeTypeIsochronous , bulk = ::UsbdPipeTypeBulk , irq = ::UsbdPipeTypeInterrupt } |
Public Member Functions | |
pipe & | abort () try |
virtual void | callback () |
catch (...) | |
catch (...) | |
catch (...) | |
catch (...) | |
catch (const dx::exception &__dx_exception) | |
catch (const dx::exception &__dx_exception) | |
catch (const dx::exception &__dx_exception) | |
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) | |
virtual void | conclude () noexcept |
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. | |
dx_catchall_handler (this,) void conclude() noexcept override | |
dx_catchall_rethrow () os_result status() const noexcept | |
dx_catchall_rethrow (try {const_cast< pipe * >(this) ->clear();} dx_catchall_handler(this,), "idx:%d size:%lld", idx, sizeof request) template< typename data_t > data_t submit(const control &control) const | |
control request to pipe | |
virtual void | exception (const exception &exception, bool filtered=false) const noexcept=0 |
notification exception handler | |
bool | in () const noexcept |
bus initializer (isoc, bulk, pci, etc.) compatibility | |
void | info (std::ostream &os) noexcept override try |
virtual void | launch () |
launch notification: object mounted and ready to use | |
operator os_event () noexcept | |
pipe (device_t &device, const endpoint &endpoint) | |
event & | reset (uint64_t count=0) try |
event & | reset (uint64_t count=0) try |
event & | signal (uint64_t count=1) try |
event & | signal (uint64_t count=1) try |
uint64_t | signalled () const |
uint64_t | signalled () const |
bool | start (uint64_t frame, unsigned int started=1) override try |
async IO thread control | |
virtual unsigned int | stop (bool force=false) noexcept |
template<typename data_t > | |
pipe & | submit (const request< data_t > &request) const try |
standard request to pipe | |
event & | wait (bool reset=false) try |
event & | wait (bool reset=false) try |
template<typename rep_t , typename period_t > | |
bool | wait (const std::chrono::duration< rep_t, period_t > &timeout, bool reset=false) try |
template<typename rep_t , typename period_t > | |
bool | wait (const std::chrono::duration< rep_t, period_t > &timeout, bool reset=false) try |
Public Attributes | |
interface_t & | interface |
bool | launched {} |
std::deque< std::function< void(control &)> | notify ) |
std::atomic< unsigned int > | started |
enum dx::usb::platform::pipe::type | type |
Static Public Attributes | |
static constexpr auto | scope = kernel |
Protected Types | |
typedef dx::event< dx::kernel > | event |
Protected Member Functions | |
void | halt () noexcept override |
async IO thread control (required for Windows compatibility) | |
virtual void | received (os_result, size_t) |
virtual async callbacks | |
virtual void | received (os_result, size_t) |
virtual async callbacks | |
virtual void | received (os_result, size_t, int64_t, usb::isoc::frame *) |
virtual void | received (os_result, size_t, int64_t, usb::isoc::frame *) |
virtual void | transmitted (os_result, size_t) |
virtual void | transmitted (os_result, size_t) |
virtual void | transmitted (os_result, size_t, int64_t, usb::isoc::frame *) |
virtual void | transmitted (os_result, size_t, int64_t, usb::isoc::frame *) |
~pipe () noexcept override | |
Protected Attributes | ||
struct { | ||
} | address | |
uint8_t | address = 0 | |
device_t & | device | |
uint8_t | idx = 0 | |
struct { | ||
class buffer { | ||
} buffer | ||
unsigned int micro_frames = 0 | ||
} | isoc | |
struct dx::usb::platform::pipe::isoc | isoc | |
std::recursive_mutex | start_stop_in_progress | |
start/stop operation in progress | ||
struct { | ||
::WINUSB_INTERFACE_HANDLE handle | ||
} | winusb | |
|
inherited |
|
protected |
|
strong |
|
strong |
|
inlineoverrideprotectednoexcept |
|
inline |
|
inline |
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 |
|
inlinevirtualnoexceptinherited |
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.
Reimplemented in dx::proxy::stream::_device< desc_t, stream_t >, dx::usb::pipe< device_t >, dx::usb::pipe< device_t >, dx::proxy::device, dx::proxy::device, dx::map::driver< device >, and dx::map::driver< device_t >.
|
inlineoverridenoexceptinherited |
|
inlinenoexcept |
|
inline |
control request to pipe
|
pure virtualnoexceptinherited |
notification exception handler
Implemented in dx::device< std::string >, dx::device<::AudioObjectID >, dx::device<::io_service_t >, dx::device< id_t >, dx::stream::pin< device_t, _circular_t >, dx::virtuel::stream::_device< desc_t, stream_t >, dx::proxy::device, dx::usb::platform::device, and dx::proxy::device.
|
inlineoverrideprotectedvirtualnoexcept |
async IO thread control (required for Windows compatibility)
Reimplemented from dx::stream::control< stream::object< device_t > >.
Reimplemented in dx::stream::stream< device< desc_t, pipe >, dx::circular, usb::pipe< device< desc_t, pipe > > >, and dx::stream::stream< device_t, dx::circular, usb::pipe< device_t > >.
|
inlinenoexcept |
bus initializer (isoc, bulk, pci, etc.) compatibility
|
inlineoverridevirtualnoexceptinherited |
|
inlinevirtualinherited |
launch notification: object mounted and ready to use
Reimplemented in dx::stream::stream< device< desc_t, pipe >, dx::circular, usb::pipe< device< desc_t, pipe > > >, dx::stream::stream< device_t, dx::circular, usb::pipe< device_t > >, dx::usb::stream::_device< desc_t, stream_t >, dx::virtuel::driver< device_t >, dx::coreaudio::driver< device_t >, dx::proxy::driver< device< pin_t > >, dx::proxy::driver< device< stream_pin_t > >, dx::proxy::driver< device< super_device_t > >, dx::proxy::driver< device_t >, dx::proxy::driver< dx::test::device< super_device_t > >, dx::proxy::driver< dx::test::midi::device< super_device_t > >, dx::proxy::driver< device_t >, dx::proxy::driver< device< pin_t > >, dx::proxy::driver< device< stream_pin_t > >, dx::proxy::driver< device< super_device_t > >, dx::proxy::driver< device_t >, dx::proxy::driver< dx::test::device< super_device_t > >, dx::proxy::driver< dx::test::midi::device< super_device_t > >, and dx::proxy::driver< device_t >.
|
inlineprotectedvirtual |
virtual async callbacks
|
inlineprotectedvirtual |
virtual async callbacks
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineoverridevirtual |
async IO thread control
Reimplemented from dx::stream::control< stream::object< device_t > >.
Reimplemented in dx::stream::stream< device< desc_t, pipe >, dx::circular, usb::pipe< device< desc_t, pipe > > >, and dx::stream::stream< device_t, dx::circular, usb::pipe< device_t > >.
|
inlinevirtualnoexceptinherited |
result indicates the amount of stopped start references
|
inline |
standard request to pipe
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
|
inlineinherited |
wait with duration timeout returns true: signalled false: timed out
|
inlineinherited |
wait with duration timeout returns true: signalled false: timed out
struct { ... } dx::usb::platform::pipe< device_t, interface_t >::address |
|
protected |
class { ... } ::buffer dx::usb::platform::pipe< device_t, interface_t >::buffer |
|
protectedinherited |
::WINUSB_INTERFACE_HANDLE dx::usb::platform::pipe< device_t, interface_t >::handle |
|
protected |
interface_t & dx::usb::platform::pipe< device_t, interface_t >::interface |
struct { ... } dx::usb::platform::pipe< device_t, interface_t >::isoc |
|
protected |
|
inherited |
unsigned int dx::usb::platform::pipe< device_t, interface_t >::micro_frames = 0 |
|
inherited |
|
protectedinherited |
start/stop operation in progress
|
inherited |
enum dx::usb::platform::pipe::type dx::usb::platform::pipe< device_t, interface_t >::type |
struct { ... } dx::usb::platform::pipe< device_t, interface_t >::winusb |
(c) copyright 2009 dynamic acoustics e.U. | generated on Tue Mar 11 2025 |