1 #ifndef __libardour_midi_ui_h__
2 #define __libardour_midi_ui_h__
6 #include "pbd/abstract_ui.h"
7 #include "pbd/signals.h"
8 #include "pbd/stacktrace.h"
18 /* this is mostly a placeholder because I suspect that at some
19 point we will want to add more members to accomodate
20 certain types of requests to the MIDI UI
23 struct MidiUIRequest : public BaseUI::BaseRequestObject {
29 class MidiControlUI : public AbstractUI<MidiUIRequest>
32 MidiControlUI (Session& s);
35 static MidiControlUI* instance() { return _instance; }
37 static BaseUI::RequestType PortChange;
39 void change_midi_ports ();
43 void do_request (MidiUIRequest*);
46 typedef std::list<GSource*> PortSources;
47 PortSources port_sources;
48 ARDOUR::Session& _session;
49 PBD::ScopedConnection rebind_connection;
51 bool midi_input_handler (Glib::IOCondition, MIDI::Port*);
55 static MidiControlUI* _instance;
60 #endif /* __libardour_midi_ui_h__ */