|
size_t | decode (uint64_t &rx, union msg &msg, uint8_t cable) |
| USB MIDI msg word to OS MIDI stream format decoder.
|
|
uint64_t | empty () const |
|
uint64_t | empty (uint64_t position) const |
|
bool | encode (const uint8_t *os_midi_package, size_t length, uint8_t cable) |
| OS MIDI stream to USB MIDI msg word format encoder.
|
|
template<typename ext_t , typename circular_t = ext_t> |
hide_if_ptr< ext_t > | force_read (ext_t *const *dst, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t channels_dst=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
|
template<typename ext_t , typename circular_t = ext_t> |
hide_if_ptr< ext_t > | force_read (ext_t *dst, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
|
template<typename ext_t , typename circular_t = ext_t> |
bool | force_read (volatile uint64_t &position, ext_t *const *dst, uint64_t bulk, uint32_t channels_circular=1, uint32_t channels_dst=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
| multi channel interleaved bulk read from circular buffer with format conversion if applicable
|
|
template<typename ext_t , typename circular_t = ext_t> |
hide_if_ptr< ext_t > | force_read (volatile uint64_t &position, ext_t *dst, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
|
template<typename ext_t , typename circular_t = ext_t> |
bool | force_write (const ext_t *const *src, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t channels_src=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
|
template<typename ext_t , typename circular_t = ext_t> |
hide_if_ptr< ext_t > | force_write (const ext_t *src, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
|
template<typename data_t > |
bool | force_write (data_t *const *const *src, uint64_t clients, uint64_t channels, uint64_t bulk) |
|
template<typename circular_t , typename src_t > |
bool | force_write (src_t *const *const *src, uint32_t clients, uint32_t channels=1, uint64_t bulk=1) |
| multi channel multi client bulk mix into circular buffer with format conversion if applicable src[client][channel][sample]
|
|
template<typename ext_t , typename circular_t = ext_t> |
bool | force_write (volatile uint64_t &position, const ext_t *const *src, uint64_t bulk, uint32_t channels_circular=1, uint32_t channels_src=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
| multi channel interleaved bulk write into circular buffer with format conversion if applicable
|
|
template<typename ext_t , typename circular_t = ext_t> |
hide_if_ptr< ext_t > | force_write (volatile uint64_t &position, const ext_t *src, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
| single channel convenience access templates
|
|
void | initialize () |
|
void | initialize (uint64_t backingstore_size) |
|
uint64_t | loop () const |
|
template<typename callback_t > |
void | move (callback_t &callback, uint64_t max) |
|
template<typename data_t > |
hide_if_ptr< data_t > | operator<< (const data_t &src) |
|
template<typename data_t > |
hide_if_ptr< data_t > | operator>> (data_t &dst) |
|
template<typename ext_t , typename circular_t = ext_t> |
hide_if_ptr< ext_t > | read (ext_t *const *dst, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t channels_dst=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
|
template<typename ext_t , typename circular_t = ext_t> |
hide_if_ptr< ext_t > | read (ext_t *dst, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
|
template<typename ext_t , typename circular_t = ext_t> |
hide_if_ptr< ext_t > | read (volatile uint64_t &position, ext_t *const *dst, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t channels_dst=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
|
template<typename ext_t , typename circular_t = ext_t> |
hide_if_ptr< ext_t > | read (volatile uint64_t &position, ext_t *dst, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
|
template<typename dst_t = uint8_t> |
dst_t * | simulate_read (uint64_t bulk=1) |
|
template<typename dst_t = uint8_t> |
dst_t * | simulate_read (volatile uint64_t &position, uint64_t bulk) |
|
uint8_t * | simulate_write (uint64_t bulk) |
| simulate write by advancing write idx and take care of wrap write optimization
|
|
uint64_t | used () const |
|
uint64_t | used (uint64_t position) const |
|
template<typename ext_t , typename circular_t = ext_t> |
bool | write (const ext_t *const *src, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t channels_src=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
|
template<typename ext_t , typename circular_t = ext_t> |
hide_if_ptr< ext_t > | write (const ext_t *src, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
|
template<typename ext_t , typename circular_t = ext_t> |
bool | write (volatile uint64_t &position, const ext_t *const *src, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t channels_src=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
| bulk write into circular buffer with format conversion if applicable
|
|
template<typename ext_t , typename circular_t = ext_t> |
hide_if_ptr< ext_t > | write (volatile uint64_t &position, const ext_t *src, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
|
template<
class buffer_t = dx::circular>
struct dx::usb::midi< buffer_t >
USB MIDI packetizer.