20 #ifndef __JackALSARawMidiDriver__    21 #define __JackALSARawMidiDriver__    25 #include <alsa/asoundlib.h>    28 #include "JackALSARawMidiInputPort.h"    29 #include "JackALSARawMidiOutputPort.h"    30 #include "JackMidiDriver.h"    31 #include "JackThread.h"    43         jack_nframes_t *output_port_timeouts;
    45         struct pollfd *poll_fds;
    49         FreeDeviceInfo(std::vector<snd_rawmidi_info_t *> *in_info_list,
    50                        std::vector<snd_rawmidi_info_t *> *out_info_list);
    53         GetDeviceInfo(snd_ctl_t *control, snd_rawmidi_info_t *info,
    54                       std::vector<snd_rawmidi_info_t *> *info_list);
    57         HandleALSAError(
const char *driver_func, 
const char *alsa_func,
    79         Open(
bool capturing, 
bool playing, 
int in_channels, 
int out_channels,
    80              bool monitoring, 
const char *capture_driver_name,
    81              const char *playback_driver_name, jack_nframes_t capture_latency,
    82              jack_nframes_t playback_latency);
 
The base class for MIDI drivers: drivers with MIDI ports.
Locked Engine, access to methods is serialized using a mutex.
The base class for runnable objects, that have an  Init  and  Execute  method to be called in a threa...
Inter process synchronization using POSIX semaphore.
Darwin threads. Real-time threads are actually "time constraint" threads.