Expose Latch automation mode to MCUs
[ardour.git] / libs / surfaces / mackie / meter.h
index 70d44e4515b7a3e6b844f83c751ad5f20e7baf8e..17972fb480f98d8e4a8586881479f7b67f0a3c27 100644 (file)
@@ -23,6 +23,8 @@
 #include "controls.h"
 #include "midi_byte_array.h"
 
+namespace ArdourSurface {
+
 namespace Mackie {
 
 class SurfacePort;
@@ -30,23 +32,27 @@ class SurfacePort;
 class Meter : public Control
 {
 public:
-       Meter (int id, int ordinal, std::string name, Group & group)
-               : Control  (id, ordinal, name, group)
-               , last_segment_value_sent (-1)
+       Meter (int id, std::string name, Group & group)
+               : Control  (id, name, group)
+               , _enabled (false)
                , overload_on (false) {}
-       
-       virtual type_t type() const { return type_meter; }
 
-       MidiByteArray update_message (float dB);
 
-       static Control* factory (Surface&, int id, int ordinal, const char*, Group&);
-       
-       int last_segment_value_sent;
+       void send_update (Surface&, float dB);
+       bool enabled () const { return _enabled; }
+
+       MidiByteArray zero();
+
+       static Control* factory (Surface&, int id, const char*, Group&);
+
+       void notify_metering_state_changed(Surface& surface, bool transport_is_rolling, bool metering_active);
 
   private:
+       bool _enabled;
        bool overload_on;
 };
 
-}
+} // Mackie namespace
+} // ArdourSurface namespace
 
 #endif /* __ardour_mackie_control_protocol_meter_h__ */