|
| 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<non_pointer ext_t, typename circular_t = ext_t> |
| bool | 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<non_pointer ext_t, typename circular_t = ext_t> |
| bool | 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<non_pointer ext_t, typename circular_t = ext_t> |
| bool | 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<non_pointer ext_t, typename circular_t = ext_t> |
| bool | 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<non_pointer ext_t, typename circular_t = ext_t> |
| bool | 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 ext_t, typename circular_t = ext_t> |
| bool | mix_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 mix into circular buffer at position with format conversion if applicable
|
| template<typename callback_t> |
| bool | move (callback_t &callback, uint64_t max) |
| template<non_pointer data_t> |
| bool | operator<< (const data_t &src) |
| template<non_pointer data_t> |
| bool | operator>> (data_t &dst) |
| template<auto op, typename ext_t, typename circular_t> |
| void | put (uint64_t position, const ext_t *const *src, uint64_t bulk, uint32_t channels_circular, uint32_t channels_src, uint32_t circular_offset, uint32_t interleaved, uint64_t src_offset=0) |
| | multi channel interleaved bulk placement into circular space at position with wrap-around; channel operation (copy/add) selected at compile time
|
| template<non_pointer ext_t, typename circular_t = ext_t> |
| bool | 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<non_pointer ext_t, typename circular_t = ext_t> |
| bool | read (ext_t *dst, uint64_t bulk=1, uint32_t channels_circular=1, uint32_t circular_offset=0, uint32_t interleaved=1) |
| template<non_pointer ext_t, typename circular_t = ext_t> |
| bool | 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<non_pointer ext_t, typename circular_t = ext_t> |
| bool | 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<non_pointer ext_t, typename circular_t = ext_t> |
| bool | 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<non_pointer ext_t, typename circular_t = ext_t> |
| bool | 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.