61 void drain (
int check_interval_usecs,
int total_usecs_to_wait);
void parse(samplecnt_t timestamp)
int write(const MIDI::byte *msg, size_t msglen, MIDI::timestamp_t timestamp)
void set_timer(std::function< samplecnt_t(void)> &)
std::function< samplecnt_t(void)> timer
int read(MIDI::byte *buf, size_t bufsize)
static bool is_process_thread()
void set_flush_at_cycle_start(bool en)
static pthread_t _process_thread
void cycle_start(pframes_t nframes)
void flush_output_fifo(pframes_t)
PBD::ScopedConnection connect_connection
void cycle_end(pframes_t nframes)
AsyncMIDIPort(std::string const &, PortFlags)
PBD::ScopedConnection halt_connection
static pthread_t get_process_thread()
Glib::Threads::Mutex output_fifo_lock
bool flush_at_cycle_start() const
PBD::RingBuffer< Evoral::Event< double > > output_fifo
bool _flush_at_cycle_start
void init(std::string const &, Flags)
MIDI::timestamp_t _last_write_timestamp
void drain(int check_interval_usecs, int total_usecs_to_wait)
CrossThreadChannel & xthread()
CrossThreadChannel _xthread
EventRingBuffer< MIDI::timestamp_t > input_fifo
static void set_process_thread(pthread_t)
Temporal::samplecnt_t samplecnt_t