X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fsurfaces%2Fmackie%2Fstrip.h;h=4099dce8afa9bb1e0f9112642ee8ef0978d44567;hb=4dc63966f0872efe768dad61eb9b8785d06b92d1;hp=225783d0fe36b28e6eb7f73f96959116d20adfce;hpb=55a10480945f2a41fe6cfda2173bed12d3d5bc89;p=ardour.git diff --git a/libs/surfaces/mackie/strip.h b/libs/surfaces/mackie/strip.h index 225783d0fe..4099dce8af 100644 --- a/libs/surfaces/mackie/strip.h +++ b/libs/surfaces/mackie/strip.h @@ -7,6 +7,7 @@ #include "evoral/Parameter.hpp" #include "pbd/property_basics.h" +#include "pbd/ringbuffer.h" #include "pbd/signals.h" #include "ardour/types.h" @@ -23,6 +24,8 @@ namespace ARDOUR { class ChannelCount; } +namespace ArdourSurface { + namespace Mackie { class Control; @@ -61,9 +64,11 @@ public: void handle_button (Button&, ButtonState bs); void handle_fader (Fader&, float position); + void handle_fader_touch (Fader&, bool touch_on); void handle_pot (Pot&, float delta); void periodic (uint64_t now_usecs); + void redisplay (); MidiByteArray display (uint32_t line_number, const std::string&); MidiByteArray blank_display (uint32_t line_number); @@ -77,7 +82,7 @@ public: bool locked() const { return _controls_locked; } void gui_selection_changed (const ARDOUR::StrongRouteNotificationList&); - + void notify_metering_state_changed(); private: @@ -121,7 +126,16 @@ private: void queue_display_reset (uint32_t msecs); void clear_display_reset (); void reset_display (); + + struct RedisplayRequest { + ARDOUR::AutomationType type; + float val; + }; + + RingBuffer redisplay_requests; + void do_parameter_display (ARDOUR::AutomationType, float val); + void queue_parameter_display (ARDOUR::AutomationType, float val); typedef std::map > BundleMap; BundleMap input_bundles; @@ -144,6 +158,7 @@ private: std::map control_by_parameter; }; +} } #endif /* __ardour_mackie_control_protocol_strip_h__ */