From 4a8ba25d8c59341c1d3cd5bbb51325961373db72 Mon Sep 17 00:00:00 2001 From: Rembrand van Lakwijk Date: Tue, 10 Sep 2019 17:54:37 +0200 Subject: [PATCH] Fix exiting emulation mode with ENTER (GPIO) button; pressing the button would exit emulation mode, but then releasing the button would immediately enter it again. Logic copied from CheckButtonsBrowseMode(). --- src/InputMappings.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/InputMappings.cpp b/src/InputMappings.cpp index 541045c..36e0b13 100644 --- a/src/InputMappings.cpp +++ b/src/InputMappings.cpp @@ -139,16 +139,20 @@ void InputMappings::CheckButtonsEmulationMode() { buttonFlags = 0; - if (IEC_Bus::GetInputButtonPressed(INPUT_BUTTON_ENTER)) - SetButtonFlag(ESC_FLAG); - else if (IEC_Bus::GetInputButtonPressed(INPUT_BUTTON_UP)) + if (IEC_Bus::GetInputButtonRepeating(INPUT_BUTTON_UP)) SetButtonFlag(NEXT_FLAG); - else if (IEC_Bus::GetInputButtonPressed(INPUT_BUTTON_DOWN)) + else if (IEC_Bus::GetInputButtonRepeating(INPUT_BUTTON_DOWN)) SetButtonFlag(PREV_FLAG); //else if (IEC_Bus::GetInputButtonPressed(INPUT_BUTTON_BACK)) // SetButtonFlag(BACK_FLAG); //else if (IEC_Bus::GetInputButtonPressed(INPUT_BUTTON_INSERT)) // SetButtonFlag(INSERT_FLAG); + else { + enterButtonPressed = !IEC_Bus::GetInputButtonReleased(INPUT_BUTTON_ENTER); + if (enterButtonPressedPrev && !enterButtonPressed) + SetButtonFlag(ESC_FLAG); + enterButtonPressedPrev = enterButtonPressed; + } }