A bit better integration of vst sdk files
[ardour.git] / libs / surfaces / tranzport / tranzport_control_protocol.h
index b24a94577a1f1578a170341c47da92b24b4ad115..e5193a761cdfa3d71306b034d5b6ceb672f9899a 100644 (file)
@@ -4,27 +4,16 @@
 #include <vector>
 
 #include <sys/time.h>
-#include <pbd/lockmonitor.h>
 #include <pthread.h>
 #include <usb.h>
-#include <ardour/control_protocol.h>
-#include <ardour/types.h>
 
-#include <pbd/abstract_ui.h>
+#include <glibmm/thread.h>
 
-extern BaseUI::RequestType LEDChange;
-extern BaseUI::RequestType Print;
-extern BaseUI::RequestType SetCurrentTrack;
+#include <ardour/types.h>
 
-struct TranzportRequest : public BaseUI::BaseRequestObject {
-    int led;
-    int row;
-    int col;
-    char* text;
-    ARDOUR::Route* track;
-};
+#include <control_protocol/control_protocol.h>
 
-class TranzportControlProtocol : public ARDOUR::ControlProtocol, public AbstractUI<TranzportRequest> 
+class TranzportControlProtocol : public ARDOUR::ControlProtocol
 {
   public:
        TranzportControlProtocol (ARDOUR::Session&);
@@ -32,7 +21,10 @@ class TranzportControlProtocol : public ARDOUR::ControlProtocol, public Abstract
 
        int set_active (bool yn);
 
-       bool caller_is_ui_thread();
+       static bool probe ();
+
+       XMLNode& get_state ();
+       int set_state (const XMLNode&);
 
   private:
        static const int VENDORID = 0x165b;
@@ -107,9 +99,7 @@ class TranzportControlProtocol : public ARDOUR::ControlProtocol, public Abstract
        DisplayMode     display_mode;
        ARDOUR::gain_t  gain_fraction;
 
-       void do_request (TranzportRequest*);
-       
-       PBD::Lock update_lock;
+       Glib::Mutex update_lock;
        char current_screen[2][20];
        char pending_screen[2][20];
        bool lights[7];
@@ -120,13 +110,13 @@ class TranzportControlProtocol : public ARDOUR::ControlProtocol, public Abstract
        uint32_t       last_mins;
        uint32_t       last_secs;
        uint32_t       last_frames;
-       jack_nframes_t last_where;
+       nframes_t last_where;
        ARDOUR::gain_t last_track_gain;
        uint32_t       last_meter_fill;
        struct timeval last_wheel_motion;
        int            last_wheel_dir;
 
-       PBD::Lock io_lock;
+       Glib::Mutex io_lock;
 
        int open ();
        int read (uint32_t timeout_override = 0);