A bit better integration of vst sdk files
[ardour.git] / libs / surfaces / tranzport / tranzport_control_protocol.h
index cf4a9a7d3f3838e15b73aa99baa5443a62657c5c..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;
@@ -100,15 +92,14 @@ class TranzportControlProtocol : public ARDOUR::ControlProtocol, public Abstract
        uint8_t        _datawheel;
        uint8_t        _device_status;
        usb_dev_handle* udev;
-       ARDOUR::Route*  current_route;
+
        uint32_t        current_track_id;
        WheelMode       wheel_mode;
        WheelShiftMode  wheel_shift_mode;
        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];
@@ -119,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);