diff --git a/USER_GUIDE.md b/USER_GUIDE.md index e4d72b0c..9b043df4 100644 --- a/USER_GUIDE.md +++ b/USER_GUIDE.md @@ -133,6 +133,7 @@ The Settings screen allows you to configure the device's behavior. There are a f - Left, Right, Back, Confirm - Left, Back, Confirm, Right - Back, Confirm, Right, Left + - Right, Left, Confirm, Back - **Side Button Layout (reader)**: Swap the order of the up and down volume buttons from Previous/Next to Next/Previous. This change is only in effect when reading. - **Long-press Chapter Skip**: Set whether long-pressing page turn buttons skip to the next/previous chapter. - "Chapter Skip" (default) - Long-pressing skips to next/previous chapter diff --git a/src/CrossPointSettings.h b/src/CrossPointSettings.h index c450d348..7e640348 100644 --- a/src/CrossPointSettings.h +++ b/src/CrossPointSettings.h @@ -50,6 +50,7 @@ class CrossPointSettings { LEFT_RIGHT_BACK_CONFIRM = 1, LEFT_BACK_CONFIRM_RIGHT = 2, BACK_CONFIRM_RIGHT_LEFT = 3, + RIGHT_LEFT_CONFIRM_BACK = 4, FRONT_BUTTON_LAYOUT_COUNT }; diff --git a/src/MappedInputManager.cpp b/src/MappedInputManager.cpp index e5423724..91e84021 100644 --- a/src/MappedInputManager.cpp +++ b/src/MappedInputManager.cpp @@ -23,6 +23,7 @@ constexpr FrontLayoutMap kFrontLayouts[] = { {HalGPIO::BTN_LEFT, HalGPIO::BTN_RIGHT, HalGPIO::BTN_BACK, HalGPIO::BTN_CONFIRM}, {HalGPIO::BTN_CONFIRM, HalGPIO::BTN_LEFT, HalGPIO::BTN_BACK, HalGPIO::BTN_RIGHT}, {HalGPIO::BTN_BACK, HalGPIO::BTN_CONFIRM, HalGPIO::BTN_RIGHT, HalGPIO::BTN_LEFT}, + {HalGPIO::BTN_RIGHT, HalGPIO::BTN_LEFT, HalGPIO::BTN_CONFIRM, HalGPIO::BTN_BACK}, }; // Order matches CrossPointSettings::SIDE_BUTTON_LAYOUT. @@ -85,6 +86,8 @@ MappedInputManager::Labels MappedInputManager::mapLabels(const char* back, const return {previous, back, confirm, next}; case CrossPointSettings::BACK_CONFIRM_RIGHT_LEFT: return {back, confirm, next, previous}; + case CrossPointSettings::RIGHT_LEFT_CONFIRM_BACK: + return {next, previous, confirm, back}; case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT: default: return {back, confirm, previous, next}; diff --git a/src/activities/settings/SettingsActivity.cpp b/src/activities/settings/SettingsActivity.cpp index 7316db05..f343880d 100644 --- a/src/activities/settings/SettingsActivity.cpp +++ b/src/activities/settings/SettingsActivity.cpp @@ -40,9 +40,14 @@ const SettingInfo readerSettings[readerSettingsCount] = { constexpr int controlsSettingsCount = 4; const SettingInfo controlsSettings[controlsSettingsCount] = { - SettingInfo::Enum( - "Front Button Layout", &CrossPointSettings::frontButtonLayout, - {"Bck, Cnfrm, Lft, Rght", "Lft, Rght, Bck, Cnfrm", "Lft, Bck, Cnfrm, Rght", "Bck, Cnfrm, Rght, Lft"}), + SettingInfo::Enum("Front Button Layout", &CrossPointSettings::frontButtonLayout, + { + "Bck, Cnfrm, Lft, Rght", + "Lft, Rght, Bck, Cnfrm", + "Lft, Bck, Cnfrm, Rght", + "Bck, Cnfrm, Rght, Lft", + "Rght, Lft, Cnfrm, Bck", + }), SettingInfo::Enum("Side Button Layout (reader)", &CrossPointSettings::sideButtonLayout, {"Prev, Next", "Next, Prev"}), SettingInfo::Toggle("Long-press Chapter Skip", &CrossPointSettings::longPressChapterSkip),