diff --git a/include/hasp_conf.h b/include/hasp_conf.h index 3145f8a7..9a2f9812 100644 --- a/include/hasp_conf.h +++ b/include/hasp_conf.h @@ -27,4 +27,10 @@ #define HASP_NUM_INPUTS 3 // Buttons #define HASP_NUM_OUTPUTS 3 +#if defined(ARDUINO_ARCH_ESP32) +#define HASP_NUM_PAGES 12 +#else +#define HASP_NUM_PAGES 4 +#endif + #endif \ No newline at end of file diff --git a/src/hasp.cpp b/src/hasp.cpp index a1578f85..42635411 100644 --- a/src/hasp.cpp +++ b/src/hasp.cpp @@ -105,18 +105,17 @@ static const char * btnm_map2[] = {"0", "1", "\n", "2", "3", "\n", "4", "5", "\n", "6", "7", "\n", "P1", "P2", "P3", ""}; */ +static lv_obj_t * pages[HASP_NUM_PAGES]; #if defined(ARDUINO_ARCH_ESP8266) -static lv_obj_t * pages[4]; // static lv_font_t * haspFonts[4]; // static lv_style_t labelStyles[4]; // static lv_style_t rollerStyles[4]; #else -static lv_obj_t * pages[12]; // static lv_font_t * haspFonts[8]; // static lv_style_t labelStyles[8]; // static lv_style_t rollerStyles[8]; #endif -uint16_t current_page = 0; +uint8_t current_page = 0; // uint16_t current_style = 0; /********************** @@ -963,12 +962,12 @@ void haspClearPage(uint16_t pageid) } } -uint16_t haspGetPage() +uint8_t haspGetPage() { return current_page; } -void haspSetPage(uint16_t pageid) +void haspSetPage(uint8_t pageid) { lv_obj_t * page = get_page(pageid); if(!page) { diff --git a/src/hasp_http.cpp b/src/hasp_http.cpp index 6eb8a95e..a9a85a0f 100644 --- a/src/hasp_http.cpp +++ b/src/hasp_http.cpp @@ -689,11 +689,21 @@ void webHandleScreenshot() if(webServer.hasArg(F("a")) && webServer.arg(F("a")) == F("next")) { uint8_t page = haspGetPage(); - haspSetPage(page + 1); + if(page + 1 == HASP_NUM_PAGES) { + page = 0; + } else { + page++; + } + haspSetPage(page); } if(webServer.hasArg(F("a")) && webServer.arg(F("a")) == F("prev")) { uint8_t page = haspGetPage(); - haspSetPage(page - 1); + if(page == 0) { + page = HASP_NUM_PAGES - 1; + } else { + page--; + } + haspSetPage(page); } if(webServer.hasArg(F("q"))) {