|
| enum | speed {
low =::kUSBHostConnectionSpeedLow
, full =::kUSBHostConnectionSpeedFull
, high =::kUSBHostConnectionSpeedHigh
, usb1 =full
,
usb2 =high
, low =::kUSBHostConnectionSpeedLow
, full =::kUSBHostConnectionSpeedFull
, high =::kUSBHostConnectionSpeedHigh
,
usb1 =full
, usb2 =high
} |
| enum | speed {
low =::kUSBHostConnectionSpeedLow
, full =::kUSBHostConnectionSpeedFull
, high =::kUSBHostConnectionSpeedHigh
, usb1 =full
,
usb2 =high
, low =::kUSBHostConnectionSpeedLow
, full =::kUSBHostConnectionSpeedFull
, high =::kUSBHostConnectionSpeedHigh
,
usb1 =full
, usb2 =high
} |
|
| os_result | clear () |
| unsigned char | configuration () const |
| unsigned char | configuration () const |
| | return available USB configurations
|
| os_result | configuration (unsigned char configuration) |
| os_result | configuration (unsigned char configuration) |
| | choose USB configuration
|
| unsigned char | configurations () const |
| unsigned char | configurations () const |
| | return current USB configuration
|
| decltype(dx::usb::descriptor::device) | descriptor () const |
| | IOKit: request the USB device descriptor.
|
| uint64_t | frame () const |
| uint64_t | frame () const |
| ::IOUSBHostInterface * | interface (unsigned char index, unsigned char setting=0) |
| | IOKit: USB interface.
|
| const ::USBD_INTERFACE_INFORMATION * | interface (unsigned char index, unsigned char setting=0) |
| | operator const ::HANDLE () const |
| | operator const::IOLock * () const |
| | operator::DEVICE_OBJECT * () const |
| | operator::IOLock * () |
| | operator::IOUSBHostDevice * () const |
| | IOKit: IOUSBDevice* implicit cast.
|
| template<typename type_t> |
| os_result | query (const ::UNICODE_STRING &key, type_t &value) |
| template<typename key_t, typename type_t> |
| os_result | query (key_t *key, type_t &value) |
| os_result | remove () |
| template<typename data_t> |
| os_result | request (const dx::usb::control &control, data_t &data) |
| | IOKit: synchronously sends an USB request.
|
| template<typename data_t> |
| os_result | request (const dx::usb::control &control, data_t &data) |
| os_result | request (const dx::usb::control &control, void *data, size_t &size) |
| os_result | request (const dx::usb::control &control, void *data, size_t &size) |
| os_result | set (const ::UNICODE_STRING &key, const ::GUID &value) |
| os_result | set (const ::UNICODE_STRING &key, const ::UNICODE_STRING &value) |
| os_result | set (const ::UNICODE_STRING &key, const char *value) |
| os_result | set (const ::UNICODE_STRING &key, const wchar_t *value) |
| os_result | set (const ::UNICODE_STRING &key, unsigned int value) |
| template<typename key_t, typename type_t> |
| os_result | set (key_t *key, const type_t &value) |
| speed | speed () const |
| speed | speed () const |
| os_result | state () const |
| os_result | string (unsigned char idx, char *string, unsigned char &chars) |
| os_result | string (unsigned char idx, char *string, unsigned char &chars, dx::usb::language language=dx::usb::language::standard) |
| | IOKit: request the USB string descriptor for the index.
|
| template<typename string_t> |
| os_result | string (unsigned char idx, string_t &string) |
| template<typename string_t> |
| os_result | string (unsigned char idx, string_t &string) |
| template<typename type_t> |
| unsigned long | type () |
| os_result dxd::usb_device::configuration |
( |
unsigned char | configuration | ) |
|
|
inlineinherited |
choose USB configuration
removes interface cache
deselects current configuration on request #0
obtains the configuration descriptor,
obtains all descriptors,
enumerates interfaces in the configuration,
allocates and builds an URB for the select-configuration request,
creates interface cache
enumerates the pipes in the interface information array, which is now filled with pipe information.
| const ::USBD_INTERFACE_INFORMATION * dxd::usb_device::interface |
( |
unsigned char | index, |
|
|
unsigned char | setting = 0 ) |
|
inlineinherited |
requests settings change,
disposes and creates new interface cache on size change,
and fills interface cache,
| os_result dxd::usb_stream_device::ioctl |
( |
unsigned int | ioctl, |
|
|
const void * | in, |
|
|
size_t | size_in, |
|
|
void * | out, |
|
|
size_t | size_out, |
|
|
size_t & | size ) |
|
inlineoverrideprotected |
usb IOCTL handler
virtual ioctl() gets called by the dynax driver framework for usb device IOCTL handling.
implemented handler
checks endpoint address,
obtains stream index from endpoint address
checks if stream is opened;
detaches mapping from stream
checks endpoint address,
checks stream user mode mapping,
checks endpoint address,
checks stream user mode mapping,
- <i>dx::ioctl::stream::clock::samplerate</i>
- in: clock domain ID (ignored since the supported devices only
have one clock domain so far)
+ optional (unsigned int) samplerate,
- out:
optional (unsigned int) samplerate, or
optional dx::iobridge<unsigned int> samplerate map
/
- Todo
- clean way of switching SR of device or endpoint, /when streams are opened or closed
checks clock domain validity,
prevent samplerate setting when streaming
setup stream DMA to be used with the new samplerate
- dx::usb::descriptor - obtain generic USB device descriptor
- in: none,
- out: dx::usb::device_descriptor
- dx::usb::string - obtain generic USB device string
- in: (char) string index,
- out: unsigned short[] unicode string from device
- dx::usb::configuration - select/obtain USB configuration
- in: optional (unsigned char) configuration,
- out: optional (unsigned char) configuration,
- Parameters
-
| ioctl | IOCTL |
| in | buffer pointer containing data from user mode |
| size_in | size of the buffer containing data from user mode |
| out | buffer pointer accepting data to be returned to user mode |
| size_out | size of the buffer accepting data to be returned to user mode |
| size | actual size of data to be returned to user mode |