OSC: Only send new select send values
[ardour.git] / libs / surfaces / osc / osc_global_observer.h
index 86832a54e89c0e3e14e25e5f0853123ebbf27ca6..ef9637274f261efcac2128ddcbb91a1855b63239 100644 (file)
@@ -33,13 +33,15 @@ class OSCGlobalObserver
 {
 
   public:
-       OSCGlobalObserver (ARDOUR::Session& s, ArdourSurface::OSC::OSCSurface* su);
+       OSCGlobalObserver (ArdourSurface::OSC& o, ARDOUR::Session& s, ArdourSurface::OSC::OSCSurface* su);
        ~OSCGlobalObserver ();
 
        lo_address address() const { return addr; };
        void tick (void);
+       void clear_observer (void);
 
   private:
+       ArdourSurface::OSC& _osc;
 
        PBD::ScopedConnectionList strip_connections;
        PBD::ScopedConnectionList session_connections;
@@ -64,6 +66,9 @@ class OSCGlobalObserver
        float _last_meter;
        uint32_t master_timeout;
        uint32_t monitor_timeout;
+       uint32_t last_punchin;
+       uint32_t last_punchout;
+       uint32_t last_click;
 
        void send_change_message (std::string path, boost::shared_ptr<PBD::Controllable> controllable);
        void send_gain_message (std::string path, boost::shared_ptr<PBD::Controllable> controllable);
@@ -71,9 +76,8 @@ class OSCGlobalObserver
        void send_transport_state_changed (void);
        void send_record_state_changed (void);
        void solo_active (bool active);
-       void text_message (std::string path, std::string text);
-       void float_message (std::string path, float value);
-       void int_message (std::string path, uint32_t value);
+       void session_name (std::string path, std::string name);
+       void extra_check (void);
 };
 
 #endif /* __osc_oscglobalobserver_h__ */