From 58420042d271b88f0d33b6e2557849c0effacc39 Mon Sep 17 00:00:00 2001 From: TheTrain <32771064+TheTrainGoes@users.noreply.github.com> Date: Tue, 30 Jul 2024 09:19:01 -0400 Subject: [PATCH] Update to add R16 display layout This PR adds an R16 display layout --- headers/buttonlayouts.h | 26 ++++++++++++++++++++++++++ headers/layoutmanager.h | 2 ++ proto/enums.proto | 2 ++ src/addons/neopicoleds.cpp | 1 + src/config_legacy.cpp | 6 +++++- src/layoutmanager.cpp | 14 ++++++++++++++ www/server/app.js | 2 ++ www/src/Locales/en/LayoutConfig.jsx | 2 ++ www/src/Locales/zh-CN/LayoutConfig.jsx | 2 ++ 9 files changed, 56 insertions(+), 1 deletion(-) diff --git a/headers/buttonlayouts.h b/headers/buttonlayouts.h index 4b7bee0dc..807e2de74 100644 --- a/headers/buttonlayouts.h +++ b/headers/buttonlayouts.h @@ -281,6 +281,32 @@ {GP_ELEMENT_BTN_BUTTON, {89, 37, 4, 4, 1, 1, GAMEPAD_MASK_L2, GP_SHAPE_ELLIPSE}}\ } +#define BUTTON_GROUP_STICKLESSR16A {\ + {GP_ELEMENT_DIR_BUTTON, {47, 19, 4, 4, 1, 1, GAMEPAD_MASK_UP, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_DIR_BUTTON, {32, 27, 4, 4, 1, 1, GAMEPAD_MASK_LEFT, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_DIR_BUTTON, {42, 27, 4, 4, 1, 1, GAMEPAD_MASK_DOWN, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_DIR_BUTTON, {50, 32, 4, 4, 1, 1, GAMEPAD_MASK_RIGHT, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_DIR_BUTTON, {52, 47, 4, 4, 1, 1, GAMEPAD_MASK_UP, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {64, 17, 4, 4, 1, 1, GAMEPAD_MASK_L3, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {22, 30, 4, 4, 1, 1, GAMEPAD_MASK_L3, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {66, 45, 4, 4, 1, 1, GAMEPAD_MASK_R3, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {77, 15, 2, 2, 1, 1, GAMEPAD_MASK_A2, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {82, 15, 2, 2, 1, 1, GAMEPAD_MASK_A1, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {87, 15, 2, 2, 1, 1, GAMEPAD_MASK_S1, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {92, 15, 2, 2, 1, 1, GAMEPAD_MASK_S2, GP_SHAPE_ELLIPSE}}\ +} + +#define BUTTON_GROUP_STICKLESS_BUTTONSR16B {\ + {GP_ELEMENT_BTN_BUTTON, {59, 27, 4, 4, 1, 1, GAMEPAD_MASK_B3, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {69, 25, 4, 4, 1, 1, GAMEPAD_MASK_B4, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {79, 25, 4, 4, 1, 1, GAMEPAD_MASK_R1, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {89, 27, 4, 4, 1, 1, GAMEPAD_MASK_L1, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {59, 37, 4, 4, 1, 1, GAMEPAD_MASK_B1, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {69, 35, 4, 4, 1, 1, GAMEPAD_MASK_B2, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {79, 35, 4, 4, 1, 1, GAMEPAD_MASK_R2, GP_SHAPE_ELLIPSE}},\ + {GP_ELEMENT_BTN_BUTTON, {89, 37, 4, 4, 1, 1, GAMEPAD_MASK_L2, GP_SHAPE_ELLIPSE}}\ +} + #define BUTTON_GROUP_STICKLESS14A {\ {GP_ELEMENT_DIR_BUTTON, {26, 20, 7, 7, 1, 1, GAMEPAD_MASK_LEFT, GP_SHAPE_ELLIPSE}},\ {GP_ELEMENT_DIR_BUTTON, {42, 20, 7, 7, 1, 1, GAMEPAD_MASK_DOWN, GP_SHAPE_ELLIPSE}},\ diff --git a/headers/layoutmanager.h b/headers/layoutmanager.h index f358e1a37..6f6aaad67 100644 --- a/headers/layoutmanager.h +++ b/headers/layoutmanager.h @@ -93,6 +93,8 @@ class LayoutManager { LayoutList drawSticklessButtons13B(); LayoutList drawStickless16A(); LayoutList drawSticklessButtons16B(); + LayoutList drawSticklessR16A(); + LayoutList drawSticklessButtonsR16B(); LayoutList drawStickless14A(); LayoutList drawSticklessButtons14B(); LayoutList drawButtonLayoutLeft(); diff --git a/proto/enums.proto b/proto/enums.proto index 868ee532d..52a624f05 100644 --- a/proto/enums.proto +++ b/proto/enums.proto @@ -39,6 +39,7 @@ enum ButtonLayout BUTTON_LAYOUT_6GAWD_A = 30; BUTTON_LAYOUT_6GAWD_ALLBUTTON_A = 31; BUTTON_LAYOUT_6GAWD_ALLBUTTONPLUS_A = 32; + BUTTON_LAYOUT_STICKLESS_R16 = 33; } enum ButtonLayoutRight @@ -82,6 +83,7 @@ enum ButtonLayoutRight BUTTON_LAYOUT_6GAWD_B = 34; BUTTON_LAYOUT_6GAWD_ALLBUTTON_B = 35; BUTTON_LAYOUT_6GAWD_ALLBUTTONPLUS_B = 36; + BUTTON_LAYOUT_STICKLESS_R16B = 37; } enum SplashMode diff --git a/src/addons/neopicoleds.cpp b/src/addons/neopicoleds.cpp index 62f742859..94725a3ff 100644 --- a/src/addons/neopicoleds.cpp +++ b/src/addons/neopicoleds.cpp @@ -441,6 +441,7 @@ std::vector> NeoPicoLEDAddon::createLEDLayout(ButtonLayout la case BUTTON_LAYOUT_STICKLESS_13: case BUTTON_LAYOUT_STICKLESS_14: case BUTTON_LAYOUT_STICKLESS_16: + case BUTTON_LAYOUT_STICKLESS_R16: case BUTTON_LAYOUT_BOARD_DEFINED_A: return generatedLEDStickless(&positions); case BUTTON_LAYOUT_FIGHTBOARD_MIRRORED: diff --git a/src/config_legacy.cpp b/src/config_legacy.cpp index c19db6f86..8831bc4de 100644 --- a/src/config_legacy.cpp +++ b/src/config_legacy.cpp @@ -113,6 +113,7 @@ namespace ConfigLegacy BUTTON_LAYOUT_STICKLESS_13, BUTTON_LAYOUT_STICKLESS_16, BUTTON_LAYOUT_STICKLESS_14, + BUTTON_LAYOUT_STICKLESS_R16, }; enum ButtonLayoutRight @@ -139,6 +140,7 @@ namespace ConfigLegacy BUTTON_LAYOUT_STICKLESS_13B, BUTTON_LAYOUT_STICKLESS_16B, BUTTON_LAYOUT_STICKLESS_14B, + BUTTON_LAYOUT_STICKLESS_R16B, }; enum SplashMode @@ -561,6 +563,7 @@ static bool isValidButtonLayout(ConfigLegacy::ButtonLayout buttonLayout) case BUTTON_LAYOUT_OPENCORE0WASDA: case BUTTON_LAYOUT_STICKLESS_13: case BUTTON_LAYOUT_STICKLESS_16: + case BUTTON_LAYOUT_STICKLESS_R16: case BUTTON_LAYOUT_STICKLESS_14: return true; } @@ -591,7 +594,8 @@ static bool isValidButtonLayoutRight(ConfigLegacy::ButtonLayoutRight buttonLayou case BUTTON_LAYOUT_KEYBOARD8B: case BUTTON_LAYOUT_OPENCORE0WASDB: case BUTTON_LAYOUT_STICKLESS_13B: - case BUTTON_LAYOUT_STICKLESS_16B: + case BUTTON_LAYOUT_STICKLESS_16B: + case BUTTON_LAYOUT_STICKLESS_R16B: case BUTTON_LAYOUT_STICKLESS_14B: return true; } diff --git a/src/layoutmanager.cpp b/src/layoutmanager.cpp index 95317c8e2..32e9c59fe 100644 --- a/src/layoutmanager.cpp +++ b/src/layoutmanager.cpp @@ -81,6 +81,8 @@ LayoutManager::LayoutList LayoutManager::getLeftLayout(uint16_t index) { return drawStickless13A(); case BUTTON_LAYOUT_STICKLESS_16: return drawStickless16A(); + case BUTTON_LAYOUT_STICKLESS_R16: + return drawSticklessR16A(); case BUTTON_LAYOUT_STICKLESS_14: return drawStickless14A(); case BUTTON_LAYOUT_DANCEPAD_DDR_LEFT: @@ -167,6 +169,8 @@ LayoutManager::LayoutList LayoutManager::getRightLayout(uint16_t index) { return this->drawSticklessButtons13B(); case BUTTON_LAYOUT_STICKLESS_16B: return this->drawSticklessButtons16B(); + case BUTTON_LAYOUT_STICKLESS_R16B: + return this->drawSticklessButtonsR16B(); case BUTTON_LAYOUT_STICKLESS_14B: return this->drawSticklessButtons14B(); case BUTTON_LAYOUT_DANCEPADB: @@ -406,6 +410,16 @@ LayoutManager::LayoutList LayoutManager::drawSticklessButtons16B() return BUTTON_GROUP_STICKLESS_BUTTONS16B; } +LayoutManager::LayoutList LayoutManager::drawSticklessR16A() +{ + return BUTTON_GROUP_STICKLESSR16A; +} + +LayoutManager::LayoutList LayoutManager::drawSticklessButtonsR16B() +{ + return BUTTON_GROUP_STICKLESS_BUTTONSR16B; +} + LayoutManager::LayoutList LayoutManager::drawStickless14A() { return BUTTON_GROUP_STICKLESS14A; diff --git a/www/server/app.js b/www/server/app.js index d27c82403..2e0ae0e36 100644 --- a/www/server/app.js +++ b/www/server/app.js @@ -692,6 +692,7 @@ app.get('/api/getButtonLayoutDefs', (req, res) => { BUTTON_LAYOUT_6GAWD_A: 30, BUTTON_LAYOUT_6GAWD_ALLBUTTON_A: 31, BUTTON_LAYOUT_6GAWD_ALLBUTTONPLUS_A: 32, + BUTTON_LAYOUT_STICKLESS_R16: 33, }, buttonLayoutRight: { BUTTON_LAYOUT_ARCADE: 0, @@ -731,6 +732,7 @@ app.get('/api/getButtonLayoutDefs', (req, res) => { BUTTON_LAYOUT_6GAWD_B: 34, BUTTON_LAYOUT_6GAWD_ALLBUTTON_B: 35, BUTTON_LAYOUT_6GAWD_ALLBUTTONPLUS_B: 36, + BUTTON_LAYOUT_STICKLESS_R16B: 37, }, }); }); diff --git a/www/src/Locales/en/LayoutConfig.jsx b/www/src/Locales/en/LayoutConfig.jsx index 215cbf298..168f176c8 100644 --- a/www/src/Locales/en/LayoutConfig.jsx +++ b/www/src/Locales/en/LayoutConfig.jsx @@ -20,6 +20,7 @@ export default { BUTTON_LAYOUT_OPENCORE0WASDA: 'Open_Core0 WASD', BUTTON_LAYOUT_STICKLESS_13: 'Stickless 13', BUTTON_LAYOUT_STICKLESS_16: 'Stickless 16', + BUTTON_LAYOUT_STICKLESS_R16: 'Stickless R16', BUTTON_LAYOUT_STICKLESS_14: 'Stickless 14', BUTTON_LAYOUT_DANCEPAD_DDR_LEFT: 'DDR Dancepad Left', BUTTON_LAYOUT_DANCEPAD_DDR_SOLO: 'DDR Dancepad Solo', @@ -61,6 +62,7 @@ export default { BUTTON_LAYOUT_OPENCORE0WASDB: 'Open_Core0 WASD', BUTTON_LAYOUT_STICKLESS_13B: 'Stickless 13', BUTTON_LAYOUT_STICKLESS_16B: 'Stickless 16', + BUTTON_LAYOUT_STICKLESS_R16B: 'Stickless R16', BUTTON_LAYOUT_STICKLESS_14B: 'Stickless 14', BUTTON_LAYOUT_DANCEPAD_DDR_RIGHT: 'DDR Dancepad Right', BUTTON_LAYOUT_DANCEPAD_PIU_RIGHT: 'PIU Dancepad Right', diff --git a/www/src/Locales/zh-CN/LayoutConfig.jsx b/www/src/Locales/zh-CN/LayoutConfig.jsx index dbb00011c..64d5a2246 100644 --- a/www/src/Locales/zh-CN/LayoutConfig.jsx +++ b/www/src/Locales/zh-CN/LayoutConfig.jsx @@ -20,6 +20,7 @@ export default { BUTTON_LAYOUT_OPENCORE0WASDA: 'Open_Core0 WASD', BUTTON_LAYOUT_STICKLESS_13: 'Stickless 13', BUTTON_LAYOUT_STICKLESS_16: 'Stickless 16', + BUTTON_LAYOUT_STICKLESS_R16: 'Stickless R16', BUTTON_LAYOUT_STICKLESS_14: 'Stickless 14', BUTTON_LAYOUT_DANCEPAD_DDR_LEFT: 'DDR Dancepad Left', BUTTON_LAYOUT_DANCEPAD_DDR_SOLO: 'DDR Dancepad Solo', @@ -61,6 +62,7 @@ export default { BUTTON_LAYOUT_OPENCORE0WASDB: 'Open_Core0 WASD', BUTTON_LAYOUT_STICKLESS_13B: 'Stickless 13', BUTTON_LAYOUT_STICKLESS_16B: 'Stickless 16', + BUTTON_LAYOUT_STICKLESS_R16B: 'Stickless R16', BUTTON_LAYOUT_STICKLESS_14B: 'Stickless 14', BUTTON_LAYOUT_DANCEPAD_DDR_RIGHT: 'DDR Dancepad Right', BUTTON_LAYOUT_DANCEPAD_PIU_RIGHT: 'PIU Dancepad Right',