dxd - dynax driver framework 2.1.0d58
cross platform open source driver development framework
Loading...
Searching...
No Matches
dx::coremidi::server::device< stream_pin_t > Class Template Reference

CoreMIDI device. More...

#include <dx_coremidi_server.h>

+ Inheritance diagram for dx::coremidi::server::device< stream_pin_t >:
+ Collaboration diagram for dx::coremidi::server::device< stream_pin_t >:

Public Member Functions

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

Public Attributes

::MIDIDeviceRef coremidi_device {}
 

Protected Member Functions

virtual void exception (const dx::exception &exception, bool filtered=false) const noexcept
 
::CFRunLoopRef runloop () noexcept
 

Protected Attributes

std::deque< pin > pins
 

Detailed Description

template<typename stream_pin_t>
class dx::coremidi::server::device< stream_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

◆ conclude()

template<typename stream_pin_t >
void dx::coremidi::server::device< stream_pin_t >::conclude ( )
inlineoverridenoexcept

removes dx::device from CoreMIDI plugin

◆ exception()

template<typename stream_pin_t >
virtual void dx::coremidi::server::device< stream_pin_t >::exception ( const dx::exception & exception,
bool filtered = false ) const
inlineprotectedvirtualnoexcept
+ Here is the call graph for this function:

◆ launch()

template<typename stream_pin_t >
void dx::coremidi::server::device< stream_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

Todo
test if CoreMIDI device image resource exists

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

register all MIDI pins across all streams

◆ operator=()

template<typename stream_pin_t >
void dx::coremidi::server::device< stream_pin_t >::operator= ( ::MIDIDriverRef plugin)
inlinenoexcept

attaches CoreMIDI plugin parent

Todo
make coremidi_device private

◆ runloop()

template<typename stream_pin_t >
::CFRunLoopRef dx::coremidi::server::device< stream_pin_t >::runloop ( )
inlineprotectednoexcept

Member Data Documentation

◆ coremidi_device

template<typename stream_pin_t >
::MIDIDeviceRef dx::coremidi::server::device< stream_pin_t >::coremidi_device {}

◆ pins

template<typename stream_pin_t >
std::deque<pin> dx::coremidi::server::device< stream_pin_t >::pins
protected

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

(c) copyright 2009 dynamic acoustics e.U. generated on Sun Apr 28 2024

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.