dxd - dynax driver framework  2979
cross platform open source driver development framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dx::coremidi::stream< io_t, bus_t, stream_desc_t, device_t > Class Template Reference

stream More...

#include <dx_coremidi.h>

+ Inheritance diagram for dx::coremidi::stream< io_t, bus_t, stream_desc_t, device_t >:
+ Collaboration diagram for dx::coremidi::stream< io_t, bus_t, stream_desc_t, device_t >:

Public Member Functions

void launch () override
 kernel notification event More...
 
void signal ()
 signal data available More...
 
 stream (device_t &device, const stream_desc_t &stream_desc)
 MIDI stream constructor. More...
 
 ~stream () noexcept
 MIDI stream destructor. More...
 

Public Attributes

iobridge< io_t > io
 

Protected Member Functions

 catch (std::system_error &exception)
 
 catch (std::system_error &exception)
 
 catch (std::system_error &exception)
 
 operator os_event () noexcept
 
eventreset () try
 
eventwait () try
 

Detailed Description

template<typename io_t, typename bus_t, typename stream_desc_t, typename device_t = device>
class dx::coremidi::stream< io_t, bus_t, stream_desc_t, device_t >

stream

the dx::midi::stream unites the shared pin features. Most notably it implements a single kernel notification to be distributed to the dx::midi::pins in user mode, to avoid multiple kernel-user mode notifications for pins sharing a devce stream (avoiding all the kernel infrastructure to keep track of kernel-user notification references.)

Constructor & Destructor Documentation

template<typename io_t , typename bus_t , typename stream_desc_t , typename device_t = device>
dx::coremidi::stream< io_t, bus_t, stream_desc_t, device_t >::stream ( device_t &  device,
const stream_desc_t &  stream_desc 
)
inline

MIDI stream constructor.

template<typename io_t , typename bus_t , typename stream_desc_t , typename device_t = device>
dx::coremidi::stream< io_t, bus_t, stream_desc_t, device_t >::~stream ( )
inlinenoexcept

MIDI stream destructor.

Stops and closes kernel stream.

Member Function Documentation

dx::event< user >::catch ( std::system_error &  exception)
inlineinherited
dx::event< user >::catch ( std::system_error &  exception)
inlineinherited
dx::event< user >::catch ( std::system_error &  exception)
inlineinherited
template<typename io_t , typename bus_t , typename stream_desc_t , typename device_t = device>
void dx::coremidi::stream< io_t, bus_t, stream_desc_t, device_t >::launch ( )
inlineoverridevirtual

kernel notification event

Reimplemented from dx::event< kernel >.

+ Here is the call graph for this function:

dx::event< kernel >::operator os_event ( )
inlinenoexceptinherited
event& dx::event< user >::reset ( )
inlineinherited

+ Here is the caller graph for this function:

template<typename io_t , typename bus_t , typename stream_desc_t , typename device_t = device>
void dx::coremidi::stream< io_t, bus_t, stream_desc_t, device_t >::signal ( )
inline

signal data available

Todo:
Windows: remove and implement shared event::signal
event& dx::event< user >::wait ( )
inlineinherited

Member Data Documentation

iobridge<io_t > dx::stream::opened< io_t >::io
inherited

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

(c) copyright 2009 dynamic acoustics e.U. generated on Fri Nov 8 2019

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.