dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::test::midi::driver< super_device_t, midi_pin_t, device_t, driver_t, super_driver_t > Class Template Reference

the MIDI exerciser: it sends over one port and counts what comes back on another - the round trip's losses, its slips and its latency, no audio ring involved More...

#include <dx_test_midi.h>

Inheritance diagram for dx::test::midi::driver< super_device_t, midi_pin_t, device_t, driver_t, super_driver_t >:
Collaboration diagram for dx::test::midi::driver< super_device_t, midi_pin_t, device_t, driver_t, super_driver_t >:

Public Member Functions

 driver (const typename super::match &match, const char *product_id, const char *name, const decltype(driver::dictionary)&dictionary={})
void midi_test (const parser::args &args={})
 MIDI round trip test.

Detailed Description

template<typename super_device_t, typename midi_pin_t, typename device_t = dx::test::midi::device<super_device_t>, typename driver_t = dx::proxy::driver<device_t>, typename super_driver_t = dx::test::driver<super_device_t, device_t, driver_t>>
class dx::test::midi::driver< super_device_t, midi_pin_t, device_t, driver_t, super_driver_t >

the MIDI exerciser: it sends over one port and counts what comes back on another - the round trip's losses, its slips and its latency, no audio ring involved

< the test driver it adds its command to: a bus's own (dx::test::usb::driver) keeps that bus's commands beside it

Constructor & Destructor Documentation

◆ driver()

template<typename super_device_t, typename midi_pin_t, typename device_t = dx::test::midi::device<super_device_t>, typename driver_t = dx::proxy::driver<device_t>, typename super_driver_t = dx::test::driver<super_device_t, device_t, driver_t>>
dx::test::midi::driver< super_device_t, midi_pin_t, device_t, driver_t, super_driver_t >::driver ( const typename super::match & match,
const char * product_id,
const char * name,
const decltype(driver< super_device_t, midi_pin_t, device_t, driver_t, super_driver_t >::dictionary)& dictionary = {} )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ midi_test()

template<typename super_device_t, typename midi_pin_t, typename device_t = dx::test::midi::device<super_device_t>, typename driver_t = dx::proxy::driver<device_t>, typename super_driver_t = dx::test::driver<super_device_t, device_t, driver_t>>
void dx::test::midi::driver< super_device_t, midi_pin_t, device_t, driver_t, super_driver_t >::midi_test ( const parser::args & args = {})
inline

MIDI round trip test.

miditest(): test::MIDI::write: pin->write() -> coremidi::stream::transmit() -> OS MIDI -> coremidi::server::pin::receive() -> circular -> HW MIDI Ouptut port -> cable -> HW MIDI Input port -> coremidi::server::receive() -> OS MIDI -> coremidi::stream::receive() -> pin->read(): test::MIDI::read

the counter as a control change: its low 4 bits the channel, the next 7 the controller, the next 7 the value; byte holds whatever a ring's decode() hands out

< the control change's bytes: what goes out, what the ring carries of it


The documentation for this class was generated from the following file:

(c) copyright 2009 dynamic acoustics e.U. generated on

a closed source license may be obtained by requesting a written permission from dynamic acoustics e.U.
however - governmental use generally and military use especially is strictly prohibited though.