@@ -414,14 +414,21 @@ bool OpenStreetMap::downloadAndDecodeTile(CachedTile &tile, uint32_t x, uint32_t
414
414
415
415
bool OpenStreetMap::saveMap (const char *filename, LGFX_Sprite &map, String &result, uint8_t sdPin, uint32_t frequency)
416
416
{
417
- log_i (" Saving map, this may take a while... " );
417
+ log_i (" Saving map as %s " , filename );
418
418
419
419
if (!map.getBuffer ())
420
420
{
421
421
result = " No data in map" ;
422
422
return false ;
423
423
}
424
424
425
+ MemoryBuffer rowBuffer (map.width () * 3 );
426
+ if (!rowBuffer.isAllocated ())
427
+ {
428
+ result = " Row buffer allocation failed" ;
429
+ return false ;
430
+ }
431
+
425
432
if (!SD.begin (sdPin, SPI, frequency))
426
433
{
427
434
result = " SD Card mount failed" ;
@@ -478,15 +485,6 @@ bool OpenStreetMap::saveMap(const char *filename, LGFX_Sprite &map, String &resu
478
485
writeLE (biClrUsed, 4 );
479
486
writeLE (biClrImportant, 4 );
480
487
481
- MemoryBuffer rowBuffer (map.width () * 3 );
482
- if (!rowBuffer.isAllocated ())
483
- {
484
- result = " Row buffer allocation failed" ;
485
- file.close ();
486
- SD.end ();
487
- return false ;
488
- }
489
-
490
488
uint8_t *buf = rowBuffer.get ();
491
489
for (uint16_t y = 0 ; y < map.height (); y++)
492
490
{
@@ -506,6 +504,6 @@ bool OpenStreetMap::saveMap(const char *filename, LGFX_Sprite &map, String &resu
506
504
507
505
file.close ();
508
506
SD.end ();
509
- result = " Screenshot saved" ;
507
+ result = " Map saved as " + String (filename) ;
510
508
return true ;
511
509
}
0 commit comments