1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Index: apps/recorder/bmp.c
===================================================================
--- apps/recorder/bmp.c	(revision 21072)
+++ apps/recorder/bmp.c	(working copy)
@@ -460,6 +460,7 @@
     int read_width;
     int depth, numcolors, compression, totalsize;
     int ret;
+    bool return_size = format & FORMAT_RETURN_SIZE;

     unsigned char *bitmap = bm->data;
     struct uint8_rgb palette[256];
@@ -595,6 +596,13 @@
     else
         totalsize = BM_SIZE(bm->width,bm->height,format,remote);

+    if(return_size)
+    {
+        if(resize)
+            totalsize += BM_SCALED_SIZE(bm->width, 0, 0, 0);
+        return totalsize;
+    }
+
     /* Check if this fits the buffer */
     if (totalsize > maxsize) {
         DEBUGF("read_bmp_fd: Bitmap too large for buffer: "
Index: firmware/export/lcd.h
===================================================================
--- firmware/export/lcd.h	(revision 21072)
+++ firmware/export/lcd.h	(working copy)
@@ -388,6 +388,7 @@
 #define FORMAT_REMOTE      0x10000000
 #define FORMAT_RESIZE      0x08000000
 #define FORMAT_KEEP_ASPECT 0x04000000
+#define FORMAT_RETURN_SIZE 0x02000000

 #define TRANSPARENT_COLOR LCD_RGBPACK(255,0,255)
 #define REPLACEWITHFG_COLOR LCD_RGBPACK(0,255,255)