dxd - dynax driver framework  3208
cross platform open source driver development framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dx::coremidi::device< base_t, pin_t > Class Template Reference

CoreMIDI device. More...

#include <dx_coremidi.h>

+ Inheritance diagram for dx::coremidi::device< base_t, pin_t >:
+ Collaboration diagram for dx::coremidi::device< base_t, pin_t >:

Public Member Functions

void conclude () noexceptoverride
 removes dx::device from CoreMIDI plugin More...
 
void launch () override
 creates dx::device to CoreMIDI plugin as CoreMIDI device More...
 
void operator= (::MIDIDriverRef plugin) noexcept
 attaches CoreMIDI plugin parent More...
 

Public Attributes

::MIDIDeviceRef coremidi_device {}
 

Protected Member Functions

::CFRunLoopRef runloop () noexcept
 

Protected Attributes

std::deque< pin_t > pins
 

Detailed Description

template<typename base_t, typename pin_t>
class dx::coremidi::device< base_t, pin_t >

CoreMIDI device.

the CoreMIDI dx::midi::device<> is based on dx::device<> and features the auto generation of shared MIDI streams for all its MIDI pins. Limitation: all MIDI streams supported by this device instanciation need to be of the same bus type and MIDI pin data organisation. (Other non-MIDI streams or pins that are not used by this CoreMIDI plugin don't violete that restriction.

Member Function Documentation

template<typename base_t , typename pin_t >
void dx::coremidi::device< base_t, pin_t >::conclude ( )
inlineoverridenoexcept

removes dx::device from CoreMIDI plugin

template<typename base_t , typename pin_t >
void dx::coremidi::device< base_t, pin_t >::launch ( )
inlineoverride

creates dx::device to CoreMIDI plugin as CoreMIDI device

Todo:
remove operator=(::MIDIDriverRef)

Creates a CoreMIDI entity for each pin, binds the pin to the CoreMIDI endpoint and attaches the CoreMIDI endpoint to the entity. Another option could be to creat a single CoreMIDI entity and attach all CoreMIDI endpoints to it.

creates CoreMIDI device

creates pins from dxd::device description and adds it as CoreMIDI entity to the CoreMIDI device

template<typename base_t , typename pin_t >
void dx::coremidi::device< base_t, pin_t >::operator= ( ::MIDIDriverRef  plugin)
inlinenoexcept

attaches CoreMIDI plugin parent

Todo:
make coremidi_device private
template<typename base_t , typename pin_t >
::CFRunLoopRef dx::coremidi::device< base_t, pin_t >::runloop ( )
inlineprotectednoexcept

Member Data Documentation

template<typename base_t , typename pin_t >
::MIDIDeviceRef dx::coremidi::device< base_t, pin_t >::coremidi_device {}
template<typename base_t , typename pin_t >
std::deque<pin_t> dx::coremidi::device< base_t, pin_t >::pins
protected

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

(c) copyright 2009 dynamic acoustics e.U. generated on Wed Jun 17 2020

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.