Merge pull request #60 from bobbycar-graz/dpad-debounce-fix
Made debounce respect the configured setting
This commit is contained in:
10
src/dpad.h
10
src/dpad.h
@@ -63,29 +63,27 @@ void update()
|
|||||||
ButtonBack = 3
|
ButtonBack = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr auto debounceTime = 25;
|
if (std::get<ButtonUp>(lastState) != std::get<ButtonUp>(state) && now-debounceUp > settings.boardcomputerHardware.dpadDebounce)
|
||||||
|
|
||||||
if (std::get<ButtonUp>(lastState) != std::get<ButtonUp>(state) && now-debounceUp > debounceTime)
|
|
||||||
{
|
{
|
||||||
if (std::get<ButtonUp>(state))
|
if (std::get<ButtonUp>(state))
|
||||||
InputDispatcher::rotate(-1);
|
InputDispatcher::rotate(-1);
|
||||||
std::get<ButtonUp>(lastState) = std::get<ButtonUp>(state);
|
std::get<ButtonUp>(lastState) = std::get<ButtonUp>(state);
|
||||||
debounceUp = now;
|
debounceUp = now;
|
||||||
}
|
}
|
||||||
if (std::get<ButtonDown>(lastState) != std::get<ButtonDown>(state) && now-debounceDown > debounceTime)
|
if (std::get<ButtonDown>(lastState) != std::get<ButtonDown>(state) && now-debounceDown > settings.boardcomputerHardware.dpadDebounce)
|
||||||
{
|
{
|
||||||
if (std::get<ButtonDown>(state))
|
if (std::get<ButtonDown>(state))
|
||||||
InputDispatcher::rotate(1);
|
InputDispatcher::rotate(1);
|
||||||
std::get<ButtonDown>(lastState) = std::get<ButtonDown>(state);
|
std::get<ButtonDown>(lastState) = std::get<ButtonDown>(state);
|
||||||
debounceDown = now;
|
debounceDown = now;
|
||||||
}
|
}
|
||||||
if (std::get<ButtonConfirm>(lastState) != std::get<ButtonConfirm>(state) && now-debounceConfirm > debounceTime)
|
if (std::get<ButtonConfirm>(lastState) != std::get<ButtonConfirm>(state) && now-debounceConfirm > settings.boardcomputerHardware.dpadDebounce)
|
||||||
{
|
{
|
||||||
InputDispatcher::confirmButton(std::get<ButtonConfirm>(state));
|
InputDispatcher::confirmButton(std::get<ButtonConfirm>(state));
|
||||||
std::get<ButtonConfirm>(lastState) = std::get<ButtonConfirm>(state);
|
std::get<ButtonConfirm>(lastState) = std::get<ButtonConfirm>(state);
|
||||||
debounceConfirm = now;
|
debounceConfirm = now;
|
||||||
}
|
}
|
||||||
if (std::get<ButtonBack>(lastState) != std::get<ButtonBack>(state) && now-debounceBack > debounceTime)
|
if (std::get<ButtonBack>(lastState) != std::get<ButtonBack>(state) && now-debounceBack > settings.boardcomputerHardware.dpadDebounce)
|
||||||
{
|
{
|
||||||
InputDispatcher::backButton(std::get<ButtonBack>(state));
|
InputDispatcher::backButton(std::get<ButtonBack>(state));
|
||||||
std::get<ButtonBack>(lastState) = std::get<ButtonBack>(state);
|
std::get<ButtonBack>(lastState) = std::get<ButtonBack>(state);
|
||||||
|
@@ -5,6 +5,7 @@
|
|||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
|
|
||||||
#include "dpad.h"
|
#include "dpad.h"
|
||||||
|
#include "globals.h"
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
@@ -78,29 +79,27 @@ void update()
|
|||||||
ButtonBack = 2
|
ButtonBack = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr auto debounceTime = 25;
|
if (std::get<ButtonUp>(lastState) != std::get<ButtonUp>(state) && now-debounceUp > settings.boardcomputerHardware.dpadDebounce)
|
||||||
|
|
||||||
if (std::get<ButtonUp>(lastState) != std::get<ButtonUp>(state) && now-debounceUp > debounceTime)
|
|
||||||
{
|
{
|
||||||
if (std::get<ButtonUp>(state))
|
if (std::get<ButtonUp>(state))
|
||||||
InputDispatcher::rotate(-1);
|
InputDispatcher::rotate(-1);
|
||||||
std::get<ButtonUp>(lastState) = std::get<ButtonUp>(state);
|
std::get<ButtonUp>(lastState) = std::get<ButtonUp>(state);
|
||||||
debounceUp = now;
|
debounceUp = now;
|
||||||
}
|
}
|
||||||
if (std::get<ButtonDown>(lastState) != std::get<ButtonDown>(state) && now-debounceDown > debounceTime)
|
if (std::get<ButtonDown>(lastState) != std::get<ButtonDown>(state) && now-debounceDown > settings.boardcomputerHardware.dpadDebounce)
|
||||||
{
|
{
|
||||||
if (std::get<ButtonDown>(state))
|
if (std::get<ButtonDown>(state))
|
||||||
InputDispatcher::rotate(1);
|
InputDispatcher::rotate(1);
|
||||||
std::get<ButtonDown>(lastState) = std::get<ButtonDown>(state);
|
std::get<ButtonDown>(lastState) = std::get<ButtonDown>(state);
|
||||||
debounceDown = now;
|
debounceDown = now;
|
||||||
}
|
}
|
||||||
if (std::get<ButtonConfirm>(lastState) != std::get<ButtonConfirm>(state) && now-debounceConfirm > debounceTime)
|
if (std::get<ButtonConfirm>(lastState) != std::get<ButtonConfirm>(state) && now-debounceConfirm > settings.boardcomputerHardware.dpadDebounce)
|
||||||
{
|
{
|
||||||
InputDispatcher::confirmButton(std::get<ButtonConfirm>(state));
|
InputDispatcher::confirmButton(std::get<ButtonConfirm>(state));
|
||||||
std::get<ButtonConfirm>(lastState) = std::get<ButtonConfirm>(state);
|
std::get<ButtonConfirm>(lastState) = std::get<ButtonConfirm>(state);
|
||||||
debounceConfirm = now;
|
debounceConfirm = now;
|
||||||
}
|
}
|
||||||
if (std::get<ButtonBack>(lastState) != std::get<ButtonBack>(state) && now-debounceBack > debounceTime)
|
if (std::get<ButtonBack>(lastState) != std::get<ButtonBack>(state) && now-debounceBack > settings.boardcomputerHardware.dpadDebounce)
|
||||||
{
|
{
|
||||||
InputDispatcher::backButton(std::get<ButtonBack>(state));
|
InputDispatcher::backButton(std::get<ButtonBack>(state));
|
||||||
std::get<ButtonBack>(lastState) = std::get<ButtonBack>(state);
|
std::get<ButtonBack>(lastState) = std::get<ButtonBack>(state);
|
||||||
|
Reference in New Issue
Block a user