dxd - dynax driver framework 2.3.0d118
cross platform open source driver development framework
|
#include <dx_usb_device.h>
Public Types | |
typedef device_t | device_t |
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) | |
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. | |
dx_catchall_handler (this,) void conclude() noexcept override | |
dx_catchall_handler (this,) void conclude() noexcept override | |
dx_catchall_rethrow () os_result status() const noexcept | |
dx_catchall_rethrow (;,"endpoint:%x interface:%d setting:%d", endpoint.address, endpoint.interface, endpoint.setting) bool in() 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 |
log object class information | |
virtual void | launch () |
launch notification: object mounted and ready to use | |
pipe & | max_frame_size (uint32_t frame_size) |
operator os_event () 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) | |
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 |
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 |
~pipe () noexcept override | |
Public Attributes | |
const usb::endpoint::attributes & | attributes = reinterpret_cast<const struct usb::endpoint::attributes&>(bmAttributes) |
std::deque< union audio::descriptor::endpoint > | audio |
interface_t & | interface |
bool | launched {} |
bool | launched {} |
std::deque< std::function< void(control &)> | notify ) |
std::deque< std::function< void(control &)> | notify ) |
std::atomic< unsigned int > | started |
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 | |
virtual void | flush () |
virtual void | flush () |
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 *) |
Protected Attributes | ||
struct { | ||
} | address | |
uint8_t | address = 0 | |
device_t & | device | |
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 | ||
std::recursive_mutex | start_stop_in_progress | |
start/stop operation in progress | ||
struct { | ||
::WINUSB_INTERFACE_HANDLE handle | ||
} | winusb | |
|
inherited |
|
inherited |
|
protectedinherited |
|
stronginherited |
|
stronginherited |
|
inline |
|
inlineoverridenoexcept |
|
inlineinherited |
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.
Reimplemented from dx::object.
|
inlineoverridenoexceptinherited |
|
inlineoverridenoexceptinherited |
|
inlinenoexceptinherited |
|
inlinenoexcept |
|
inlineinherited |
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, preference_t, stream_t >, dx::proxy::device, dx::usb::platform::device, and dx::proxy::device.
|
inlineprotectedvirtualinherited |
|
inlineprotectedvirtualinherited |
|
inlineoverrideprotectedvirtualnoexceptinherited |
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, dx::preference, pipe >, dx::circular, usb::pipe< device< desc_t, dx::preference, pipe > > >, and dx::stream::stream< device_t, dx::circular, usb::pipe< device_t > >.
|
inlinenoexceptinherited |
bus initializer (isoc, bulk, pci, etc.) compatibility
|
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_t > >.
Reimplemented in dx::stream::stream< device< desc_t, dx::preference, pipe >, dx::circular, usb::pipe< device< desc_t, dx::preference, pipe > > >, and dx::stream::stream< device_t, dx::circular, usb::pipe< device_t > >.
|
inlinevirtualinherited |
launch notification: object mounted and ready to use
Reimplemented in dx::map::driver< device >, dx::map::driver< device_t >, dx::stream::stream< device< desc_t, dx::preference, pipe >, dx::circular, usb::pipe< device< desc_t, dx::preference, pipe > > >, dx::stream::stream< device_t, dx::circular, usb::pipe< device_t > >, dx::usb::stream::_device< desc_t, preference_t, stream_t >, dx::virtuel::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 >.
|
inline |
|
inline |
synchronous USB write request
|
inline |
synchronous USB read request
|
inlineprotectedvirtualinherited |
virtual async callbacks
|
inlineprotectedvirtualinherited |
virtual async callbacks
|
inlineprotectedvirtualinherited |
|
inlineprotectedvirtualinherited |
|
inlineoverridevirtualinherited |
async IO thread control
Reimplemented from dx::stream::control< stream::object< device_t > >.
Reimplemented in dx::stream::stream< device< desc_t, dx::preference, pipe >, dx::circular, usb::pipe< device< desc_t, dx::preference, pipe > > >, and dx::stream::stream< device_t, dx::circular, usb::pipe< device_t > >.
|
inlinevirtualnoexceptinherited |
result indicates the amount of stopped start references
|
inlinevirtualnoexceptinherited |
result indicates the amount of stopped start references
|
inlineinherited |
standard request to pipe
|
inlineprotectedvirtualinherited |
|
inlineprotectedvirtualinherited |
|
inlineprotectedvirtualinherited |
|
inlineprotectedvirtualinherited |
|
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 |
|
protectedinherited |
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_t, interface_t >::buffer |
|
protectedinherited |
|
protectedinherited |
|
inherited |
|
protectedinherited |
|
inherited |
struct { ... } dx::usb::platform::pipe< device_t, interface_t >::isoc |
|
protectedinherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
protectedinherited |
start/stop operation in progress
|
protectedinherited |
start/stop operation in progress
|
inherited |
|
inherited |
|
inherited |
struct { ... } dx::usb::platform::pipe< device_t, interface_t >::winusb |
(c) copyright 2009 dynamic acoustics e.U. | generated on Fri May 16 2025 |