26
26
#include < imgui_impl_sdl2.h>
27
27
#include < imgui_impl_sdlrenderer2.h>
28
28
29
+ #include " gui_common.h"
30
+ #include " hal/adc_driver.h"
31
+ #include " hal/rotary_encoder.h"
32
+ #include " edgetx_constants.h"
33
+
29
34
#ifdef __EMSCRIPTEN__
30
35
#include < emscripten.h>
31
36
#endif
@@ -77,6 +82,10 @@ static const unsigned char _icon_png[] = {
77
82
};
78
83
#endif
79
84
85
+ #if defined(ROTARY_ENCODER_NAVIGATION)
86
+ extern volatile rotenc_t rotencValue;
87
+ #endif
88
+
80
89
int pots[MAX_POTS] = {0 };
81
90
82
91
static void _set_pixel (uint8_t * pixel, const SDL_Color& color)
@@ -234,17 +243,27 @@ static bool handleKeyEvents(SDL_Event& event)
234
243
break ;
235
244
236
245
case SDLK_UP:
246
+ #if defined(ROTARY_ENCODER_NAVIGATION)
247
+ rotencValue -= ROTARY_ENCODER_GRANULARITY;
248
+ key_handled = true ;
249
+ #else
237
250
if (keysGetSupported () & (1 << KEY_UP)) {
238
251
key = KEY_UP;
239
252
key_handled = true ;
240
253
}
254
+ #endif
241
255
break ;
242
256
243
257
case SDLK_DOWN:
258
+ #if defined(ROTARY_ENCODER_NAVIGATION)
259
+ rotencValue += ROTARY_ENCODER_GRANULARITY;
260
+ key_handled = true ;
261
+ #else
244
262
if (keysGetSupported () & (1 << KEY_DOWN)) {
245
263
key = KEY_DOWN;
246
264
key_handled = true ;
247
265
}
266
+ #endif
248
267
break ;
249
268
250
269
case SDLK_PLUS:
@@ -261,6 +280,20 @@ static bool handleKeyEvents(SDL_Event& event)
261
280
}
262
281
break ;
263
282
283
+ case SDLK_PAGEUP:
284
+ if (keysGetSupported () & (1 << KEY_PAGEUP)) {
285
+ key = KEY_PAGEUP;
286
+ key_handled = true ;
287
+ }
288
+ break ;
289
+
290
+ case SDLK_PAGEDOWN:
291
+ if (keysGetSupported () & (1 << KEY_PAGEDN)) {
292
+ key = KEY_PAGEDN;
293
+ key_handled = true ;
294
+ }
295
+ break ;
296
+
264
297
case SDLK_m:
265
298
if (keysGetSupported () & (1 << KEY_MENU)) {
266
299
key = KEY_MENU;
@@ -640,7 +673,7 @@ int main(int argc, char** argv)
640
673
return 0 ;
641
674
}
642
675
643
- // race condition on YAML loaded...
676
+ // TODO: race condition on YAML loaded...
644
677
if (g_eeGeneral.stickMode == 1 ) {
645
678
stick_left.pos .y = 1 .0f ;
646
679
} else if (g_eeGeneral.stickMode == 0 ) {
0 commit comments