20 #ifndef __JackCoreMidiOutputPort__    21 #define __JackCoreMidiOutputPort__    23 #include <semaphore.h>    25 #include "JackCoreMidiPort.h"    26 #include "JackMidiAsyncQueue.h"    27 #include "JackMidiBufferReadQueue.h"    28 #include "JackThread.h"    38         GetCoreMidiEvent(
bool block);
    41         GetTimeStampFromFrames(jack_nframes_t frames);
    43         static const size_t PACKET_BUFFER_SIZE = 65536;
    45         SInt32 advance_schedule_time;
    46         char packet_buffer[PACKET_BUFFER_SIZE];
    48         char semaphore_name[128];
    51         sem_t *thread_queue_semaphore;
    56         SendPacketList(MIDIPacketList *packet_list) = 0;
    59         Initialize(
const char *alias_name, 
const char *client_name,
    60                    const char *driver_name, 
int index,
    61                    MIDIEndpointRef endpoint, SInt32 advance_schedule_time);
    66                                size_t max_messages=1024);
 
The base class for runnable objects, that have an  Init  and  Execute  method to be called in a threa...
Darwin threads. Real-time threads are actually "time constraint" threads.