Compare commits

...

10 Commits

Author SHA1 Message Date
Yaroslav
363f3b25b5
Merge b194950c5e into f67c544e16 2026-02-02 21:28:59 +11:00
Yaroslav
b194950c5e Update MappedInputManager.cpp 2026-02-02 02:11:10 +03:00
Yaroslav
d2674a4071 Add the missing layout to FrontLayoutMap 2026-01-29 01:21:57 +03:00
Yaroslav
e38326e30a Update MappedInputManager.cpp 2026-01-28 13:59:47 +03:00
Yaroslav
1ee3227ffb Run clang-format-fix 2026-01-28 13:35:08 +03:00
Yaroslav
107ef3233b
Merge branch 'master' into feat/back-left-right-confirm-layout 2026-01-28 13:27:50 +03:00
Yaroslav
d15f032368 Run clang-format-fix 2026-01-24 21:46:03 +03:00
Yaroslav
224f20acdb Small formatting fixes 2026-01-24 21:42:09 +03:00
Yaroslav
a0d7e77a7e Run clang-format-fix 2026-01-22 11:52:58 +03:00
ishuru
eaeb41bbca feat: Add new button layout option - Back, Left, Right, Confirm
This adds a fourth front button layout option where navigation buttons
(Left/Right) are placed in the center with Back on the far left and
Confirm on the far right, providing an alternative for users who prefer
this arrangement.

Changes:
- Added BACK_LEFT_RIGHT_CONFIRM enum value to FRONT_BUTTON_LAYOUT
- Updated MappedInputManager to handle button mapping for new layout
- Added 'Bck, Lft, Rght, Cnfrm' option to settings UI
- Updated USER_GUIDE.md to document the new option
2026-01-21 20:01:20 -05:00
4 changed files with 9 additions and 5 deletions

View File

@ -133,6 +133,7 @@ The Settings screen allows you to configure the device's behavior. There are a f
- Left, Right, Back, Confirm - Left, Right, Back, Confirm
- Left, Back, Confirm, Right - Left, Back, Confirm, Right
- Back, Confirm, Right, Left - Back, Confirm, Right, Left
- Back, Left, Right, Confirm
- **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. - **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. - **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 - "Chapter Skip" (default) - Long-pressing skips to next/previous chapter

View File

@ -43,13 +43,12 @@ class CrossPointSettings {
}; };
// Front button layout options // Front button layout options
// Default: Back, Confirm, Left, Right
// Swapped: Left, Right, Back, Confirm
enum FRONT_BUTTON_LAYOUT { enum FRONT_BUTTON_LAYOUT {
BACK_CONFIRM_LEFT_RIGHT = 0, BACK_CONFIRM_LEFT_RIGHT = 0,
LEFT_RIGHT_BACK_CONFIRM = 1, LEFT_RIGHT_BACK_CONFIRM = 1,
LEFT_BACK_CONFIRM_RIGHT = 2, LEFT_BACK_CONFIRM_RIGHT = 2,
BACK_CONFIRM_RIGHT_LEFT = 3, BACK_CONFIRM_RIGHT_LEFT = 3,
BACK_LEFT_RIGHT_CONFIRM = 4,
FRONT_BUTTON_LAYOUT_COUNT FRONT_BUTTON_LAYOUT_COUNT
}; };

View File

@ -18,11 +18,13 @@ struct SideLayoutMap {
}; };
// Order matches CrossPointSettings::FRONT_BUTTON_LAYOUT. // Order matches CrossPointSettings::FRONT_BUTTON_LAYOUT.
// [back, confirm, left, right] are actioned by these physical buttons:
constexpr FrontLayoutMap kFrontLayouts[] = { constexpr FrontLayoutMap kFrontLayouts[] = {
{HalGPIO::BTN_BACK, HalGPIO::BTN_CONFIRM, HalGPIO::BTN_LEFT, HalGPIO::BTN_RIGHT}, {HalGPIO::BTN_BACK, HalGPIO::BTN_CONFIRM, HalGPIO::BTN_LEFT, HalGPIO::BTN_RIGHT},
{HalGPIO::BTN_LEFT, HalGPIO::BTN_RIGHT, HalGPIO::BTN_BACK, HalGPIO::BTN_CONFIRM}, {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_CONFIRM, HalGPIO::BTN_LEFT, HalGPIO::BTN_BACK, HalGPIO::BTN_RIGHT},
{HalGPIO::BTN_BACK, HalGPIO::BTN_CONFIRM, HalGPIO::BTN_RIGHT, HalGPIO::BTN_LEFT}, {HalGPIO::BTN_BACK, HalGPIO::BTN_CONFIRM, HalGPIO::BTN_RIGHT, HalGPIO::BTN_LEFT},
{HalGPIO::BTN_BACK, HalGPIO::BTN_RIGHT, HalGPIO::BTN_CONFIRM, HalGPIO::BTN_LEFT},
}; };
// Order matches CrossPointSettings::SIDE_BUTTON_LAYOUT. // Order matches CrossPointSettings::SIDE_BUTTON_LAYOUT.
@ -85,6 +87,8 @@ MappedInputManager::Labels MappedInputManager::mapLabels(const char* back, const
return {previous, back, confirm, next}; return {previous, back, confirm, next};
case CrossPointSettings::BACK_CONFIRM_RIGHT_LEFT: case CrossPointSettings::BACK_CONFIRM_RIGHT_LEFT:
return {back, confirm, next, previous}; return {back, confirm, next, previous};
case CrossPointSettings::BACK_LEFT_RIGHT_CONFIRM:
return {back, previous, next, confirm};
case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT: case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT:
default: default:
return {back, confirm, previous, next}; return {back, confirm, previous, next};

View File

@ -40,9 +40,9 @@ const SettingInfo readerSettings[readerSettingsCount] = {
constexpr int controlsSettingsCount = 4; constexpr int controlsSettingsCount = 4;
const SettingInfo controlsSettings[controlsSettingsCount] = { const SettingInfo controlsSettings[controlsSettingsCount] = {
SettingInfo::Enum( SettingInfo::Enum("Front Button Layout", &CrossPointSettings::frontButtonLayout,
"Front Button Layout", &CrossPointSettings::frontButtonLayout, {"Bck, Cnfrm, Lft, Rght", "Lft, Rght, Bck, Cnfrm", "Lft, Bck, Cnfrm, Rght",
{"Bck, Cnfrm, Lft, Rght", "Lft, Rght, Bck, Cnfrm", "Lft, Bck, Cnfrm, Rght", "Bck, Cnfrm, Rght, Lft"}), "Bck, Cnfrm, Rght, Lft", "Bck, Lft, Rght, Cnfrm"}),
SettingInfo::Enum("Side Button Layout (reader)", &CrossPointSettings::sideButtonLayout, SettingInfo::Enum("Side Button Layout (reader)", &CrossPointSettings::sideButtonLayout,
{"Prev, Next", "Next, Prev"}), {"Prev, Next", "Next, Prev"}),
SettingInfo::Toggle("Long-press Chapter Skip", &CrossPointSettings::longPressChapterSkip), SettingInfo::Toggle("Long-press Chapter Skip", &CrossPointSettings::longPressChapterSkip),