MappedInputManager.cpp
1 #include "MappedInputManager.h" 2 3 #include "ThemeManager.h" 4 #include "core/SignalOSSettings.h" 5 6 decltype(InputManager::BTN_BACK) MappedInputManager::mapButton(const Button button) const { 7 const auto frontLayout = static_cast<FrontButtonLayout>(THEME.frontButtonLayout); 8 const auto sideLayout = settings_ ? static_cast<signalos::Settings::SideButtonLayout>(settings_->sideButtonLayout) 9 : signalos::Settings::PrevNext; 10 11 switch (button) { 12 case Button::Back: 13 switch (frontLayout) { 14 case FRONT_LRBC: 15 return InputManager::BTN_LEFT; 16 case FRONT_BCLR: 17 default: 18 return InputManager::BTN_BACK; 19 } 20 case Button::Confirm: 21 switch (frontLayout) { 22 case FRONT_LRBC: 23 return InputManager::BTN_RIGHT; 24 case FRONT_BCLR: 25 default: 26 return InputManager::BTN_CONFIRM; 27 } 28 case Button::Left: 29 switch (frontLayout) { 30 case FRONT_LRBC: 31 return InputManager::BTN_BACK; 32 case FRONT_BCLR: 33 default: 34 return InputManager::BTN_LEFT; 35 } 36 case Button::Right: 37 switch (frontLayout) { 38 case FRONT_LRBC: 39 return InputManager::BTN_CONFIRM; 40 case FRONT_BCLR: 41 default: 42 return InputManager::BTN_RIGHT; 43 } 44 case Button::Up: 45 return InputManager::BTN_UP; 46 case Button::Down: 47 return InputManager::BTN_DOWN; 48 case Button::Power: 49 return InputManager::BTN_POWER; 50 case Button::PageBack: 51 switch (sideLayout) { 52 case signalos::Settings::NextPrev: 53 return InputManager::BTN_DOWN; 54 case signalos::Settings::PrevNext: 55 default: 56 return InputManager::BTN_UP; 57 } 58 case Button::PageForward: 59 switch (sideLayout) { 60 case signalos::Settings::NextPrev: 61 return InputManager::BTN_UP; 62 case signalos::Settings::PrevNext: 63 default: 64 return InputManager::BTN_DOWN; 65 } 66 } 67 68 return InputManager::BTN_BACK; 69 } 70 71 bool MappedInputManager::wasPressed(const Button button) const { return inputManager.wasPressed(mapButton(button)); } 72 73 bool MappedInputManager::wasReleased(const Button button) const { return inputManager.wasReleased(mapButton(button)); } 74 75 bool MappedInputManager::isPressed(const Button button) const { return inputManager.isPressed(mapButton(button)); } 76 77 bool MappedInputManager::wasAnyPressed() const { return inputManager.wasAnyPressed(); } 78 79 bool MappedInputManager::wasAnyReleased() const { return inputManager.wasAnyReleased(); } 80 81 unsigned long MappedInputManager::getHeldTime() const { return inputManager.getHeldTime(); } 82 83 MappedInputManager::Labels MappedInputManager::mapLabels(const char* back, const char* confirm, const char* previous, 84 const char* next) const { 85 const auto layout = static_cast<FrontButtonLayout>(THEME.frontButtonLayout); 86 87 switch (layout) { 88 case FRONT_LRBC: 89 return {previous, next, back, confirm}; 90 case FRONT_BCLR: 91 default: 92 return {back, confirm, previous, next}; 93 } 94 }