diff --git a/src/config.cpp b/src/config.cpp index 3fab069..2c182e1 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -161,7 +161,6 @@ void CConfig::Load (void) m_nDoubleClickTimeout = m_Properties.GetNumber ("DoubleClickTimeout", 400); m_nLongPressTimeout = m_Properties.GetNumber ("LongPressTimeout", 600); - m_nButtonsDebounceTime = m_Properties.GetNumber ("ButtonsDebounceTime", 60); m_nButtonPinPgmUp = m_Properties.GetNumber ("ButtonPinPgmUp", 0); m_nButtonPinPgmDown = m_Properties.GetNumber ("ButtonPinPgmDown", 0); @@ -560,11 +559,6 @@ unsigned CConfig::GetLongPressTimeout (void) const return m_nLongPressTimeout; } -unsigned CConfig::GetButtonsDebounceTime(void) const -{ - return m_nButtonsDebounceTime; -} - unsigned CConfig::GetButtonPinPgmUp (void) const { return m_nButtonPinPgmUp; diff --git a/src/config.h b/src/config.h index 708e3f1..ea84b65 100644 --- a/src/config.h +++ b/src/config.h @@ -191,7 +191,6 @@ public: // Timeouts for button events in milliseconds unsigned GetDoubleClickTimeout (void) const; unsigned GetLongPressTimeout (void) const; - unsigned GetButtonsDebounceTime (void) const; // GPIO Button Program and TG Selection // GPIO pin numbers are chip numbers, not header positions @@ -334,7 +333,6 @@ private: unsigned m_nDoubleClickTimeout; unsigned m_nLongPressTimeout; - unsigned m_nButtonsDebounceTime; unsigned m_nMIDIButtonCh; unsigned m_nMIDIButtonNotes; diff --git a/src/minidexed.ini b/src/minidexed.ini index 0c617ce..5b6b13d 100644 --- a/src/minidexed.ini +++ b/src/minidexed.ini @@ -114,9 +114,6 @@ ButtonActionTGDown= DoubleClickTimeout=400 LongPressTimeout=400 -# Buttons debounce time -# ButtonsDebounceTime=60 - # MIDI Button Navigation # Specify MIDI CC to act as a button (0 = ununsed, so don't use CC 0) # NB: Off < 64 < ON diff --git a/src/uibuttons.cpp b/src/uibuttons.cpp index ca6566b..ae206dc 100644 --- a/src/uibuttons.cpp +++ b/src/uibuttons.cpp @@ -59,7 +59,7 @@ void CUIButton::reset (void) m_numClicks = 0; } -boolean CUIButton::Initialize (unsigned pinNumber, unsigned doubleClickTimeout, unsigned longPressTimeout, unsigned debounceTime) +boolean CUIButton::Initialize (unsigned pinNumber, unsigned doubleClickTimeout, unsigned longPressTimeout) { assert (!m_pin); assert(longPressTimeout >= doubleClickTimeout); @@ -67,11 +67,10 @@ boolean CUIButton::Initialize (unsigned pinNumber, unsigned doubleClickTimeout, m_pinNumber = pinNumber; m_doubleClickTimeout = doubleClickTimeout; m_longPressTimeout = longPressTimeout; - m_debounceTime = debounceTime; - + // Initialise timing values m_timer = m_longPressTimeout; - m_debounceTimer = m_debounceTime; + m_debounceTimer = DEBOUNCE_TIME; if (m_pinNumber != 0) { @@ -152,7 +151,7 @@ CUIButton::BtnTrigger CUIButton::ReadTrigger (void) } // Debounce here - we don't need to do anything if the debounce timer is active - if (m_debounceTimer < m_debounceTime) { + if (m_debounceTimer < DEBOUNCE_TIME) { m_debounceTimer++; return BtnTriggerNone; } @@ -276,7 +275,6 @@ boolean CUIButtons::Initialize (void) // Read the button configuration m_doubleClickTimeout = m_pConfig->GetDoubleClickTimeout (); m_longPressTimeout = m_pConfig->GetLongPressTimeout (); - m_debounceTime = m_pConfig->GetButtonsDebounceTime (); m_prevPin = m_pConfig->GetButtonPinPrev (); m_prevAction = CUIButton::triggerTypeFromString( m_pConfig->GetButtonActionPrev ()); m_nextPin = m_pConfig->GetButtonPinNext (); @@ -388,7 +386,7 @@ boolean CUIButtons::Initialize (void) } else if (m_buttons[j].getPinNumber() == 0) { // This is un-initialised so can be assigned - m_buttons[j].Initialize(pins[i], doubleClickTimeout, longPressTimeout, m_debounceTime); + m_buttons[j].Initialize(pins[i], doubleClickTimeout, longPressTimeout); break; } } @@ -407,7 +405,7 @@ boolean CUIButtons::Initialize (void) if (m_buttons[j].getPinNumber() == 0) { // This is un-initialised so can be assigned // doubleClickTimeout and longPressTimeout are ignored for MIDI buttons at present - m_buttons[j].Initialize(pins[i], doubleClickTimeout, longPressTimeout, m_debounceTime); + m_buttons[j].Initialize(pins[i], doubleClickTimeout, longPressTimeout); break; } } diff --git a/src/uibuttons.h b/src/uibuttons.h index 5da16ed..9389a3a 100644 --- a/src/uibuttons.h +++ b/src/uibuttons.h @@ -26,6 +26,7 @@ #include "config.h" #define BUTTONS_UPDATE_NUM_TICKS 100 +#define DEBOUNCE_TIME 60 #define MAX_GPIO_BUTTONS 11 // 5 UI buttons, 6 Program/Bank/TG Select buttons #define MAX_MIDI_BUTTONS 11 #define MAX_BUTTONS (MAX_GPIO_BUTTONS+MAX_MIDI_BUTTONS) @@ -64,7 +65,7 @@ public: ~CUIButton (void); void reset (void); - boolean Initialize (unsigned pinNumber, unsigned doubleClickTimeout, unsigned longPressTimeout, unsigned debounceTime); + boolean Initialize (unsigned pinNumber, unsigned doubleClickTimeout, unsigned longPressTimeout); void setClickEvent(BtnEvent clickEvent); void setDoubleClickEvent(BtnEvent doubleClickEvent); @@ -91,8 +92,6 @@ private: uint16_t m_timer; // Debounce timer uint16_t m_debounceTimer; - // Debounce time - unsigned m_debounceTime; // Number of clicks recorded since last timer reset uint8_t m_numClicks; // Event to fire on click @@ -137,8 +136,6 @@ private: unsigned m_doubleClickTimeout; // Timeout for long press in tenths of a millisecond unsigned m_longPressTimeout; - // Debounce time - unsigned m_debounceTime; // Configuration for buttons unsigned m_prevPin;