right, left, confirm, back - button layout support

This commit is contained in:
Aaron Cunliffe 2026-02-01 19:06:57 +00:00
parent e5c0ddc9fa
commit 8d5ebd0344
No known key found for this signature in database
GPG Key ID: F7FC7C83CA99351E
4 changed files with 13 additions and 3 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
- 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. - **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

@ -50,6 +50,7 @@ class CrossPointSettings {
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,
RIGHT_LEFT_CONFIRM_BACK = 4,
FRONT_BUTTON_LAYOUT_COUNT FRONT_BUTTON_LAYOUT_COUNT
}; };

View File

@ -23,6 +23,7 @@ constexpr FrontLayoutMap kFrontLayouts[] = {
{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_RIGHT, HalGPIO::BTN_LEFT, HalGPIO::BTN_CONFIRM, HalGPIO::BTN_BACK},
}; };
// Order matches CrossPointSettings::SIDE_BUTTON_LAYOUT. // Order matches CrossPointSettings::SIDE_BUTTON_LAYOUT.
@ -85,6 +86,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::RIGHT_LEFT_CONFIRM_BACK:
return {next, previous, confirm, back};
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,14 @@ 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, Rght, Lft"}), "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, 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),