Review changes

This commit is contained in:
jpirnay
2026-04-27 14:38:20 +02:00
parent 2bce78c07a
commit ea99b764ce
13 changed files with 172 additions and 213 deletions
+81 -79
View File
@@ -388,90 +388,92 @@ void loop() {
{
using BA = CrossPointSettings::BUTTON_ACTION;
using B = MappedInputManager::Button;
auto actionFor = [&](const ButtonEventManager::ButtonEvent& ev) -> uint8_t {
switch (ev.button) {
case B::Back:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortBack;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoubleBack;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongBack;
}
break;
case B::Confirm:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortConfirm;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoubleConfirm;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongConfirm;
}
break;
case B::Left:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortLeft;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoubleLeft;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongLeft;
}
break;
case B::Right:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortRight;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoubleRight;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongRight;
}
break;
case B::PageBack:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortPageBack;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoublePageBack;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongPageBack;
}
break;
case B::PageForward:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortPageForward;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoublePageForward;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongPageForward;
}
break;
case B::Power:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortPower;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoublePower;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongPower;
}
break;
default:
break; // Up/Down have no FSMs — ButtonEventManager never emits these
}
return BA::BTN_DEFAULT;
};
ButtonEventManager::ButtonEvent ev;
std::vector<ButtonEventManager::ButtonEvent> defaultEvents;
defaultEvents.reserve(8);
while (buttonEventManager.consumeEvent(ev)) {
auto actionFor = [&](B btn) -> uint8_t {
switch (btn) {
case B::Back:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortBack;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoubleBack;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongBack;
}
break;
case B::Confirm:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortConfirm;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoubleConfirm;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongConfirm;
}
break;
case B::Left:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortLeft;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoubleLeft;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongLeft;
}
break;
case B::Right:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortRight;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoubleRight;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongRight;
}
break;
case B::PageBack:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortPageBack;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoublePageBack;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongPageBack;
}
break;
case B::PageForward:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortPageForward;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoublePageForward;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongPageForward;
}
break;
case B::Power:
switch (ev.type) {
case ButtonEventManager::PressType::Short:
return SETTINGS.btnShortPower;
case ButtonEventManager::PressType::Double:
return SETTINGS.btnDoublePower;
case ButtonEventManager::PressType::Long:
return SETTINGS.btnLongPower;
}
break;
default:
break; // Up/Down have no FSMs — ButtonEventManager never emits these
}
return BA::BTN_DEFAULT;
};
const uint8_t action = actionFor(ev.button);
const uint8_t action = actionFor(ev);
if (action == BA::BTN_DEFAULT) {
if (ev.type == ButtonEventManager::PressType::Double) {
continue;
}
defaultEvents.push_back(ev);
continue;
}