#include "http.h" #include "audio.h" #include "ESPAsyncWebServer.h" #include "player.h" AsyncWebServer server(80); void httpSetup() { Serial.println("Starting HTTP server"); DefaultHeaders::Instance().addHeader("Access-Control-Allow-Origin", "*"); server.onNotFound([](AsyncWebServerRequest *request) { const auto path = request->url(); if (path.endsWith("/") && path.length() > 1) { request->redirect(path.substring(0, path.length() - 1)); } else { request->send(404, "text/plain", "Not Found"); } }); server.on("/player/stop", [](AsyncWebServerRequest *request) { playerState = PLAYER_STOP; request->send(200); }); server.on("/player/play", [](AsyncWebServerRequest *request) { playerState = PLAYER_PLAY; request->send(200); }); server.on("/player/pause", [](AsyncWebServerRequest *request) { playerState = PLAYER_PAUSE; request->send(200); }); server.on("/player/mute", [](AsyncWebServerRequest *request) { audioMute = true; request->send(200); }); server.on("/player/unmute", [](AsyncWebServerRequest *request) { audioMute = false; request->send(200); }); server.on("/player/up", [](AsyncWebServerRequest *request) { audioVolume = max(0.0f, min(audioVolume + 0.05f, 1.0f)); request->send(200); }); server.on("/player/down", [](AsyncWebServerRequest *request) { audioVolume = max(0.0f, min(audioVolume - 0.05f, 1.0f)); request->send(200); }); server.on("/player/next", [](AsyncWebServerRequest *request) { playerSkip += 1; request->send(200); }); server.on("/player/back", [](AsyncWebServerRequest *request) { playerSkip -= 1; request->send(200); }); server.begin(); }