Skip to content

Commit

Permalink
no workaround to use ROM version of TJPGD (loosing 5kB of flash)
Browse files Browse the repository at this point in the history
  • Loading branch information
philippe44 committed Sep 15, 2022
1 parent 405c774 commit eb6b99d
Showing 1 changed file with 2 additions and 23 deletions.
25 changes: 2 additions & 23 deletions components/squeezelite/displayer.c
Original file line number Diff line number Diff line change
Expand Up @@ -882,31 +882,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);
Expand Down Expand Up @@ -1330,16 +1319,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);

Expand Down

0 comments on commit eb6b99d

Please sign in to comment.