diff --git a/src/app.cpp b/src/app.cpp index 7969a4b..022c225 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -141,7 +141,8 @@ void setupSettingsGet() void setupSettingsPost() { - server.on("/api/settings", HTTP_PUT, [](AsyncWebServerRequest *request) { /* nothing and dont remove it */ }, NULL, [](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) { + server.on( + "/api/settings", HTTP_PUT, [](AsyncWebServerRequest *request) { /* nothing and dont remove it */ }, NULL, [](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) { DynamicJsonDocument doc(2048); DeserializationError error = deserializeJson(doc, data); @@ -179,7 +180,6 @@ void setupSettingsPost() void setupCurrentImage() { server.on("/current-image", HTTP_GET, [](AsyncWebServerRequest *request) { - uint8_t *bitmap = display.getBuffer(); int16_t w = display.width(); int16_t h = display.height(); @@ -197,10 +197,10 @@ void setupCurrentImage() //response->addHeader("Server", "ESP Async Web Server"); write16(*response, 0x4D42); // BMP signature - write32(*response, fileSize); // fileSize + write32(*response, fileSize); // fileSize write32(*response, 0); // creator bytes write32(*response, imageOffset); // image offset - write32(*response, headerSize); // Header size + write32(*response, headerSize); // Header size write32(*response, w); // image width write32(*response, h); // image height write16(*response, 1); // # planes @@ -283,7 +283,8 @@ void setupWifiScan() */ void setupWifiConnect() { - server.on("/api/wifi/connect", HTTP_POST, [](AsyncWebServerRequest *request) { /* nothing and dont remove it */ }, NULL, [](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) { + server.on( + "/api/wifi/connect", HTTP_POST, [](AsyncWebServerRequest *request) { /* nothing and dont remove it */ }, NULL, [](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) { DynamicJsonDocument doc(1024); DeserializationError error = deserializeJson(doc, data); @@ -316,6 +317,7 @@ static void handle_update_progress_cb(AsyncWebServerRequest *request, String fil { Serial.printf("UploadStart: %s\n", filename.c_str()); ImageNew(0, 0, 0, 0, true); + PlaylistResetTimer(); } ImageWriteBuffer(data, len); @@ -331,39 +333,11 @@ static void handle_update_progress_cb(AsyncWebServerRequest *request, String fil void setupApiFace() { - server.on("/api/face", HTTP_POST, [](AsyncWebServerRequest *request) { - Serial.println("post request"); - - /* - int params = request->params(); - for (int i = 0; i < params; i++) - { - AsyncWebParameter *p = request->getParam(i); - if (p->isFile()) - { - Serial.printf("
  • FILE[%s]: %s, size: %u
  • ", p->name().c_str(), p->value().c_str(), p->size()); - } - else if (p->isPost()) - { - Serial.printf("
  • POST[%s]: %s
  • ", p->name().c_str(), p->value().c_str()); - } - else - { - Serial.printf("
  • GET[%s]: %s
  • ", p->name().c_str(), p->value().c_str()); - } - } - - if (request->hasParam("dithering", true)) - { - AsyncWebParameter *p = request->getParam("dithering", true); - Serial.println(p->value()); - dithering = p->value().toInt() == 1; - } - */ - - request->send(200, "application/ld+json; charset=utf-8", "{}"); - }, - handle_update_progress_cb); + server.on( + "/api/face", HTTP_POST, [](AsyncWebServerRequest *request) { + request->send(200, "application/ld+json; charset=utf-8", "{}"); + }, + handle_update_progress_cb); } void setupApiUpdate() diff --git a/src/imageJPEG.cpp b/src/imageJPEG.cpp index 214ea38..777e5e7 100644 --- a/src/imageJPEG.cpp +++ b/src/imageJPEG.cpp @@ -115,6 +115,7 @@ void on_drawPixel(uint32_t x, uint32_t y, uint32_t color) { // new block uint32_t originOffsetY = ((y / 16) * 16); + //Serial.println("new block"); for (uint16_t _y = 0; _y <= BLOCK_SIZE; _y++) { @@ -123,7 +124,36 @@ void on_drawPixel(uint32_t x, uint32_t y, uint32_t color) uint32_t originX = _x; uint32_t originY = originOffsetY + _y + (blockPageY * 16); uint8_t originColor = blockDelta[(_y * MAX_WIDTH) + _x]; - draw_XXX(originX, originY, originColor); + //draw_XXX(originX, originY, originColor); + + uint8_t blue = originColor & 0x001F; // 5 bits blue + uint8_t green = originColor & 0x07E0; // 6 bits green + uint8_t red = originColor & 0xF800; // 5 bits red + + if (false && originX <= 70) + { + //uint8_t r = ((((originColor >> 11) & 0x1F) * 527) + 23) >> 6; + //uint8_t g = ((((originColor >> 5) & 0x3F) * 259) + 33) >> 6; + //uint8_t b = (((originColor & 0x1F) * 527) + 23) >> 6; + uint8_t r = red; + uint8_t g = green; + uint8_t b = blue; + + Serial.print("Pixel @ y: "); + Serial.print(y); + Serial.print(" x: "); + Serial.print(x); + + Serial.print(" Color, R:"); + Serial.print(r); + Serial.print(", G:"); + Serial.print(g); + Serial.print(", B:"); + Serial.println(b); + } + + uint8_t rgba[4] = {red, green, blue, 0}; + ImageProcessPixel(originX, originY, rgba); } } @@ -173,7 +203,34 @@ bool tft_output(int16_t x, int16_t y, uint16_t w, uint16_t h, uint16_t *bitmap) // geht richtig //display.writePixel(x + i, y, bitmap[j * w + i]); - // geht auch aber letzte zeil fehlt + if (_y == 0 && x + i <= 70) + { + uint32_t originColor = bitmap[j * w + i]; + + uint8_t blue = originColor & 0x001F; // 5 bits blue + uint8_t green = originColor & 0x07E0; // 6 bits green + uint8_t red = originColor & 0xF800; // 5 bits red + + //uint8_t r = ((((originColor >> 11) & 0x1F) * 527) + 23) >> 6; + //uint8_t g = ((((originColor >> 5) & 0x3F) * 259) + 33) >> 6; + //uint8_t b = (((originColor & 0x1F) * 527) + 23) >> 6; + uint8_t r = red; + uint8_t g = green; + uint8_t b = blue; + + Serial.print("Pixel @ y: "); + Serial.print(_y); + Serial.print(" x: "); + Serial.print(x + i); + + Serial.print(" Color, R:"); + Serial.print(r); + Serial.print(", G:"); + Serial.print(g); + Serial.print(", B:"); + Serial.println(b); + } + on_drawPixel(x + i, _y, bitmap[j * w + i]); } }