summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_ui.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-11-23 17:37:13 +0200
committerPaul Davis <paul@linuxaudiosystems.com>2014-11-23 17:37:13 +0200
commitbfe49540b94b6ac451e2978fd45a47656fecd92e (patch)
tree5db3eef1625b41129974ff43618a53bc8df53db1 /libs/ardour/midi_ui.cc
parentdcf632d99f38a581c7b54d34abc421e0acec24e9 (diff)
remove use of CrossThreadChannel::selectable() to allow cross-platform implementation of CrossThreadChannel via Glib::IOSource
Diffstat (limited to 'libs/ardour/midi_ui.cc')
-rw-r--r--libs/ardour/midi_ui.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/libs/ardour/midi_ui.cc b/libs/ardour/midi_ui.cc
index e00ec587ec..d5a0b2b444 100644
--- a/libs/ardour/midi_ui.cc
+++ b/libs/ardour/midi_ui.cc
@@ -81,9 +81,10 @@ MidiControlUI::midi_input_handler (IOCondition ioc, AsyncMIDIPort* port)
if (ioc & IO_IN) {
-#ifndef PLATFORM_WINDOWS
- CrossThreadChannel::drain (port->selectable());
-#endif
+ AsyncMIDIPort* asp = dynamic_cast<AsyncMIDIPort*> (port);
+ if (asp) {
+ asp->clear ();
+ }
DEBUG_TRACE (DEBUG::MidiIO, string_compose ("data available on %1\n", ((ARDOUR::Port*)port)->name()));
framepos_t now = _session.engine().sample_time();
@@ -131,12 +132,11 @@ MidiControlUI::reset_ports ()
return;
}
- int fd;
for (vector<AsyncMIDIPort*>::const_iterator pi = ports.begin(); pi != ports.end(); ++pi) {
- if ((fd = (*pi)->selectable ()) >= 0) {
- Glib::RefPtr<IOSource> psrc = IOSource::create (fd, IO_IN|IO_HUP|IO_ERR);
-
+ Glib::RefPtr<IOSource> psrc = (*pi)->ios();
+
+ if (psrc) {
psrc->connect (sigc::bind (sigc::mem_fun (this, &MidiControlUI::midi_input_handler), *pi));
psrc->attach (_main_loop->get_context());