major redesign of MIDI port heirarchy and management (part 2)
[ardour.git] / libs / surfaces / generic_midi / generic_midi_control_protocol.h
index ee1144a667174e38197df59d648303cb4117ff34..a4a51b7f99a5c2114894ee0aff282f15904cfafe 100644 (file)
 #define ardour_generic_midi_control_protocol_h
 
 #include <list>
-#include <glibmm/thread.h>
+#include <glibmm/threads.h>
+
 #include "ardour/types.h"
 
 #include "control_protocol/control_protocol.h"
 
-namespace MIDI {
-       class Port;
-}
-
 namespace PBD {
        class Controllable;
        class ControllableDescriptor;
@@ -37,6 +34,11 @@ namespace PBD {
 
 namespace ARDOUR {
        class Session;
+       class MidiPort;
+}
+
+namespace MIDI {
+    class Port;
 }
 
 class MIDIControllable;
@@ -51,8 +53,8 @@ class GenericMidiControlProtocol : public ARDOUR::ControlProtocol {
        int set_active (bool yn);
        static bool probe() { return true; }
 
-       MIDI::Port* input_port () const { return _input_port; }
-       MIDI::Port* output_port () const { return _output_port; }
+        MIDI::Port* input_port () const { return _input_port; }
+        MIDI::Port* output_port () const { return _output_port; }
        void set_feedback_interval (ARDOUR::microseconds_t);
 
        int set_feedback (bool yn);
@@ -97,8 +99,8 @@ class GenericMidiControlProtocol : public ARDOUR::ControlProtocol {
        }
 
   private:
-       MIDI::Port* _input_port;
-       MIDI::Port* _output_port;
+        MIDI::Port* _input_port;
+        MIDI::Port* _output_port;
        ARDOUR::microseconds_t _feedback_interval;
        ARDOUR::microseconds_t last_feedback_time;
 
@@ -118,8 +120,8 @@ class GenericMidiControlProtocol : public ARDOUR::ControlProtocol {
        typedef std::pair<MIDIControllable*,PBD::ScopedConnection> MIDIPendingControllable;
        typedef std::list<MIDIPendingControllable* > MIDIPendingControllables;
        MIDIPendingControllables pending_controllables;
-       Glib::Mutex controllables_lock;
-       Glib::Mutex pending_lock;
+        Glib::Threads::Mutex controllables_lock;
+        Glib::Threads::Mutex pending_lock;
 
        bool start_learning (PBD::Controllable*);
        void stop_learning (PBD::Controllable*);