mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-06 11:36:59 +03:00
no workaround to use ROM version of TJPGD
This commit is contained in:
@@ -177,9 +177,6 @@ static struct {
|
||||
u32_t size;
|
||||
u16_t x, y;
|
||||
bool enable, full;
|
||||
#ifdef TJPGD_ROM
|
||||
bool ready;
|
||||
#endif
|
||||
} artwork;
|
||||
|
||||
#define MAX_BARS 32
|
||||
@@ -869,31 +866,20 @@ static void grfa_handler(u8_t *data, int len) {
|
||||
artwork.x = htons(pkt->x);
|
||||
artwork.y = htons(pkt->y);
|
||||
artwork.full = artwork.enable && artwork.x == 0 && artwork.y == 0;
|
||||
#ifdef TJPGD_ROM
|
||||
xSemaphoreTake(displayer.mutex, portMAX_DELAY);
|
||||
artwork.ready = false;
|
||||
#endif
|
||||
if (artwork.data) free(artwork.data);
|
||||
artwork.data = malloc(length);
|
||||
#ifdef TJPGD_ROM
|
||||
xSemaphoreGive(displayer.mutex);
|
||||
#endif
|
||||
}
|
||||
|
||||
// copy artwork data
|
||||
memcpy(artwork.data + offset, data + sizeof(struct grfa_packet), size);
|
||||
artwork.size += size;
|
||||
if (artwork.size == length) {
|
||||
xSemaphoreTake(displayer.mutex, portMAX_DELAY);
|
||||
#ifdef TJPGD_ROM
|
||||
artwork.ready = true;
|
||||
#else
|
||||
GDS_ClearWindow(display, artwork.x, artwork.y, -1, -1, GDS_COLOR_BLACK);
|
||||
xSemaphoreTake(displayer.mutex, portMAX_DELAY);
|
||||
GDS_DrawJPEG(display, artwork.data, artwork.x, artwork.y, artwork.y < displayer.height ? (GDS_IMAGE_RIGHT | GDS_IMAGE_TOP) : GDS_IMAGE_CENTER);
|
||||
xSemaphoreGive(displayer.mutex);
|
||||
free(artwork.data);
|
||||
artwork.data = NULL;
|
||||
#endif
|
||||
xSemaphoreGive(displayer.mutex);
|
||||
}
|
||||
|
||||
LOG_DEBUG("gfra l:%u x:%hu, y:%hu, o:%u s:%u", length, artwork.x, artwork.y, offset, size);
|
||||
@@ -1317,16 +1303,6 @@ static void displayer_task(void *args) {
|
||||
if (display && displayer.owned) GDS_Update(display);
|
||||
else if (!led_display) displayer.wake = LONG_WAKE;
|
||||
|
||||
#ifdef TJPGD_ROM
|
||||
if (artwork.ready) {
|
||||
GDS_ClearWindow(display, artwork.x, artwork.y, -1, -1, GDS_COLOR_BLACK);
|
||||
GDS_DrawJPEG(display, artwork.data, artwork.x, artwork.y, artwork.y < displayer.height ? (GDS_IMAGE_RIGHT | GDS_IMAGE_TOP) : GDS_IMAGE_CENTER);
|
||||
free(artwork.data);
|
||||
artwork.data = NULL;
|
||||
artwork.ready = false;
|
||||
}
|
||||
#endif
|
||||
|
||||
// release semaphore and sleep what's needed
|
||||
xSemaphoreGive(displayer.mutex);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user