19 #ifndef __libardour_async_midiport_h__
20 #define __libardour_async_midiport_h__
25 #include <boost/function.hpp>
34 #include "midi++/types.h"
35 #include "midi++/parser.h"
36 #include "midi++/port.h"
58 int write (
const MIDI::byte *msg,
size_t msglen, MIDI::timestamp_t timestamp);
59 int read (MIDI::byte *buf,
size_t bufsize);
61 void drain (
int check_interval_usecs);
74 void set_timer (boost::function<
framecnt_t (
void)>&);
76 static void set_process_thread (pthread_t);
78 static bool is_process_thread();
84 boost::function<framecnt_t (void)>
timer;
97 void flush (
void* jack_port_buffer);
99 void make_connections ();
100 void init (std::string
const &, Flags);
RingBuffer< Evoral::Event< double > > output_fifo
boost::function< framecnt_t(void)> timer
EventRingBuffer< MIDI::timestamp_t > input_fifo
Glib::Threads::Mutex output_fifo_lock
static pthread_t _process_thread
PBD::ScopedConnection connect_connection
static pthread_t get_process_thread()
MIDI::timestamp_t _last_write_timestamp
CrossThreadChannel & xthread()
PBD::ScopedConnection halt_connection
LIBARDOUR_API bool init(bool with_vst, bool try_optimization, const char *localedir)
CrossThreadChannel _xthread