summaryrefslogtreecommitdiff
path: root/libs/surfaces/generic_midi/generic_midi_control_protocol.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/surfaces/generic_midi/generic_midi_control_protocol.h')
-rw-r--r--libs/surfaces/generic_midi/generic_midi_control_protocol.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/libs/surfaces/generic_midi/generic_midi_control_protocol.h b/libs/surfaces/generic_midi/generic_midi_control_protocol.h
index d2e1bd83db..9fa5d99197 100644
--- a/libs/surfaces/generic_midi/generic_midi_control_protocol.h
+++ b/libs/surfaces/generic_midi/generic_midi_control_protocol.h
@@ -25,6 +25,9 @@
#include <list>
#include <glibmm/threads.h>
+#define ABSTRACT_UI_EXPORTS
+#include "pbd/abstract_ui.h"
+
#include "ardour/types.h"
#include "ardour/port.h"
@@ -48,11 +51,23 @@ class MIDIControllable;
class MIDIFunction;
class MIDIAction;
-class GenericMidiControlProtocol : public ARDOUR::ControlProtocol {
+struct GenericMIDIRequest : public BaseUI::BaseRequestObject {
+public:
+ GenericMIDIRequest () {}
+ ~GenericMIDIRequest () {}
+};
+
+
+class GenericMidiControlProtocol : public ARDOUR::ControlProtocol, public AbstractUI<GenericMIDIRequest> {
public:
GenericMidiControlProtocol (ARDOUR::Session&);
virtual ~GenericMidiControlProtocol();
+ void do_request (GenericMIDIRequest*);
+ int stop ();
+
+ void thread_init ();
+
int set_active (bool yn);
static bool probe() { return true; }
@@ -169,7 +184,6 @@ private:
int connection_state;
bool connection_handler (boost::weak_ptr<ARDOUR::Port>, std::string name1, boost::weak_ptr<ARDOUR::Port>, std::string name2, bool yn);
PBD::ScopedConnection port_connection;
- void connected();
std::string _current_binding;
uint32_t _bank_size;
@@ -185,7 +199,11 @@ private:
mutable void *gui;
void build_gui ();
+ PBD::ScopedConnectionList midi_connections;
+ bool midi_input_handler (Glib::IOCondition ioc, boost::weak_ptr<ARDOUR::AsyncMIDIPort> port);
+ void start_midi_handling ();
+ void stop_midi_handling ();
};
#endif /* ardour_generic_midi_control_protocol_h */