|
dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
|
#include <dx_coremidi_server.h>
Public Member Functions | |
| template<typename coremidi_device_t> | |
| pin (coremidi_device_t &device, const typename super::device_t::desc::stream::desc &stream_desc, const typename super::desc &pin_desc) | |
| pin constructor | |
| void | receive (const ::MIDIPacketList *pktlist) |
| kernel notification event | |
| void | transmit () noexcept |
| circular data driven streaming out thread transmit is seen from the based circular buffer perspective transmits circular MIDI data (usually from a HW device) via CoreMIDI MIDIReceived to the OS CoreMIDI Input endpoint (to be received by applications) coremidi::server::pin::circular -> CoreMIDI MIDIReceived (OS CoreMIDI MIDI Input endpoint) | |
| ~pin () override | |
| pin destructor | |
/brief CoreMIDI pin
|
inline |
pin constructor
the pin's own share, composed with this endpoint's data event and its transmit thread
|
inlineoverride |
pin destructor
|
inline |
kernel notification event
launch() is triggered by the streaming device kernel extension whenever new MIDI data arrive.
receive CoreMIDI data from system and encode in circular buffer (usually to be used by a HW device device to send out to its HW MIDI Output ports) receive is seen from the based circular buffer perspective
flow control & signalisation this->data[dx::stream::direction::in] -> signals data arrival(in) this->data[dx::stream::direction::out] -> waits for data draining(out) - stalls all MIDI receiving
However CoreMIDI itself buffers internally all MIDI events so that an effectiv MIDI flow control can't be implemented at that stage.
|
inlinenoexcept |
circular data driven streaming out thread transmit is seen from the based circular buffer perspective transmits circular MIDI data (usually from a HW device) via CoreMIDI MIDIReceived to the OS CoreMIDI Input endpoint (to be received by applications) coremidi::server::pin::circular -> CoreMIDI MIDIReceived (OS CoreMIDI MIDI Input endpoint)
flow control & signalisation this->data[dx::stream::direction::out] -> signals data draining(out) this->data[dx::stream::direction::in] -> waits for data arrival(in)
| (c) copyright 2009 dynamic acoustics e.U. | generated on |