From 2ea4d5c7b56d097c17d1688d499b98a4a7c5fc2d Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 24 Nov 2015 23:13:02 -0500 Subject: [PATCH] faderport: allow forcing LED state for use in ::all_lights_out() --- libs/surfaces/faderport/faderport.cc | 7 +++---- libs/surfaces/faderport/faderport.h | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/libs/surfaces/faderport/faderport.cc b/libs/surfaces/faderport/faderport.cc index 02b95a4743..2b447095fc 100644 --- a/libs/surfaces/faderport/faderport.cc +++ b/libs/surfaces/faderport/faderport.cc @@ -234,8 +234,7 @@ void FaderPort::all_lights_out () { for (ButtonMap::iterator b = buttons.begin(); b != buttons.end(); ++b) { - b->second.set_led_state (_output_port, false); - g_usleep (1000); + b->second.set_led_state (_output_port, false, true); } } @@ -734,9 +733,9 @@ FaderPort::ButtonInfo::set_action (boost::function f, bool when_pressed, } void -FaderPort::ButtonInfo::set_led_state (boost::shared_ptr port, int onoff) +FaderPort::ButtonInfo::set_led_state (boost::shared_ptr port, int onoff, bool force) { - if (led_on == (bool) onoff) { + if (!force && (led_on == (bool) onoff)) { /* nothing to do */ return; } diff --git a/libs/surfaces/faderport/faderport.h b/libs/surfaces/faderport/faderport.h index a0b23b9627..94ac2dcfed 100644 --- a/libs/surfaces/faderport/faderport.h +++ b/libs/surfaces/faderport/faderport.h @@ -230,7 +230,7 @@ class FaderPort : public ARDOUR::ControlProtocol, public AbstractUI function, bool on_press, FaderPort::ButtonState = ButtonState (0)); - void set_led_state (boost::shared_ptr, int onoff); + void set_led_state (boost::shared_ptr, int onoff, bool force = false); void invoke (ButtonState bs, bool press); bool uses_flash () const { return flash; } void set_flash (bool yn) { flash = yn; }