19 const char* ssid =
nullptr,
20 const char* pwd =
nullptr) {
21 setProtocol(protocol);
34 void setPort(
int port) { this->port = port; }
35 void setSSID(
const char* ssid) { this->ssid = ssid; }
36 void setPassword(
const char* password) { this->password = password; }
37 void setSSID(
const char* ssid,
const char* password) {
39 this->password = password;
44 server.on(
"/", T_GET, parse, context.data(), context.size());
47 if (ssid !=
nullptr && password !=
nullptr) {
48 return server.begin(port, ssid, password);
50 return server.begin(port);
53 void loop() { server.copy(); }
54 void copy() { server.copy(); }
60 this->p_protocol = &protocol;
65 HttpServer server{wifi};
66 AudioPlayerProtocol* p_protocol;
67 RingBuffer<uint8_t> ringBuffer{0};
68 QueueStream<uint8_t> queueStream{ringBuffer};
69 Vector<void*> context{1};
71 const char* ssid =
nullptr;
72 const char* password =
nullptr;
73 int buffer_size = 512;
75 static void parse(HttpServer* server,
const char* requestPath,
76 HttpRequestHandlerLine* hl) {
77 LOGI(
"parse: %s", requestPath);
79 self->ringBuffer.resize(self->buffer_size);
80 QueueStream<uint8_t>& queueStream = self->queueStream;
82 bool ok = self->p_protocol->processCommand(requestPath, queueStream);
83 LOGI(
"available: %d", queueStream.available());
84 server->reply(
"text/plain", queueStream, queueStream.available(),
85 ok ? 200 : 400, ok ? SUCCESS :
"Error");
86 self->ringBuffer.resize(0);