This commit is contained in:
Boris Faure 2026-01-22 09:10:45 +00:00 committed by GitHub
commit 9b66887c7e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 26 additions and 3 deletions

View File

@ -116,6 +116,7 @@ The Settings screen allows you to configure the device's behavior. There are a f
- Back, Confirm, Left, Right (default) - Back, Confirm, Left, Right (default)
- Left, Right, Back, Confirm - Left, Right, Back, Confirm
- Left, Back, Confirm, Right - Left, Back, Confirm, Right
- Back, Confirm, Right, Left
- **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

@ -32,7 +32,12 @@ class CrossPointSettings {
// Front button layout options // Front button layout options
// Default: Back, Confirm, Left, Right // Default: Back, Confirm, Left, Right
// Swapped: Left, Right, Back, Confirm // Swapped: Left, Right, Back, Confirm
enum FRONT_BUTTON_LAYOUT { BACK_CONFIRM_LEFT_RIGHT = 0, LEFT_RIGHT_BACK_CONFIRM = 1, LEFT_BACK_CONFIRM_RIGHT = 2 }; enum FRONT_BUTTON_LAYOUT {
BACK_CONFIRM_LEFT_RIGHT = 0,
LEFT_RIGHT_BACK_CONFIRM = 1,
LEFT_BACK_CONFIRM_RIGHT = 2,
BACK_CONFIRM_RIGHT_LEFT = 3
};
// Side button layout options // Side button layout options
// Default: Previous, Next // Default: Previous, Next

View File

@ -14,6 +14,9 @@ decltype(InputManager::BTN_BACK) MappedInputManager::mapButton(const Button butt
case CrossPointSettings::LEFT_BACK_CONFIRM_RIGHT: case CrossPointSettings::LEFT_BACK_CONFIRM_RIGHT:
return InputManager::BTN_CONFIRM; return InputManager::BTN_CONFIRM;
case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT: case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT:
/* fall through */
case CrossPointSettings::BACK_CONFIRM_RIGHT_LEFT:
/* fall through */
default: default:
return InputManager::BTN_BACK; return InputManager::BTN_BACK;
} }
@ -24,15 +27,22 @@ decltype(InputManager::BTN_BACK) MappedInputManager::mapButton(const Button butt
case CrossPointSettings::LEFT_BACK_CONFIRM_RIGHT: case CrossPointSettings::LEFT_BACK_CONFIRM_RIGHT:
return InputManager::BTN_LEFT; return InputManager::BTN_LEFT;
case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT: case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT:
/* fall through */
case CrossPointSettings::BACK_CONFIRM_RIGHT_LEFT:
/* fall through */
default: default:
return InputManager::BTN_CONFIRM; return InputManager::BTN_CONFIRM;
} }
case Button::Left: case Button::Left:
switch (frontLayout) { switch (frontLayout) {
case CrossPointSettings::LEFT_RIGHT_BACK_CONFIRM: case CrossPointSettings::LEFT_RIGHT_BACK_CONFIRM:
/* fall through */
case CrossPointSettings::LEFT_BACK_CONFIRM_RIGHT: case CrossPointSettings::LEFT_BACK_CONFIRM_RIGHT:
return InputManager::BTN_BACK; return InputManager::BTN_BACK;
case CrossPointSettings::BACK_CONFIRM_RIGHT_LEFT:
return InputManager::BTN_RIGHT;
case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT: case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT:
/* fall through */
default: default:
return InputManager::BTN_LEFT; return InputManager::BTN_LEFT;
} }
@ -40,8 +50,12 @@ decltype(InputManager::BTN_BACK) MappedInputManager::mapButton(const Button butt
switch (frontLayout) { switch (frontLayout) {
case CrossPointSettings::LEFT_RIGHT_BACK_CONFIRM: case CrossPointSettings::LEFT_RIGHT_BACK_CONFIRM:
return InputManager::BTN_CONFIRM; return InputManager::BTN_CONFIRM;
case CrossPointSettings::BACK_CONFIRM_RIGHT_LEFT:
return InputManager::BTN_LEFT;
case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT: case CrossPointSettings::BACK_CONFIRM_LEFT_RIGHT:
/* fall through */
case CrossPointSettings::LEFT_BACK_CONFIRM_RIGHT: case CrossPointSettings::LEFT_BACK_CONFIRM_RIGHT:
/* fall through */
default: default:
return InputManager::BTN_RIGHT; return InputManager::BTN_RIGHT;
} }
@ -56,6 +70,7 @@ decltype(InputManager::BTN_BACK) MappedInputManager::mapButton(const Button butt
case CrossPointSettings::NEXT_PREV: case CrossPointSettings::NEXT_PREV:
return InputManager::BTN_DOWN; return InputManager::BTN_DOWN;
case CrossPointSettings::PREV_NEXT: case CrossPointSettings::PREV_NEXT:
/* fall through */
default: default:
return InputManager::BTN_UP; return InputManager::BTN_UP;
} }
@ -64,6 +79,7 @@ decltype(InputManager::BTN_BACK) MappedInputManager::mapButton(const Button butt
case CrossPointSettings::NEXT_PREV: case CrossPointSettings::NEXT_PREV:
return InputManager::BTN_UP; return InputManager::BTN_UP;
case CrossPointSettings::PREV_NEXT: case CrossPointSettings::PREV_NEXT:
/* fall through */
default: default:
return InputManager::BTN_DOWN; return InputManager::BTN_DOWN;
} }

View File

@ -37,8 +37,9 @@ const SettingInfo readerSettings[readerSettingsCount] = {
constexpr int controlsSettingsCount = 4; constexpr int controlsSettingsCount = 4;
const SettingInfo controlsSettings[controlsSettingsCount] = { const SettingInfo controlsSettings[controlsSettingsCount] = {
SettingInfo::Enum("Front Button Layout", &CrossPointSettings::frontButtonLayout, SettingInfo::Enum(
{"Bck, Cnfrm, Lft, Rght", "Lft, Rght, Bck, Cnfrm", "Lft, Bck, Cnfrm, Rght"}), "Front Button Layout", &CrossPointSettings::frontButtonLayout,
{"Bck, Cnfrm, Lft, Rght", "Lft, Rght, Bck, Cnfrm", "Lft, Bck, Cnfrm, Rght", "Bck, Cnfrm, Rght, Lft"}),
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),