From 487bf8bce736ac21b3177f78671a2390cafd66a4 Mon Sep 17 00:00:00 2001 From: Kilrah Date: Sun, 27 May 2018 11:34:47 +0200 Subject: [PATCH] Xlite can now change telemetry screens --- radio/src/gui/128x64/view_telemetry.cpp | 17 ++++++++++++++++- radio/src/main_arm.cpp | 5 +++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/radio/src/gui/128x64/view_telemetry.cpp b/radio/src/gui/128x64/view_telemetry.cpp index 70b267304..cd13fe075 100644 --- a/radio/src/gui/128x64/view_telemetry.cpp +++ b/radio/src/gui/128x64/view_telemetry.cpp @@ -520,7 +520,10 @@ void incrTelemetryScreen() } #endif -#if defined(PCBX7) +#if defined(PCBXLITE) +#define EVT_KEY_PREVIOUS_VIEW EVT_KEY_LONG(KEY_LEFT) +#define EVT_KEY_NEXT_VIEW EVT_KEY_LONG(KEY_RIGHT) +#elif defined(PCBX7) #define EVT_KEY_PREVIOUS_VIEW EVT_KEY_LONG(KEY_PAGE) #define EVT_KEY_NEXT_VIEW EVT_KEY_BREAK(KEY_PAGE) #else @@ -544,14 +547,26 @@ void menuViewTelemetryFrsky(event_t event) break; case EVT_KEY_PREVIOUS_VIEW: +#if defined(PCBXLITE) + if (IS_SHIFT_PRESSED()) { + decrTelemetryScreen(); + } +#else if (IS_KEY_LONG(EVT_KEY_PREVIOUS_VIEW)) { killEvents(event); } decrTelemetryScreen(); +#endif break; case EVT_KEY_NEXT_VIEW: +#if defined(PCBXLITE) + if (IS_SHIFT_PRESSED()) { + incrTelemetryScreen(); + } +#else incrTelemetryScreen(); +#endif break; #if defined(CPUARM) diff --git a/radio/src/main_arm.cpp b/radio/src/main_arm.cpp index f0cb5ce33..2e8a4f306 100644 --- a/radio/src/main_arm.cpp +++ b/radio/src/main_arm.cpp @@ -307,8 +307,13 @@ void handleGui(event_t event) { // so Lua telemetry script can fully use them if (event) { uint8_t key = EVT_KEY_MASK(event); +#if defined(PCBXLITE) + // SHIFT + LEFT/RIGHT used to change telemetry screen on XLITE + if ((!IS_KEY_LONG(event) && key == KEY_RIGHT && IS_SHIFT_PRESSED()) || (!IS_KEY_LONG(event) && key == KEY_LEFT && IS_SHIFT_PRESSED()) || (!IS_KEY_LONG(event) && key == KEY_EXIT)) { +#else // no need to filter out MENU and ENT(short), because they are not used by menuViewTelemetryFrsky() if (key == KEY_PLUS || key == KEY_MINUS || (!IS_KEY_LONG(event) && key == KEY_EXIT)) { +#endif // TRACE("Telemetry script event 0x%02x killed", event); event = 0; }