21 #include <sigc++/signal.h>
26 #include "ardour/debug.h"
66 if (req->type ==
Quit) {
105 vector<AsyncMIDIPort*> ports;
125 for (vector<AsyncMIDIPort*>::const_iterator pi = ports.begin(); pi != ports.end(); ++pi) {
127 (*pi)->xthread().attach (
_main_loop->get_context());
134 struct sched_param rtparam;
141 memset (&rtparam, 0,
sizeof (rtparam));
142 rtparam.sched_priority = 9;
144 if (pthread_setschedparam (pthread_self(), SCHED_FIFO, &rtparam) != 0) {
static RequestType CallSlot
static void create_per_thread_pool(const std::string &n, uint32_t nitems)
LIBARDOUR_API uint64_t MidiIO
LIBPBD_API void notify_gui_about_thread_creation(std::string, pthread_t, std::string, int requests=256)
void do_request(MidiUIRequest *)
ARDOUR::Session & _session
void parse(framecnt_t timestamp)
#define DEBUG_TRACE(bits, str)
LIBPBD_API void pthread_set_name(const char *name)
MIDI::Port * midi_input_port() const
MIDI::Port * scene_input_port() const
static MidiControlUI * _instance
MIDI::Port * mmc_input_port() const
bool midi_input_handler(Glib::IOCondition, AsyncMIDIPort *)
CrossThreadChannel & xthread()
void set_receive_handler(sigc::slot< bool, Glib::IOCondition > s)
std::string string_compose(const std::string &fmt, const T1 &o1)
Glib::RefPtr< Glib::MainLoop > _main_loop