OSC: account for user sending the wrong number of paramters gracefully
[ardour.git] / libs / surfaces / osc / osc_global_observer.h
index 845b9b981e1cc1339764026ae2772f1ae3ebd341..ea5a0702a5392f90b9292842b6a3c5353e03e75f 100644 (file)
@@ -33,7 +33,7 @@ class OSCGlobalObserver
 {
 
   public:
-       OSCGlobalObserver (ARDOUR::Session& s, lo_address addr, uint32_t gainmode, std::bitset<32> feedback);
+       OSCGlobalObserver (ARDOUR::Session& s, ArdourSurface::OSC::OSCSurface* su);
        ~OSCGlobalObserver ();
 
        lo_address address() const { return addr; };
@@ -44,7 +44,16 @@ class OSCGlobalObserver
        PBD::ScopedConnectionList strip_connections;
        PBD::ScopedConnectionList session_connections;
 
+       enum STRIP {
+               Master,
+               Monitor,
+       };
 
+       ArdourSurface::OSC::OSCSurface* sur;
+       bool _init;
+       float _last_master_gain;
+       float _last_master_trim;
+       float _last_monitor_gain;
        lo_address addr;
        std::string path;
        uint32_t gainmode;
@@ -53,14 +62,18 @@ class OSCGlobalObserver
        framepos_t _last_frame;
        uint32_t _heartbeat;
        float _last_meter;
+       uint32_t master_timeout;
+       uint32_t monitor_timeout;
 
        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);
        void send_trim_message (std::string path, boost::shared_ptr<PBD::Controllable> controllable);
-       void send_transport_state_changed(void);
+       void send_transport_state_changed (void);
        void send_record_state_changed (void);
-       void send_session_saved (std::string name);
        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);
 };
 
 #endif /* __osc_oscglobalobserver_h__ */