Radio/src/http.cpp
2025-06-05 21:13:30 +02:00

58 lines
1.7 KiB
C++

#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();
}