Skip to content

Commit eb2929d

Browse files
Cleanup
1 parent c2ea329 commit eb2929d

File tree

3 files changed

+24
-18
lines changed

3 files changed

+24
-18
lines changed

src/OpenStreetMap-esp32.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,6 @@ double OpenStreetMap::lat2tile(double lat, uint8_t zoom)
4545
return (1.0 - log(tan(latRad) + 1.0 / cos(latRad)) / M_PI) / 2.0 * (1 << zoom);
4646
}
4747

48-
OpenStreetMap *OpenStreetMap::currentInstance = nullptr;
49-
50-
void OpenStreetMap::PNGDraw(PNGDRAW *pDraw)
51-
{
52-
if (!currentInstance || !currentInstance->currentTileBuffer)
53-
return;
54-
55-
uint16_t *destRow = currentInstance->currentTileBuffer + (pDraw->y * OSM_TILESIZE);
56-
currentInstance->png.getLineAsRGB565(pDraw, destRow, PNG_RGB565_BIG_ENDIAN, 0xffffffff);
57-
}
58-
5948
void OpenStreetMap::computeRequiredTiles(double longitude, double latitude, uint8_t zoom, tileList &requiredTiles)
6049
{
6150
// Compute exact tile coordinates
@@ -366,6 +355,17 @@ std::optional<std::unique_ptr<MemoryBuffer>> OpenStreetMap::urlToBuffer(const St
366355
return buffer;
367356
}
368357

358+
OpenStreetMap *OpenStreetMap::currentInstance = nullptr;
359+
360+
void OpenStreetMap::PNGDraw(PNGDRAW *pDraw)
361+
{
362+
if (!currentInstance || !currentInstance->currentTileBuffer)
363+
return;
364+
365+
uint16_t *destRow = currentInstance->currentTileBuffer + (pDraw->y * OSM_TILESIZE);
366+
currentInstance->png.getLineAsRGB565(pDraw, destRow, PNG_RGB565_BIG_ENDIAN, 0xffffffff);
367+
}
368+
369369
bool OpenStreetMap::fetchTile(CachedTile &tile, uint32_t x, uint32_t y, uint8_t zoom, String &result)
370370
{
371371
const uint32_t worldTileWidth = 1 << zoom;
@@ -383,10 +383,10 @@ bool OpenStreetMap::fetchTile(CachedTile &tile, uint32_t x, uint32_t y, uint8_t
383383
if (!buffer)
384384
return false;
385385

386-
PNGDecoderRAII png(PNGDraw);
387-
if (!png.open(buffer.value()->get(), buffer.value()->size()))
386+
const int16_t rc = png.openRAM(buffer.value()->get(), buffer.value()->size(), PNGDraw);
387+
if (rc != PNG_SUCCESS)
388388
{
389-
result = "PNG Decoder Error";
389+
result = "PNG Decoder Error: " + String(rc);
390390
return false;
391391
}
392392

src/OpenStreetMap-esp32.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ class OpenStreetMap
7575

7676
std::vector<CachedTile> tilesCache;
7777
uint16_t *currentTileBuffer = nullptr;
78-
78+
PNG png;
79+
7980
uint16_t mapWidth = 320;
8081
uint16_t mapHeight = 240;
8182

src/pngdecRAII.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,13 @@ class PNGDecoderRAII
5858
return png.decode(pPriv, options);
5959
}
6060

61-
int getWidth() const { return png.getWidth(); }
62-
int getHeight() const { return png.getHeight(); }
61+
int getWidth() { return png.getWidth(); }
62+
int getHeight() { return png.getHeight(); }
63+
64+
void getLineAsRGB565(PNGDRAW *pDraw, uint16_t *dest, int format, uint32_t transparent)
65+
{
66+
png.getLineAsRGB565(pDraw, dest, format, transparent);
67+
}
6368

6469
void close()
6570
{
@@ -71,7 +76,7 @@ class PNGDecoderRAII
7176
}
7277

7378
private:
74-
PNGdec png;
79+
PNG png;
7580
PNG_DRAW_CALLBACK *callback;
7681
bool isOpen;
7782
};

0 commit comments

Comments
 (0)