#include #include #include "server.h" #include "mode/Mode.h" #include "mode.h" #include "display.h" #include "config.h" WebServer server(80); void web_index(); void web_setMode(); void web_brighter(); void web_darker(); void web_faster(); void web_slower(); void web_fps_on(); void web_fps_off(); void redirect(); void server_setup() { server.on("/", web_index); server.on("/mode", web_setMode); server.on("/brighter", web_brighter); server.on("/darker", web_darker); server.on("/faster", web_faster); server.on("/slower", web_slower); server.on("/fps/on", web_fps_on); server.on("/fps/off", web_fps_off); server.begin(); } void server_loop() { server.handleClient(); } void web_index() { server.setContentLength(CONTENT_LENGTH_UNKNOWN); server.send(200, "text/html", ""); server.sendContent(R"()"); server.sendContent(R"()"); server.sendContent(R"()"); server.sendContent(R"(NONE
)"); server.sendContent(R"(BORDER
)"); server.sendContent(R"(CLOCK
)"); server.sendContent(R"(GAME_OF_LIFE_BLACK_WHITE
)"); server.sendContent(R"(GAME_OF_LIFE_GRAYSCALE
)"); server.sendContent(R"(GAME_OF_LIFE_COLOR_FADE
)"); server.sendContent(R"(GAME_OF_LIFE_RANDOM_COLOR
)"); server.sendContent(R"(PONG
)"); server.sendContent(R"(SPACE_INVADERS
)"); server.sendContent(R"(NEW_YEAR
)"); server.sendContent(R"(Helligkeit: + / -
)"); server.sendContent(R"(Geschwindigkeit: + / -
)"); server.sendContent(R"(FPS: EIN / AUS
)"); server.client().flush(); } void web_setMode() { if (!server.hasArg("mode")) { server.send(400, "text/plain", "Missing 'mode'"); return; } double value = strtod(server.arg("mode").c_str(), nullptr); if (isnan(value)) { server.send(400, "text/plain", "'mode' not a number"); return; } setMode((ModeId) value); redirect(); } void web_brighter() { setBrightness(display.getBrightness() + 10); redirect(); } void web_darker() { setBrightness(display.getBrightness() - 10); redirect(); } void web_faster() { setSpeed(config.speed * 1.1); redirect(); } void web_slower() { setSpeed(config.speed / 1.1); redirect(); } void web_fps_on() { display.fpsShow = true; redirect(); } void web_fps_off() { display.fpsShow = false; redirect(); } void redirect() { server.sendHeader("location", "/"); server.send(302, "text/plain", "ok"); }