summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/main_menu.c4
-rw-r--r--apps/menu.c3
-rw-r--r--apps/playlist_viewer.c3
-rw-r--r--apps/plugin.c3
-rw-r--r--apps/plugin.h18
-rw-r--r--apps/plugins/bounce.c15
-rw-r--r--apps/plugins/chessclock.c2
-rw-r--r--apps/plugins/clock.c200
-rw-r--r--apps/plugins/flipit.c10
-rw-r--r--apps/plugins/logo.c2
-rw-r--r--apps/plugins/minesweeper.c4
-rw-r--r--apps/plugins/sliding_puzzle.c2
-rw-r--r--apps/plugins/snake2.c12
-rw-r--r--apps/plugins/snow.c2
-rw-r--r--apps/plugins/solitaire.c12
-rw-r--r--apps/plugins/splitedit.c8
-rw-r--r--apps/plugins/star.c24
-rw-r--r--apps/plugins/vu_meter.c61
-rw-r--r--apps/recorder/icons.c12
-rw-r--r--apps/recorder/peakmeter.c8
-rw-r--r--apps/recorder/recording.c10
-rw-r--r--apps/screens.c26
-rw-r--r--apps/status.c4
-rw-r--r--apps/tree.c3
-rw-r--r--apps/wps-display.c4
25 files changed, 243 insertions, 209 deletions
diff --git a/apps/main_menu.c b/apps/main_menu.c
index 33e9269a8a..9654b806e3 100644
--- a/apps/main_menu.c
+++ b/apps/main_menu.c
@@ -72,10 +72,10 @@ int show_logo( void )
72 72
73 lcd_clear_display(); 73 lcd_clear_display();
74#if LCD_WIDTH == 112 || LCD_WIDTH == 128 74#if LCD_WIDTH == 112 || LCD_WIDTH == 128
75 lcd_bitmap(rockbox112x37, 0, 10, 112, 37, false); 75 lcd_bitmap(rockbox112x37, 0, 10, 112, 37);
76#endif 76#endif
77#if LCD_WIDTH >= 160 77#if LCD_WIDTH >= 160
78 lcd_bitmap(rockbox160x53, 0, 10, 160, 53, false); 78 lcd_bitmap(rockbox160x53, 0, 10, 160, 53);
79#endif 79#endif
80 80
81#ifdef HAVE_REMOTE_LCD 81#ifdef HAVE_REMOTE_LCD
diff --git a/apps/menu.c b/apps/menu.c
index d431097553..459abe6849 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -116,8 +116,7 @@ void put_cursorxy(int x, int y, bool on)
116 /* place the cursor */ 116 /* place the cursor */
117 if(on) { 117 if(on) {
118#ifdef HAVE_LCD_BITMAP 118#ifdef HAVE_LCD_BITMAP
119 lcd_bitmap ( bitmap_icons_6x8[Cursor], 119 lcd_bitmap(bitmap_icons_6x8[Cursor], xpos, ypos, 4, 8);
120 xpos, ypos, 4, 8, true);
121#else 120#else
122 lcd_putc(x, y, CURSOR_CHAR); 121 lcd_putc(x, y, CURSOR_CHAR);
123#endif 122#endif
diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c
index 1d82c2e7e0..21ae4d7645 100644
--- a/apps/playlist_viewer.c
+++ b/apps/playlist_viewer.c
@@ -463,8 +463,7 @@ static void display_playlist(void)
463 offset = (viewer.line_height - 8) / 2; 463 offset = (viewer.line_height - 8) / 2;
464 lcd_bitmap(bitmap_icons_6x8[File], 464 lcd_bitmap(bitmap_icons_6x8[File],
465 CURSOR_X * 6 + CURSOR_WIDTH, 465 CURSOR_X * 6 + CURSOR_WIDTH,
466 MARGIN_Y+(i*viewer.line_height) + offset, 466 MARGIN_Y+(i*viewer.line_height) + offset, 6, 8);
467 6, 8, true);
468#else 467#else
469 lcd_putc(LINE_X-1, i, File); 468 lcd_putc(LINE_X-1, i, File);
470#endif 469#endif
diff --git a/apps/plugin.c b/apps/plugin.c
index fb9da5bd5d..2a8d2c0841 100644
--- a/apps/plugin.c
+++ b/apps/plugin.c
@@ -110,8 +110,11 @@ static const struct plugin_api rockbox_api = {
110 lcd_getstringsize, 110 lcd_getstringsize,
111 lcd_drawpixel, 111 lcd_drawpixel,
112 lcd_drawline, 112 lcd_drawline,
113 lcd_hline,
114 lcd_vline,
113 lcd_drawrect, 115 lcd_drawrect,
114 lcd_fillrect, 116 lcd_fillrect,
117 lcd_bitmap_part,
115 lcd_bitmap, 118 lcd_bitmap,
116 lcd_putsxy, 119 lcd_putsxy,
117 lcd_puts_style, 120 lcd_puts_style,
diff --git a/apps/plugin.h b/apps/plugin.h
index d2253b42c6..78bffe08ed 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -87,12 +87,12 @@
87#endif 87#endif
88 88
89/* increase this every time the api struct changes */ 89/* increase this every time the api struct changes */
90#define PLUGIN_API_VERSION 41 90#define PLUGIN_API_VERSION 42
91 91
92/* update this to latest version if a change to the api struct breaks 92/* update this to latest version if a change to the api struct breaks
93 backwards compatibility (and please take the opportunity to sort in any 93 backwards compatibility (and please take the opportunity to sort in any
94 new function which are "waiting" at the end of the function table) */ 94 new function which are "waiting" at the end of the function table) */
95#define PLUGIN_MIN_API_VERSION 41 95#define PLUGIN_MIN_API_VERSION 42
96 96
97/* plugin return codes */ 97/* plugin return codes */
98enum plugin_status { 98enum plugin_status {
@@ -160,17 +160,21 @@ struct plugin_api {
160 int (*lcd_getstringsize)(const unsigned char *str, int *w, int *h); 160 int (*lcd_getstringsize)(const unsigned char *str, int *w, int *h);
161 void (*lcd_drawpixel)(int x, int y); 161 void (*lcd_drawpixel)(int x, int y);
162 void (*lcd_drawline)(int x1, int y1, int x2, int y2); 162 void (*lcd_drawline)(int x1, int y1, int x2, int y2);
163 void (*lcd_drawrect)(int x, int y, int nx, int ny); 163 void (*lcd_hline)(int x1, int x2, int y);
164 void (*lcd_fillrect)(int x, int y, int nx, int ny); 164 void (*lcd_vline)(int x, int y1, int y2);
165 void (*lcd_drawrect)(int x, int y, int width, int height);
166 void (*lcd_fillrect)(int x, int y, int width, int height);
167 void (*lcd_bitmap_part)(const unsigned char *src, int src_x, int src_y,
168 int stride, int x, int y, int width, int height);
165 void (*lcd_bitmap)(const unsigned char *src, int x, int y, 169 void (*lcd_bitmap)(const unsigned char *src, int x, int y,
166 int nx, int ny, bool clear); 170 int width, int height);
167 void (*lcd_putsxy)(int x, int y, const unsigned char *string); 171 void (*lcd_putsxy)(int x, int y, const unsigned char *string);
168 void (*lcd_puts_style)(int x, int y, const unsigned char *str, int style); 172 void (*lcd_puts_style)(int x, int y, const unsigned char *str, int style);
169 void (*lcd_puts_scroll_style)(int x, int y, const unsigned char* string, 173 void (*lcd_puts_scroll_style)(int x, int y, const unsigned char* string,
170 int style); 174 int style);
171 unsigned char* lcd_framebuffer; 175 unsigned char* lcd_framebuffer;
172 void (*lcd_blit) (const unsigned char* p_data, int x, int y, int width, 176 void (*lcd_blit) (const unsigned char* data, int x, int by, int width,
173 int height, int stride); 177 int bheight, int stride);
174 void (*lcd_update)(void); 178 void (*lcd_update)(void);
175 void (*lcd_update_rect)(int x, int y, int width, int height); 179 void (*lcd_update_rect)(int x, int y, int width, int height);
176 void (*scrollbar)(int x, int y, int width, int height, int items, 180 void (*scrollbar)(int x, int y, int width, int height, int items,
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index 232d9a9cc5..fa0e22f196 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -269,9 +269,9 @@ static void addclock(void)
269 /* draw a circle */ 269 /* draw a circle */
270 for(i=0; i < 60; i+=3) { 270 for(i=0; i < 60; i+=3) {
271 rb->lcd_drawline( xminute[i], 271 rb->lcd_drawline( xminute[i],
272 yminute[i], 272 yminute[i],
273 xminute[(i+1)%60], 273 xminute[(i+1)%60],
274 yminute[(i+1)%60]); 274 yminute[(i+1)%60]);
275 } 275 }
276} 276}
277#endif /* HAVE_RTC */ 277#endif /* HAVE_RTC */
@@ -303,16 +303,17 @@ static int scrollit(void)
303 return -1; 303 return -1;
304 304
305 rb->lcd_clear_display(); 305 rb->lcd_clear_display();
306 rb->lcd_set_drawmode(DRMODE_FG);
306 307
307 for(i=0, yy=y, xx=x; i< LETTERS_ON_SCREEN; i++) { 308 for(i=0, yy=y, xx=x; i< LETTERS_ON_SCREEN; i++) {
308 letter = rock[(i+textpos) % rocklen ]; 309 letter = rock[(i+textpos) % rocklen ];
309 310
310 rb->lcd_bitmap((char *)char_gen_12x16[letter-0x20], 311 rb->lcd_bitmap((char *)char_gen_12x16[letter-0x20],
311 xx, table[yy&(TABLE_SIZE-1)], 312 xx, table[yy&(TABLE_SIZE-1)], 11, 16);
312 11, 16, false);
313 yy += YADD; 313 yy += YADD;
314 xx+= LCD_WIDTH/LETTERS_ON_SCREEN; 314 xx+= LCD_WIDTH/LETTERS_ON_SCREEN;
315 } 315 }
316 rb->lcd_set_drawmode(DRMODE_SOLID);
316#ifdef HAVE_RTC 317#ifdef HAVE_RTC
317 addclock(); 318 addclock();
318#endif 319#endif
@@ -393,13 +394,15 @@ static int loopit(void)
393 rb->lcd_putsxy(0, LCD_HEIGHT - 8, buffer); 394 rb->lcd_putsxy(0, LCD_HEIGHT - 8, buffer);
394 timeout--; 395 timeout--;
395 } 396 }
397 rb->lcd_set_drawmode(DRMODE_FG);
396 for(i=0, yy=y, xx=x; 398 for(i=0, yy=y, xx=x;
397 i<rocklen; 399 i<rocklen;
398 i++, yy+=values[NUM_YDIST].num, xx+=values[NUM_XDIST].num) 400 i++, yy+=values[NUM_YDIST].num, xx+=values[NUM_XDIST].num)
399 rb->lcd_bitmap((char *)char_gen_12x16[rock[i]-0x20], 401 rb->lcd_bitmap((char *)char_gen_12x16[rock[i]-0x20],
400 xtable[xx&(TABLE_SIZE-1)], table[yy&(TABLE_SIZE-1)], 402 xtable[xx&(TABLE_SIZE-1)], table[yy&(TABLE_SIZE-1)],
401 11, 16, false); 403 11, 16);
402 rb->lcd_update(); 404 rb->lcd_update();
405 rb->lcd_set_drawmode(DRMODE_SOLID);
403 406
404 ysanke+= values[NUM_YSANKE].num; 407 ysanke+= values[NUM_YSANKE].num;
405 xsanke+= values[NUM_XSANKE].num; 408 xsanke+= values[NUM_XSANKE].num;
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 8485d40aae..b66ed2a385 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -214,7 +214,7 @@ static void show_pause_mode(bool enabled)
214 static const char pause_icon[] = {0x00,0x7f,0x7f,0x00,0x7f,0x7f,0x00}; 214 static const char pause_icon[] = {0x00,0x7f,0x7f,0x00,0x7f,0x7f,0x00};
215 215
216 if (enabled) 216 if (enabled)
217 rb->lcd_bitmap(pause_icon, 52, 0, 7, 8, true); 217 rb->lcd_bitmap(pause_icon, 52, 0, 7, 8);
218 else 218 else
219 { 219 {
220 rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); 220 rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
diff --git a/apps/plugins/clock.c b/apps/plugins/clock.c
index d58f746158..bddda15f5f 100644
--- a/apps/plugins/clock.c
+++ b/apps/plugins/clock.c
@@ -788,9 +788,9 @@ bool colon, bool lcd)
788 if(settings.digital_12h) 788 if(settings.digital_12h)
789 { 789 {
790 if(hour > 12) 790 if(hour > 12)
791 rb->lcd_bitmap(pm, 97, 55, 15, 8, true); 791 rb->lcd_bitmap(pm, 97, 55, 15, 8);
792 else 792 else
793 rb->lcd_bitmap(am, 1, 55, 15, 8, true); 793 rb->lcd_bitmap(am, 1, 55, 15, 8);
794 } 794 }
795 } 795 }
796 else 796 else
@@ -798,9 +798,9 @@ bool colon, bool lcd)
798 if(settings.lcd_12h) 798 if(settings.lcd_12h)
799 { 799 {
800 if(hour > 12) 800 if(hour > 12)
801 rb->lcd_bitmap(pm, 97, 55, 15, 8, true); 801 rb->lcd_bitmap(pm, 97, 55, 15, 8);
802 else 802 else
803 rb->lcd_bitmap(am, 1, 55, 15, 8, true); 803 rb->lcd_bitmap(am, 1, 55, 15, 8);
804 } 804 }
805 } 805 }
806 806
@@ -881,138 +881,138 @@ void binary(int hour, int minute, int second)
881 *****/ 881 *****/
882 if(temphour >= 32) 882 if(temphour >= 32)
883 { 883 {
884 rb->lcd_bitmap(bitmap_1, 0, 1, 15, 20, true); 884 rb->lcd_bitmap(bitmap_1, 0, 1, 15, 20);
885 temphour -= 32; 885 temphour -= 32;
886 } 886 }
887 else 887 else
888 rb->lcd_bitmap(bitmap_0, 0, 1, 15, 20, true); 888 rb->lcd_bitmap(bitmap_0, 0, 1, 15, 20);
889 if(temphour >= 16) 889 if(temphour >= 16)
890 { 890 {
891 rb->lcd_bitmap(bitmap_1, 19, 1, 15, 20, true); 891 rb->lcd_bitmap(bitmap_1, 19, 1, 15, 20);
892 temphour -= 16; 892 temphour -= 16;
893 } 893 }
894 else 894 else
895 rb->lcd_bitmap(bitmap_0, 19, 1, 15, 20, true); 895 rb->lcd_bitmap(bitmap_0, 19, 1, 15, 20);
896 if(temphour >= 8) 896 if(temphour >= 8)
897 { 897 {
898 rb->lcd_bitmap(bitmap_1, 38, 1, 15, 20, true); 898 rb->lcd_bitmap(bitmap_1, 38, 1, 15, 20);
899 temphour -= 8; 899 temphour -= 8;
900 } 900 }
901 else 901 else
902 rb->lcd_bitmap(bitmap_0, 38, 1, 15, 20, true); 902 rb->lcd_bitmap(bitmap_0, 38, 1, 15, 20);
903 if(temphour >= 4) 903 if(temphour >= 4)
904 { 904 {
905 rb->lcd_bitmap(bitmap_1, 57, 1, 15, 20, true); 905 rb->lcd_bitmap(bitmap_1, 57, 1, 15, 20);
906 temphour -= 4; 906 temphour -= 4;
907 } 907 }
908 else 908 else
909 rb->lcd_bitmap(bitmap_0, 57, 1, 15, 20, true); 909 rb->lcd_bitmap(bitmap_0, 57, 1, 15, 20);
910 if(temphour >= 2) 910 if(temphour >= 2)
911 { 911 {
912 rb->lcd_bitmap(bitmap_1, 76, 1, 15, 20, true); 912 rb->lcd_bitmap(bitmap_1, 76, 1, 15, 20);
913 temphour -= 2; 913 temphour -= 2;
914 } 914 }
915 else 915 else
916 rb->lcd_bitmap(bitmap_0, 76, 1, 15, 20, true); 916 rb->lcd_bitmap(bitmap_0, 76, 1, 15, 20);
917 if(temphour >= 1) 917 if(temphour >= 1)
918 { 918 {
919 rb->lcd_bitmap(bitmap_1, 95, 1, 15, 20, true); 919 rb->lcd_bitmap(bitmap_1, 95, 1, 15, 20);
920 temphour -= 1; 920 temphour -= 1;
921 } 921 }
922 else 922 else
923 rb->lcd_bitmap(bitmap_0, 95, 1, 15, 20, true); 923 rb->lcd_bitmap(bitmap_0, 95, 1, 15, 20);
924 924
925 /********* 925 /*********
926 * MINUTES 926 * MINUTES
927 ********/ 927 ********/
928 if(tempmin >= 32) 928 if(tempmin >= 32)
929 { 929 {
930 rb->lcd_bitmap(bitmap_1, 0, 21, 15, 20, true); 930 rb->lcd_bitmap(bitmap_1, 0, 21, 15, 20);
931 tempmin -= 32; 931 tempmin -= 32;
932 } 932 }
933 else 933 else
934 rb->lcd_bitmap(bitmap_0, 0, 21, 15, 20, true); 934 rb->lcd_bitmap(bitmap_0, 0, 21, 15, 20);
935 if(tempmin >= 16) 935 if(tempmin >= 16)
936 { 936 {
937 rb->lcd_bitmap(bitmap_1, 19, 21, 15, 20, true); 937 rb->lcd_bitmap(bitmap_1, 19, 21, 15, 20);
938 tempmin -= 16; 938 tempmin -= 16;
939 } 939 }
940 else 940 else
941 rb->lcd_bitmap(bitmap_0, 19, 21, 15, 20, true); 941 rb->lcd_bitmap(bitmap_0, 19, 21, 15, 20);
942 if(tempmin >= 8) 942 if(tempmin >= 8)
943 { 943 {
944 rb->lcd_bitmap(bitmap_1, 38, 21, 15, 20, true); 944 rb->lcd_bitmap(bitmap_1, 38, 21, 15, 20);
945 tempmin -= 8; 945 tempmin -= 8;
946 } 946 }
947 else 947 else
948 rb->lcd_bitmap(bitmap_0, 38, 21, 15, 20, true); 948 rb->lcd_bitmap(bitmap_0, 38, 21, 15, 20);
949 if(tempmin >= 4) 949 if(tempmin >= 4)
950 { 950 {
951 rb->lcd_bitmap(bitmap_1, 57, 21, 15, 20, true); 951 rb->lcd_bitmap(bitmap_1, 57, 21, 15, 20);
952 tempmin -= 4; 952 tempmin -= 4;
953 } 953 }
954 else 954 else
955 rb->lcd_bitmap(bitmap_0, 57, 21, 15, 20, true); 955 rb->lcd_bitmap(bitmap_0, 57, 21, 15, 20);
956 if(tempmin >= 2) 956 if(tempmin >= 2)
957 { 957 {
958 rb->lcd_bitmap(bitmap_1, 76, 21, 15, 20, true); 958 rb->lcd_bitmap(bitmap_1, 76, 21, 15, 20);
959 tempmin -= 2; 959 tempmin -= 2;
960 } 960 }
961 else 961 else
962 rb->lcd_bitmap(bitmap_0, 76, 21, 15, 20, true); 962 rb->lcd_bitmap(bitmap_0, 76, 21, 15, 20);
963 if(tempmin >= 1) 963 if(tempmin >= 1)
964 { 964 {
965 rb->lcd_bitmap(bitmap_1, 95, 21, 15, 20, true); 965 rb->lcd_bitmap(bitmap_1, 95, 21, 15, 20);
966 tempmin -= 1; 966 tempmin -= 1;
967 } 967 }
968 else 968 else
969 rb->lcd_bitmap(bitmap_0, 95, 21, 15, 20, true); 969 rb->lcd_bitmap(bitmap_0, 95, 21, 15, 20);
970 970
971 /********* 971 /*********
972 * SECONDS 972 * SECONDS
973 ********/ 973 ********/
974 if(tempsec >= 32) 974 if(tempsec >= 32)
975 { 975 {
976 rb->lcd_bitmap(bitmap_1, 0, 42, 15, 20, true); 976 rb->lcd_bitmap(bitmap_1, 0, 42, 15, 20);
977 tempsec -= 32; 977 tempsec -= 32;
978 } 978 }
979 else 979 else
980 rb->lcd_bitmap(bitmap_0, 0, 42, 15, 20, true); 980 rb->lcd_bitmap(bitmap_0, 0, 42, 15, 20);
981 if(tempsec >= 16) 981 if(tempsec >= 16)
982 { 982 {
983 rb->lcd_bitmap(bitmap_1, 19, 42, 15, 20, true); 983 rb->lcd_bitmap(bitmap_1, 19, 42, 15, 20);
984 tempsec -= 16; 984 tempsec -= 16;
985 } 985 }
986 else 986 else
987 rb->lcd_bitmap(bitmap_0, 19, 42, 15, 20, true); 987 rb->lcd_bitmap(bitmap_0, 19, 42, 15, 20);
988 if(tempsec >= 8) 988 if(tempsec >= 8)
989 { 989 {
990 rb->lcd_bitmap(bitmap_1, 38, 42, 15, 20, true); 990 rb->lcd_bitmap(bitmap_1, 38, 42, 15, 20);
991 tempsec -= 8; 991 tempsec -= 8;
992 } 992 }
993 else 993 else
994 rb->lcd_bitmap(bitmap_0, 38, 42, 15, 20, true); 994 rb->lcd_bitmap(bitmap_0, 38, 42, 15, 20);
995 if(tempsec >= 4) 995 if(tempsec >= 4)
996 { 996 {
997 rb->lcd_bitmap(bitmap_1, 57, 42, 15, 20, true); 997 rb->lcd_bitmap(bitmap_1, 57, 42, 15, 20);
998 tempsec -= 4; 998 tempsec -= 4;
999 } 999 }
1000 else 1000 else
1001 rb->lcd_bitmap(bitmap_0, 57, 42, 15, 20, true); 1001 rb->lcd_bitmap(bitmap_0, 57, 42, 15, 20);
1002 if(tempsec >= 2) 1002 if(tempsec >= 2)
1003 { 1003 {
1004 rb->lcd_bitmap(bitmap_1, 76, 42, 15, 20, true); 1004 rb->lcd_bitmap(bitmap_1, 76, 42, 15, 20);
1005 tempsec -= 2; 1005 tempsec -= 2;
1006 } 1006 }
1007 else 1007 else
1008 rb->lcd_bitmap(bitmap_0, 76, 42, 15, 20, true); 1008 rb->lcd_bitmap(bitmap_0, 76, 42, 15, 20);
1009 if(tempsec >= 1) 1009 if(tempsec >= 1)
1010 { 1010 {
1011 rb->lcd_bitmap(bitmap_1, 95, 42, 15, 20, true); 1011 rb->lcd_bitmap(bitmap_1, 95, 42, 15, 20);
1012 tempsec -= 1; 1012 tempsec -= 1;
1013 } 1013 }
1014 else 1014 else
1015 rb->lcd_bitmap(bitmap_0, 95, 42, 15, 20, true); 1015 rb->lcd_bitmap(bitmap_0, 95, 42, 15, 20);
1016 1016
1017 rb->lcd_update(); 1017 rb->lcd_update();
1018} 1018}
@@ -1039,7 +1039,7 @@ void show_logo(bool animate, bool show_clock_text)
1039 rb->lcd_drawline(0, y_position/2-1, 111, y_position/2-1); 1039 rb->lcd_drawline(0, y_position/2-1, 111, y_position/2-1);
1040 rb->lcd_drawline(0, y_position/2+38, 111, y_position/2+38); 1040 rb->lcd_drawline(0, y_position/2+38, 111, y_position/2+38);
1041 rb->lcd_set_drawmode(DRMODE_SOLID); 1041 rb->lcd_set_drawmode(DRMODE_SOLID);
1042 rb->lcd_bitmap(clogo, 0, y_position/2, 112, 37, true); 1042 rb->lcd_bitmap(clogo, 0, y_position/2, 112, 37);
1043 if(show_clock_text) 1043 if(show_clock_text)
1044 rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 48, buf); 1044 rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 48, buf);
1045 rb->lcd_update(); 1045 rb->lcd_update();
@@ -1051,7 +1051,7 @@ void show_logo(bool animate, bool show_clock_text)
1051 rb->lcd_drawline(0, y_position/2-1, 111, y_position/2-1); 1051 rb->lcd_drawline(0, y_position/2-1, 111, y_position/2-1);
1052 rb->lcd_drawline(0, y_position/2+38, 111, y_position/2+38); 1052 rb->lcd_drawline(0, y_position/2+38, 111, y_position/2+38);
1053 rb->lcd_set_drawmode(DRMODE_SOLID); 1053 rb->lcd_set_drawmode(DRMODE_SOLID);
1054 rb->lcd_bitmap(clogo, 0, y_position/2, 112, 37, true); 1054 rb->lcd_bitmap(clogo, 0, y_position/2, 112, 37);
1055 if(show_clock_text) 1055 if(show_clock_text)
1056 rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 48, buf); 1056 rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 48, buf);
1057 rb->lcd_update(); 1057 rb->lcd_update();
@@ -1063,7 +1063,7 @@ void show_logo(bool animate, bool show_clock_text)
1063 rb->lcd_drawline(0, y_position/2-1, 111, y_position/2-1); 1063 rb->lcd_drawline(0, y_position/2-1, 111, y_position/2-1);
1064 rb->lcd_drawline(0, y_position/2+38, 111, y_position/2+38); 1064 rb->lcd_drawline(0, y_position/2+38, 111, y_position/2+38);
1065 rb->lcd_set_drawmode(DRMODE_SOLID); 1065 rb->lcd_set_drawmode(DRMODE_SOLID);
1066 rb->lcd_bitmap(clogo, 0, y_position/2, 112, 37, true); 1066 rb->lcd_bitmap(clogo, 0, y_position/2, 112, 37);
1067 if(show_clock_text) 1067 if(show_clock_text)
1068 rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 48, buf); 1068 rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 48, buf);
1069 rb->lcd_update(); 1069 rb->lcd_update();
@@ -1071,7 +1071,7 @@ void show_logo(bool animate, bool show_clock_text)
1071 } 1071 }
1072 else /* don't animate, just show */ 1072 else /* don't animate, just show */
1073 { 1073 {
1074 rb->lcd_bitmap(clogo, 0, 10, 112, 37, true); 1074 rb->lcd_bitmap(clogo, 0, 10, 112, 37);
1075 if(show_clock_text) 1075 if(show_clock_text)
1076 rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 48, buf); 1076 rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 48, buf);
1077 rb->lcd_update(); 1077 rb->lcd_update();
@@ -1094,7 +1094,7 @@ void exit_logo(void)
1094 rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); 1094 rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
1095 rb->lcd_drawline(0, y_position/2-1, 111, y_position/2-1); 1095 rb->lcd_drawline(0, y_position/2-1, 111, y_position/2-1);
1096 rb->lcd_set_drawmode(DRMODE_SOLID); 1096 rb->lcd_set_drawmode(DRMODE_SOLID);
1097 rb->lcd_bitmap(clogo, 0, y_position/2, 112, 37, true); 1097 rb->lcd_bitmap(clogo, 0, y_position/2, 112, 37);
1098 rb->lcd_update(); 1098 rb->lcd_update();
1099 } 1099 }
1100} 1100}
@@ -1511,9 +1511,9 @@ bool f1_screen(void)
1511void draw_checkbox(bool setting, int x, int y) 1511void draw_checkbox(bool setting, int x, int y)
1512{ 1512{
1513 if(setting) /* checkbox is on */ 1513 if(setting) /* checkbox is on */
1514 rb->lcd_bitmap(checkbox_full, x, y, 8, 6, true); 1514 rb->lcd_bitmap(checkbox_full, x, y, 8, 6);
1515 else /* checkbox is off */ 1515 else /* checkbox is off */
1516 rb->lcd_bitmap(checkbox_empty, x, y, 8, 6, true); 1516 rb->lcd_bitmap(checkbox_empty, x, y, 8, 6);
1517} 1517}
1518 1518
1519void draw_settings(void) 1519void draw_settings(void)
@@ -1544,18 +1544,18 @@ void draw_settings(void)
1544 draw_checkbox(settings.analog_digits, 1, 33); 1544 draw_checkbox(settings.analog_digits, 1, 33);
1545 1545
1546 if(settings.analog_date == 0) 1546 if(settings.analog_date == 0)
1547 rb->lcd_bitmap(checkbox_empty, 1, 41, 8, 6, true); 1547 rb->lcd_bitmap(checkbox_empty, 1, 41, 8, 6);
1548 else if(settings.analog_date == 1) 1548 else if(settings.analog_date == 1)
1549 rb->lcd_bitmap(checkbox_half, 1, 41, 8, 6, true); 1549 rb->lcd_bitmap(checkbox_half, 1, 41, 8, 6);
1550 else 1550 else
1551 rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); 1551 rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6);
1552 1552
1553 if(settings.analog_time == 0) 1553 if(settings.analog_time == 0)
1554 rb->lcd_bitmap(checkbox_empty, 1, 49, 8, 6, true); 1554 rb->lcd_bitmap(checkbox_empty, 1, 49, 8, 6);
1555 else if(settings.analog_time == 1) 1555 else if(settings.analog_time == 1)
1556 rb->lcd_bitmap(checkbox_half, 1, 49, 8, 6, true); 1556 rb->lcd_bitmap(checkbox_half, 1, 49, 8, 6);
1557 else 1557 else
1558 rb->lcd_bitmap(checkbox_full, 1, 49, 8, 6, true); 1558 rb->lcd_bitmap(checkbox_full, 1, 49, 8, 6);
1559 1559
1560 draw_checkbox(settings.analog_secondhand, 1, 57); 1560 draw_checkbox(settings.analog_secondhand, 1, 57);
1561 } 1561 }
@@ -1584,20 +1584,20 @@ void draw_settings(void)
1584 1584
1585 /* Draw checkboxes */ 1585 /* Draw checkboxes */
1586 if(settings.digital_date == 0) 1586 if(settings.digital_date == 0)
1587 rb->lcd_bitmap(checkbox_empty, 1, 33, 8, 6, true); 1587 rb->lcd_bitmap(checkbox_empty, 1, 33, 8, 6);
1588 else if(settings.digital_date == 1) 1588 else if(settings.digital_date == 1)
1589 rb->lcd_bitmap(checkbox_half, 1, 33, 8, 6, true); 1589 rb->lcd_bitmap(checkbox_half, 1, 33, 8, 6);
1590 else 1590 else
1591 rb->lcd_bitmap(checkbox_full, 1, 33, 8, 6, true); 1591 rb->lcd_bitmap(checkbox_full, 1, 33, 8, 6);
1592 1592
1593 if(settings.digital_seconds == 0) 1593 if(settings.digital_seconds == 0)
1594 rb->lcd_bitmap(checkbox_empty, 1, 41, 8, 6, true); 1594 rb->lcd_bitmap(checkbox_empty, 1, 41, 8, 6);
1595 else if(settings.digital_seconds == 1) 1595 else if(settings.digital_seconds == 1)
1596 rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6, true); 1596 rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6);
1597 else if(settings.digital_seconds == 2) 1597 else if(settings.digital_seconds == 2)
1598 rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6, true); 1598 rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6);
1599 else 1599 else
1600 rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); 1600 rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6);
1601 1601
1602 draw_checkbox(settings.digital_blinkcolon, 1, 49); 1602 draw_checkbox(settings.digital_blinkcolon, 1, 49);
1603 draw_checkbox(settings.digital_12h, 1, 57); 1603 draw_checkbox(settings.digital_12h, 1, 57);
@@ -1627,20 +1627,20 @@ void draw_settings(void)
1627 1627
1628 /* Draw checkboxes */ 1628 /* Draw checkboxes */
1629 if(settings.lcd_date == 0) 1629 if(settings.lcd_date == 0)
1630 rb->lcd_bitmap(checkbox_empty, 1, 33, 8, 6, true); 1630 rb->lcd_bitmap(checkbox_empty, 1, 33, 8, 6);
1631 else if(settings.lcd_date == 1) 1631 else if(settings.lcd_date == 1)
1632 rb->lcd_bitmap(checkbox_half, 1, 33, 8, 6, true); 1632 rb->lcd_bitmap(checkbox_half, 1, 33, 8, 6);
1633 else 1633 else
1634 rb->lcd_bitmap(checkbox_full, 1, 33, 8, 6, true); 1634 rb->lcd_bitmap(checkbox_full, 1, 33, 8, 6);
1635 1635
1636 if(settings.lcd_seconds == 0) 1636 if(settings.lcd_seconds == 0)
1637 rb->lcd_bitmap(checkbox_empty, 1, 41, 8, 6, true); 1637 rb->lcd_bitmap(checkbox_empty, 1, 41, 8, 6);
1638 else if(settings.lcd_seconds == 1) 1638 else if(settings.lcd_seconds == 1)
1639 rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6, true); 1639 rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6);
1640 else if(settings.lcd_seconds == 2) 1640 else if(settings.lcd_seconds == 2)
1641 rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6, true); 1641 rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6);
1642 else 1642 else
1643 rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); 1643 rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6);
1644 1644
1645 draw_checkbox(settings.lcd_blinkcolon, 1, 49); 1645 draw_checkbox(settings.lcd_blinkcolon, 1, 49);
1646 draw_checkbox(settings.lcd_12h, 1, 57); 1646 draw_checkbox(settings.lcd_12h, 1, 57);
@@ -2131,16 +2131,16 @@ void general_settings(void)
2131 rb->lcd_getstringsize(buf, &buf_w, &buf_h); 2131 rb->lcd_getstringsize(buf, &buf_w, &buf_h);
2132 rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 56, buf); 2132 rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 56, buf);
2133 2133
2134 rb->lcd_bitmap(arrow, 1, 17, 8, 6, true); 2134 rb->lcd_bitmap(arrow, 1, 17, 8, 6);
2135 rb->lcd_bitmap(arrow, 1, 25, 8, 6, true); 2135 rb->lcd_bitmap(arrow, 1, 25, 8, 6);
2136 draw_checkbox(settings.display_counter, 1, 33); 2136 draw_checkbox(settings.display_counter, 1, 33);
2137 2137
2138 if(settings.save_mode == 1) 2138 if(settings.save_mode == 1)
2139 rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6, true); 2139 rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6);
2140 else if(settings.save_mode == 2) 2140 else if(settings.save_mode == 2)
2141 rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6, true); 2141 rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6);
2142 else 2142 else
2143 rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); 2143 rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6);
2144 2144
2145 switch(cursorpos) 2145 switch(cursorpos)
2146 { 2146 {
@@ -2181,15 +2181,15 @@ void general_settings(void)
2181 rb->lcd_puts(2, 5, "Save: Automatic"); 2181 rb->lcd_puts(2, 5, "Save: Automatic");
2182 else 2182 else
2183 rb->lcd_puts(2, 5, "Save: Manually"); 2183 rb->lcd_puts(2, 5, "Save: Manually");
2184 rb->lcd_bitmap(arrow, 1, 17, 8, 6, true); 2184 rb->lcd_bitmap(arrow, 1, 17, 8, 6);
2185 rb->lcd_bitmap(arrow, 1, 25, 8, 6, true); 2185 rb->lcd_bitmap(arrow, 1, 25, 8, 6);
2186 draw_checkbox(settings.display_counter, 1, 33); 2186 draw_checkbox(settings.display_counter, 1, 33);
2187 if(settings.save_mode == 1) 2187 if(settings.save_mode == 1)
2188 rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6, true); 2188 rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6);
2189 else if(settings.save_mode == 2) 2189 else if(settings.save_mode == 2)
2190 rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6, true); 2190 rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6);
2191 else 2191 else
2192 rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); 2192 rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6);
2193 2193
2194 cursor(0, cursor_y, 112, 8); 2194 cursor(0, cursor_y, 112, 8);
2195 rb->lcd_update(); 2195 rb->lcd_update();
@@ -2218,15 +2218,15 @@ void general_settings(void)
2218 rb->lcd_puts(2, 5, "Save: Automatic"); 2218 rb->lcd_puts(2, 5, "Save: Automatic");
2219 else 2219 else
2220 rb->lcd_puts(2, 5, "Save: Manually"); 2220 rb->lcd_puts(2, 5, "Save: Manually");
2221 rb->lcd_bitmap(arrow, 1, 17, 8, 6, true); 2221 rb->lcd_bitmap(arrow, 1, 17, 8, 6);
2222 rb->lcd_bitmap(arrow, 1, 25, 8, 6, true); 2222 rb->lcd_bitmap(arrow, 1, 25, 8, 6);
2223 draw_checkbox(settings.display_counter, 1, 33); 2223 draw_checkbox(settings.display_counter, 1, 33);
2224 if(settings.save_mode == 1) 2224 if(settings.save_mode == 1)
2225 rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6, true); 2225 rb->lcd_bitmap(checkbox_onethird, 1, 41, 8, 6);
2226 else if(settings.save_mode == 2) 2226 else if(settings.save_mode == 2)
2227 rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6, true); 2227 rb->lcd_bitmap(checkbox_twothird, 1, 41, 8, 6);
2228 else 2228 else
2229 rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6, true); 2229 rb->lcd_bitmap(checkbox_full, 1, 41, 8, 6);
2230 2230
2231 cursor(0, cursor_y, 112, 8); 2231 cursor(0, cursor_y, 112, 8);
2232 rb->lcd_update(); 2232 rb->lcd_update();
@@ -2323,9 +2323,9 @@ void draw_extras(int year, int day, int month, int hour, int minute, int second)
2323 if(settings.analog_time == 2) 2323 if(settings.analog_time == 2)
2324 { 2324 {
2325 if(current_time->tm_hour > 12) /* PM */ 2325 if(current_time->tm_hour > 12) /* PM */
2326 rb->lcd_bitmap(pm, 96, 1, 15, 8, true); 2326 rb->lcd_bitmap(pm, 96, 1, 15, 8);
2327 else /* AM */ 2327 else /* AM */
2328 rb->lcd_bitmap(am, 96, 1, 15, 8, true); 2328 rb->lcd_bitmap(am, 96, 1, 15, 8);
2329 } 2329 }
2330 } 2330 }
2331 2331
@@ -2460,11 +2460,11 @@ void select_mode(void)
2460 rb->lcd_puts(0, 7, "PLAY:Go|OFF:Cancel"); 2460 rb->lcd_puts(0, 7, "PLAY:Go|OFF:Cancel");
2461 2461
2462 /* draw an arrow next to all of them */ 2462 /* draw an arrow next to all of them */
2463 rb->lcd_bitmap(arrow, 1, 9, 8, 6, true); 2463 rb->lcd_bitmap(arrow, 1, 9, 8, 6);
2464 rb->lcd_bitmap(arrow, 1, 17, 8, 6, true); 2464 rb->lcd_bitmap(arrow, 1, 17, 8, 6);
2465 rb->lcd_bitmap(arrow, 1, 25, 8, 6, true); 2465 rb->lcd_bitmap(arrow, 1, 25, 8, 6);
2466 rb->lcd_bitmap(arrow, 1, 33, 8, 6, true); 2466 rb->lcd_bitmap(arrow, 1, 33, 8, 6);
2467 rb->lcd_bitmap(arrow, 1, 41, 8, 6, true); 2467 rb->lcd_bitmap(arrow, 1, 41, 8, 6);
2468 2468
2469 /* draw line selector */ 2469 /* draw line selector */
2470 switch(cursorpos) 2470 switch(cursorpos)
@@ -2501,11 +2501,11 @@ void select_mode(void)
2501 rb->lcd_puts(0, 7, "PLAY:Go|OFF:Cancel"); 2501 rb->lcd_puts(0, 7, "PLAY:Go|OFF:Cancel");
2502 2502
2503 /* draw an arrow next to all of them */ 2503 /* draw an arrow next to all of them */
2504 rb->lcd_bitmap(arrow, 1, 9, 8, 6, true); 2504 rb->lcd_bitmap(arrow, 1, 9, 8, 6);
2505 rb->lcd_bitmap(arrow, 1, 17, 8, 6, true); 2505 rb->lcd_bitmap(arrow, 1, 17, 8, 6);
2506 rb->lcd_bitmap(arrow, 1, 25, 8, 6, true); 2506 rb->lcd_bitmap(arrow, 1, 25, 8, 6);
2507 rb->lcd_bitmap(arrow, 1, 33, 8, 6, true); 2507 rb->lcd_bitmap(arrow, 1, 33, 8, 6);
2508 rb->lcd_bitmap(arrow, 1, 41, 8, 6, true); 2508 rb->lcd_bitmap(arrow, 1, 41, 8, 6);
2509 2509
2510 cursor(0, cursor_y, 112, 8); 2510 cursor(0, cursor_y, 112, 8);
2511 rb->lcd_update(); 2511 rb->lcd_update();
@@ -2535,11 +2535,11 @@ void select_mode(void)
2535 rb->lcd_puts(0, 7, "PLAY:Go|OFF:Cancel"); 2535 rb->lcd_puts(0, 7, "PLAY:Go|OFF:Cancel");
2536 2536
2537 /* draw an arrow next to all of them */ 2537 /* draw an arrow next to all of them */
2538 rb->lcd_bitmap(arrow, 1, 9, 8, 6, true); 2538 rb->lcd_bitmap(arrow, 1, 9, 8, 6);
2539 rb->lcd_bitmap(arrow, 1, 17, 8, 6, true); 2539 rb->lcd_bitmap(arrow, 1, 17, 8, 6);
2540 rb->lcd_bitmap(arrow, 1, 25, 8, 6, true); 2540 rb->lcd_bitmap(arrow, 1, 25, 8, 6);
2541 rb->lcd_bitmap(arrow, 1, 33, 8, 6, true); 2541 rb->lcd_bitmap(arrow, 1, 33, 8, 6);
2542 rb->lcd_bitmap(arrow, 1, 41, 8, 6, true); 2542 rb->lcd_bitmap(arrow, 1, 41, 8, 6);
2543 2543
2544 cursor(0, cursor_y, 112, 8); 2544 cursor(0, cursor_y, 112, 8);
2545 rb->lcd_update(); 2545 rb->lcd_update();
@@ -2580,7 +2580,7 @@ void counter_finished(void)
2580 rb->lcd_clear_display(); 2580 rb->lcd_clear_display();
2581 2581
2582 /* draw "TIME'S UP" text */ 2582 /* draw "TIME'S UP" text */
2583 rb->lcd_bitmap(times_up, 0, xpos, 112, 50, true); 2583 rb->lcd_bitmap(times_up, 0, xpos, 112, 50);
2584 2584
2585 /* invert lcd */ 2585 /* invert lcd */
2586 rb->lcd_set_drawmode(DRMODE_COMPLEMENT); 2586 rb->lcd_set_drawmode(DRMODE_COMPLEMENT);
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index 57cbad213d..d6774fc968 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -71,9 +71,9 @@ static unsigned char cursor_pic[32] = {
71/* draw a spot at the coordinates (x,y), range of p is 0-19 */ 71/* draw a spot at the coordinates (x,y), range of p is 0-19 */
72static void draw_spot(int p) { 72static void draw_spot(int p) {
73 ptr = spot_pic[spots[p]]; 73 ptr = spot_pic[spots[p]];
74 rb->lcd_bitmap (ptr, (p%5)*16+1, (p/5)*16+1, 14, 8, true); 74 rb->lcd_bitmap (ptr, (p%5)*16+1, (p/5)*16+1, 14, 8);
75 ptr += 14; 75 ptr += 14;
76 rb->lcd_bitmap (ptr, (p%5)*16+1, (p/5)*16+9, 14, 6, true); 76 rb->lcd_bitmap (ptr, (p%5)*16+1, (p/5)*16+9, 14, 6);
77} 77}
78 78
79/* draw the cursor at the current cursor position */ 79/* draw the cursor at the current cursor position */
@@ -81,10 +81,12 @@ static void draw_cursor(void) {
81 int i,j; 81 int i,j;
82 i = (cursor_pos%5)*16; 82 i = (cursor_pos%5)*16;
83 j = (cursor_pos/5)*16; 83 j = (cursor_pos/5)*16;
84 rb->lcd_set_drawmode(DRMODE_FG);
84 ptr = cursor_pic; 85 ptr = cursor_pic;
85 rb->lcd_bitmap (ptr, i, j, 16, 8, false); 86 rb->lcd_bitmap (ptr, i, j, 16, 8);
86 ptr += 16; 87 ptr += 16;
87 rb->lcd_bitmap (ptr, i, j+8, 16, 8, false); 88 rb->lcd_bitmap (ptr, i, j+8, 16, 8);
89 rb->lcd_set_drawmode(DRMODE_SOLID);
88} 90}
89 91
90/* clear the cursor where it is */ 92/* clear the cursor where it is */
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index 7763fb9737..7807982ebc 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -229,7 +229,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) {
229 while (1) { 229 while (1) {
230#ifdef HAVE_LCD_BITMAP 230#ifdef HAVE_LCD_BITMAP
231 rb->lcd_clear_display(); 231 rb->lcd_clear_display();
232 rb->lcd_bitmap(LOGO, x, y, LOGO_WIDTH, LOGO_HEIGHT, false); 232 rb->lcd_bitmap(LOGO, x, y, LOGO_WIDTH, LOGO_HEIGHT);
233#ifdef REMOTE_LOGO 233#ifdef REMOTE_LOGO
234 rb->remote_clear_display(); 234 rb->remote_clear_display();
235 rb->remote_bitmap(REMOTE_LOGO, 235 rb->remote_bitmap(REMOTE_LOGO,
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index d7e19e9423..18b57c42f2 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -379,7 +379,9 @@ int minesweeper(void)
379 if(minefield[i][j].mine){ 379 if(minefield[i][j].mine){
380 rb->lcd_putsxy(j*8+1,i*8+1,"b"); 380 rb->lcd_putsxy(j*8+1,i*8+1,"b");
381 } else if(minefield[i][j].neighbors){ 381 } else if(minefield[i][j].neighbors){
382 rb->lcd_bitmap(num[minefield[i][j].neighbors],j*8,i*8,8,8,false); 382 rb->lcd_set_drawmode(DRMODE_FG);
383 rb->lcd_bitmap(num[minefield[i][j].neighbors],j*8,i*8,8,8);
384 rb->lcd_set_drawmode(DRMODE_SOLID);
383 } 385 }
384 } else if(minefield[i][j].flag) { 386 } else if(minefield[i][j].flag) {
385 rb->lcd_drawline(j*8+2,i*8+2,j*8+5,i*8+5); 387 rb->lcd_drawline(j*8+2,i*8+2,j*8+5,i*8+5);
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index 83f92b241b..e222995e01 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -148,7 +148,7 @@ static unsigned char picture[20][32] = {
148static void draw_spot(int p, int x, int y) 148static void draw_spot(int p, int x, int y)
149{ 149{
150 if (pic || p==20) { 150 if (pic || p==20) {
151 rb->lcd_bitmap (picture[p-1], x, y, 16, 16, true); 151 rb->lcd_bitmap (picture[p-1], x, y, 16, 16);
152 } else { 152 } else {
153 rb->lcd_drawrect(x, y, 16, 16); 153 rb->lcd_drawrect(x, y, 16, 16);
154 rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); 154 rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index bd9792a23d..fdc317b7ef 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -619,11 +619,13 @@ void draw_apple( void )
619#if LCD_WIDTH >= 160 && LCD_HEIGHT >= 128 619#if LCD_WIDTH >= 160 && LCD_HEIGHT >= 128
620 char pscore[5], counter[4]; 620 char pscore[5], counter[4];
621 621
622 rb->lcd_bitmap(snakebmp,0,0,BMPWIDTH_snakebmp,BMPHEIGHT_snakebmp,false); 622 rb->lcd_set_drawmode(DRMODE_FG);
623 rb->lcd_bitmap(snakebmp,0,0,BMPWIDTH_snakebmp,BMPHEIGHT_snakebmp);
623 rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); 624 rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
624 rb->lcd_fillrect(0,0,BMPWIDTH_snakeupbmp,BMPHEIGHT_snakeupbmp); 625 rb->lcd_fillrect(0,0,BMPWIDTH_snakeupbmp,BMPHEIGHT_snakeupbmp);
626 rb->lcd_set_drawmode(DRMODE_FG);
627 rb->lcd_bitmap(snakeupbmp,0,0,BMPWIDTH_snakeupbmp,BMPHEIGHT_snakeupbmp);
625 rb->lcd_set_drawmode(DRMODE_SOLID); 628 rb->lcd_set_drawmode(DRMODE_SOLID);
626 rb->lcd_bitmap(snakeupbmp,0,0,BMPWIDTH_snakeupbmp,BMPHEIGHT_snakeupbmp,false);
627 629
628 rb->snprintf(counter,sizeof(counter),"%d",applecount); 630 rb->snprintf(counter,sizeof(counter),"%d",applecount);
629 rb->lcd_getstringsize(counter,&strwdt,&strhgt); 631 rb->lcd_getstringsize(counter,&strwdt,&strhgt);
@@ -1295,8 +1297,10 @@ void game_init(void)
1295 1297
1296#if LCD_WIDTH >= 160 && LCD_HEIGHT >= 128 1298#if LCD_WIDTH >= 160 && LCD_HEIGHT >= 128
1297 1299
1298 rb->lcd_bitmap(snakebmp,0,0,BMPWIDTH_snakebmp,BMPWIDTH_snakebmp,false); 1300 rb->lcd_set_drawmode(DRMODE_FG);
1299 1301 rb->lcd_bitmap(snakebmp,0,0,BMPWIDTH_snakebmp,BMPWIDTH_snakebmp);
1302 rb->lcd_set_drawmode(DRMODE_SOLID);
1303
1300 rb->snprintf(plevel,sizeof(plevel),"%d",level); 1304 rb->snprintf(plevel,sizeof(plevel),"%d",level);
1301 rb->lcd_getstringsize(plevel,&strwdt,&strhgt); 1305 rb->lcd_getstringsize(plevel,&strwdt,&strhgt);
1302 rb->lcd_putsxy(42-strwdt/2,25, plevel); 1306 rb->lcd_putsxy(42-strwdt/2,25, plevel);
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index dd97abc4fb..36181e6eae 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -115,7 +115,7 @@ static void snow_move(void)
115 if (particle_exists(i)) 115 if (particle_exists(i))
116#ifdef HAVE_LCD_BITMAP 116#ifdef HAVE_LCD_BITMAP
117 rb->lcd_bitmap(flake,particles[i][0],particles[i][1], 117 rb->lcd_bitmap(flake,particles[i][0],particles[i][1],
118 FLAKE_WIDTH,FLAKE_WIDTH,true); 118 FLAKE_WIDTH,FLAKE_WIDTH);
119#else 119#else
120 pgfx_drawpixel(particles[i][0],particles[i][1]); 120 pgfx_drawpixel(particles[i][0],particles[i][1]);
121#endif 121#endif
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index 9f2fbfa4f2..fca36aad82 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -900,8 +900,8 @@ int solitaire(void){
900 rb->lcd_set_drawmode(DRMODE_SOLID); 900 rb->lcd_set_drawmode(DRMODE_SOLID);
901 /* known card */ 901 /* known card */
902 if(deck[c].known){ 902 if(deck[c].known){
903 rb->lcd_bitmap(numbers[deck[c].num], i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1, j, 8, 8, true); 903 rb->lcd_bitmap(numbers[deck[c].num], i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1, j, 8, 8);
904 rb->lcd_bitmap(colors[deck[c].color], i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+7, j, 8, 8, true); 904 rb->lcd_bitmap(colors[deck[c].color], i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+7, j, 8, 8);
905 } 905 }
906 /* draw top line of the card */ 906 /* draw top line of the card */
907 rb->lcd_drawline(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1,j,i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+CARD_WIDTH-1,j); 907 rb->lcd_drawline(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1,j,i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+CARD_WIDTH-1,j);
@@ -944,9 +944,9 @@ int solitaire(void){
944 } 944 }
945 } 945 }
946 if(c != NOT_A_CARD) { 946 if(c != NOT_A_CARD) {
947 rb->lcd_bitmap(numbers[deck[c].num], LCD_WIDTH2 - CARD_WIDTH+1, i*CARD_HEIGHT, 8, 8, true); 947 rb->lcd_bitmap(numbers[deck[c].num], LCD_WIDTH2 - CARD_WIDTH+1, i*CARD_HEIGHT, 8, 8);
948 } 948 }
949 rb->lcd_bitmap(colors[i], LCD_WIDTH2 - CARD_WIDTH+7, i*CARD_HEIGHT, 8, 8, true); 949 rb->lcd_bitmap(colors[i], LCD_WIDTH2 - CARD_WIDTH+7, i*CARD_HEIGHT, 8, 8);
950 /* draw a selected card */ 950 /* draw a selected card */
951 if(c != NOT_A_CARD) { 951 if(c != NOT_A_CARD) {
952 if(sel_card == c){ 952 if(sel_card == c){
@@ -976,8 +976,8 @@ int solitaire(void){
976 rb->lcd_drawline(LCD_WIDTH2,LCD_HEIGHT-CARD_HEIGHT,LCD_WIDTH2,LCD_HEIGHT-2); 976 rb->lcd_drawline(LCD_WIDTH2,LCD_HEIGHT-CARD_HEIGHT,LCD_WIDTH2,LCD_HEIGHT-2);
977#endif 977#endif
978 if(cur_rem != NOT_A_CARD){ 978 if(cur_rem != NOT_A_CARD){
979 rb->lcd_bitmap(numbers[deck[cur_rem].num], LCD_WIDTH2 - CARD_WIDTH+1, LCD_HEIGHT-CARD_HEIGHT, 8, 8, true); 979 rb->lcd_bitmap(numbers[deck[cur_rem].num], LCD_WIDTH2 - CARD_WIDTH+1, LCD_HEIGHT-CARD_HEIGHT, 8, 8);
980 rb->lcd_bitmap(colors[deck[cur_rem].color], LCD_WIDTH2 - CARD_WIDTH+7, LCD_HEIGHT-CARD_HEIGHT, 8, 8, true); 980 rb->lcd_bitmap(colors[deck[cur_rem].color], LCD_WIDTH2 - CARD_WIDTH+7, LCD_HEIGHT-CARD_HEIGHT, 8, 8);
981 /* draw a selected card */ 981 /* draw a selected card */
982 if(sel_card == cur_rem){ 982 if(sel_card == cur_rem){
983 rb->lcd_drawrect(LCD_WIDTH2 - CARD_WIDTH+1, LCD_HEIGHT-CARD_HEIGHT,CARD_WIDTH-1, CARD_HEIGHT-1); 983 rb->lcd_drawrect(LCD_WIDTH2 - CARD_WIDTH+1, LCD_HEIGHT-CARD_HEIGHT,CARD_WIDTH-1, CARD_HEIGHT-1);
diff --git a/apps/plugins/splitedit.c b/apps/plugins/splitedit.c
index 20a9922a29..e6d8551d63 100644
--- a/apps/plugins/splitedit.c
+++ b/apps/plugins/splitedit.c
@@ -262,18 +262,18 @@ static void update_icons(void)
262 /* The CUT icon */ 262 /* The CUT icon */
263 rb->lcd_bitmap(CUT_BMP, 263 rb->lcd_bitmap(CUT_BMP,
264 LCD_WIDTH / 3 / 2 - BMPWIDTH / 2, LCD_HEIGHT - BMPHEIGHT, 264 LCD_WIDTH / 3 / 2 - BMPWIDTH / 2, LCD_HEIGHT - BMPHEIGHT,
265 BMPWIDTH, BMPHEIGHT, true); 265 BMPWIDTH, BMPHEIGHT);
266 266
267 /* The loop mode icon */ 267 /* The loop mode icon */
268 rb->lcd_bitmap(LOOP_BMP[splitedit_get_loop_mode()], 268 rb->lcd_bitmap(LOOP_BMP[splitedit_get_loop_mode()],
269 LCD_WIDTH/3 + LCD_WIDTH/3 / 2 - BMPWIDTH/2, LCD_HEIGHT - BMPHEIGHT, 269 LCD_WIDTH/3 + LCD_WIDTH/3 / 2 - BMPWIDTH/2, LCD_HEIGHT - BMPHEIGHT,
270 BMPWIDTH, BMPHEIGHT, true); 270 BMPWIDTH, BMPHEIGHT);
271 271
272#if (CONFIG_HWCODEC == MAS3587F) || (CONFIG_HWCODEC == MAS3539F) 272#if (CONFIG_HWCODEC == MAS3587F) || (CONFIG_HWCODEC == MAS3539F)
273 /* The scale icon */ 273 /* The scale icon */
274 rb->lcd_bitmap(SCALE_BMP[rb->peak_meter_get_use_dbfs()], 274 rb->lcd_bitmap(SCALE_BMP[rb->peak_meter_get_use_dbfs()],
275 2 *LCD_WIDTH/3 + LCD_WIDTH/3 / 2 - BMPWIDTH/2, LCD_HEIGHT - BMPHEIGHT, 275 2 *LCD_WIDTH/3 + LCD_WIDTH/3 / 2 - BMPWIDTH/2, LCD_HEIGHT - BMPHEIGHT,
276 BMPWIDTH, BMPHEIGHT, true); 276 BMPWIDTH, BMPHEIGHT);
277#else 277#else
278 { 278 {
279 static int idx; 279 static int idx;
@@ -281,7 +281,7 @@ static void update_icons(void)
281 idx = 1 - idx; 281 idx = 1 - idx;
282 rb->lcd_bitmap(SCALE_BMP[idx], 282 rb->lcd_bitmap(SCALE_BMP[idx],
283 2 *LCD_WIDTH/3 + LCD_WIDTH/3 / 2 - BMPWIDTH/2, LCD_HEIGHT - BMPHEIGHT, 283 2 *LCD_WIDTH/3 + LCD_WIDTH/3 / 2 - BMPWIDTH/2, LCD_HEIGHT - BMPHEIGHT,
284 BMPWIDTH, BMPHEIGHT, true); 284 BMPWIDTH, BMPHEIGHT);
285 } 285 }
286#endif 286#endif
287 287
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index fbaf8aeed6..acf34275be 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -485,10 +485,10 @@ static void star_display_board_info(void)
485 485
486 if (control == STAR_CONTROL_BALL) 486 if (control == STAR_CONTROL_BALL)
487 rb->lcd_bitmap (ball_bmp, 103, label_offset_y + 1, STAR_TILE_SIZE, 487 rb->lcd_bitmap (ball_bmp, 103, label_offset_y + 1, STAR_TILE_SIZE,
488 STAR_TILE_SIZE, true); 488 STAR_TILE_SIZE);
489 else 489 else
490 rb->lcd_bitmap (block_bmp, 103, label_offset_y + 1, STAR_TILE_SIZE, 490 rb->lcd_bitmap (block_bmp, 103, label_offset_y + 1, STAR_TILE_SIZE,
491 STAR_TILE_SIZE, true); 491 STAR_TILE_SIZE);
492 492
493 rb->lcd_update_rect(0, label_offset_y, LCD_WIDTH, char_height); 493 rb->lcd_update_rect(0, label_offset_y, LCD_WIDTH, char_height);
494} 494}
@@ -522,14 +522,14 @@ static int star_load_level(int current_level)
522 rb->lcd_bitmap (wall_bmp, 522 rb->lcd_bitmap (wall_bmp,
523 STAR_OFFSET_X + x * STAR_TILE_SIZE, 523 STAR_OFFSET_X + x * STAR_TILE_SIZE,
524 STAR_OFFSET_Y + y * STAR_TILE_SIZE, 524 STAR_OFFSET_Y + y * STAR_TILE_SIZE,
525 STAR_TILE_SIZE, STAR_TILE_SIZE, false); 525 STAR_TILE_SIZE, STAR_TILE_SIZE);
526 break; 526 break;
527 527
528 case STAR_STAR: 528 case STAR_STAR:
529 rb->lcd_bitmap (star_bmp, 529 rb->lcd_bitmap (star_bmp,
530 STAR_OFFSET_X + x * STAR_TILE_SIZE, 530 STAR_OFFSET_X + x * STAR_TILE_SIZE,
531 STAR_OFFSET_Y + y * STAR_TILE_SIZE, 531 STAR_OFFSET_Y + y * STAR_TILE_SIZE,
532 STAR_TILE_SIZE, STAR_TILE_SIZE, false); 532 STAR_TILE_SIZE, STAR_TILE_SIZE);
533 star_count++; 533 star_count++;
534 break; 534 break;
535 535
@@ -539,7 +539,7 @@ static int star_load_level(int current_level)
539 rb->lcd_bitmap (ball_bmp, 539 rb->lcd_bitmap (ball_bmp,
540 STAR_OFFSET_X + x * STAR_TILE_SIZE, 540 STAR_OFFSET_X + x * STAR_TILE_SIZE,
541 STAR_OFFSET_Y + y * STAR_TILE_SIZE, 541 STAR_OFFSET_Y + y * STAR_TILE_SIZE,
542 STAR_TILE_SIZE, STAR_TILE_SIZE, false); 542 STAR_TILE_SIZE, STAR_TILE_SIZE);
543 break; 543 break;
544 544
545 545
@@ -549,7 +549,7 @@ static int star_load_level(int current_level)
549 rb->lcd_bitmap (block_bmp, 549 rb->lcd_bitmap (block_bmp,
550 STAR_OFFSET_X + x * STAR_TILE_SIZE, 550 STAR_OFFSET_X + x * STAR_TILE_SIZE,
551 STAR_OFFSET_Y + y * STAR_TILE_SIZE, 551 STAR_OFFSET_Y + y * STAR_TILE_SIZE,
552 STAR_TILE_SIZE, STAR_TILE_SIZE, false); 552 STAR_TILE_SIZE, STAR_TILE_SIZE);
553 break; 553 break;
554 } 554 }
555 ptr_tab++; 555 ptr_tab++;
@@ -668,7 +668,7 @@ static int star_run_game(void)
668 ball_bmp, 668 ball_bmp,
669 STAR_OFFSET_X + ball_x * STAR_TILE_SIZE + move_x * i, 669 STAR_OFFSET_X + ball_x * STAR_TILE_SIZE + move_x * i,
670 STAR_OFFSET_Y + ball_y * STAR_TILE_SIZE + move_y * i, 670 STAR_OFFSET_Y + ball_y * STAR_TILE_SIZE + move_y * i,
671 STAR_TILE_SIZE, STAR_TILE_SIZE, true); 671 STAR_TILE_SIZE, STAR_TILE_SIZE);
672 672
673 rb->lcd_update_rect( 673 rb->lcd_update_rect(
674 STAR_OFFSET_X + ball_x * STAR_TILE_SIZE + move_x * i, 674 STAR_OFFSET_X + ball_x * STAR_TILE_SIZE + move_x * i,
@@ -700,7 +700,7 @@ static int star_run_game(void)
700 block_bmp, 700 block_bmp,
701 STAR_OFFSET_X + block_x * STAR_TILE_SIZE + move_x * i, 701 STAR_OFFSET_X + block_x * STAR_TILE_SIZE + move_x * i,
702 STAR_OFFSET_Y + block_y * STAR_TILE_SIZE + move_y * i, 702 STAR_OFFSET_Y + block_y * STAR_TILE_SIZE + move_y * i,
703 STAR_TILE_SIZE, STAR_TILE_SIZE, true); 703 STAR_TILE_SIZE, STAR_TILE_SIZE);
704 704
705 rb->lcd_update_rect( 705 rb->lcd_update_rect(
706 STAR_OFFSET_X + block_x * STAR_TILE_SIZE + move_x * i, 706 STAR_OFFSET_X + block_x * STAR_TILE_SIZE + move_x * i,
@@ -766,7 +766,7 @@ static int star_menu(void)
766 766
767 move_y = 0; 767 move_y = 0;
768 rb->lcd_bitmap(arrow_bmp[anim_arrow[(anim_state & 0x38) >> 3]], 768 rb->lcd_bitmap(arrow_bmp[anim_arrow[(anim_state & 0x38) >> 3]],
769 2, menu_offset_y + menu_y * char_height, 7, 8, true); 769 2, menu_offset_y + menu_y * char_height, 7, 8);
770 rb->lcd_update_rect (2, menu_offset_y + menu_y * 8, 8, 8); 770 rb->lcd_update_rect (2, menu_offset_y + menu_y * 8, 8, 8);
771 rb->sleep(STAR_SLEEP); 771 rb->sleep(STAR_SLEEP);
772 anim_state++; 772 anim_state++;
@@ -840,14 +840,14 @@ static int star_menu(void)
840 { 840 {
841 rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); 841 rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
842 rb->lcd_fillrect (2, 30, 7, 4 * 8); 842 rb->lcd_fillrect (2, 30, 7, 4 * 8);
843 rb->lcd_set_drawmode(DRMODE_SOLID); 843 rb->lcd_set_drawmode(DRMODE_FG);
844 rb->lcd_bitmap(arrow_bmp[anim_arrow[(anim_state & 0x38) >> 3]], 844 rb->lcd_bitmap(arrow_bmp[anim_arrow[(anim_state & 0x38) >> 3]],
845 2, menu_offset_y + menu_y * 8 + move_y * i, 7, 8, 845 2, menu_offset_y + menu_y * 8 + move_y * i, 7, 8);
846 false);
847 rb->lcd_update_rect(2, 30, 8, 4 * 8); 846 rb->lcd_update_rect(2, 30, 8, 4 * 8);
848 anim_state++; 847 anim_state++;
849 rb->sleep(STAR_SLEEP); 848 rb->sleep(STAR_SLEEP);
850 } 849 }
850 rb->lcd_set_drawmode(DRMODE_SOLID);
851 menu_y += move_y; 851 menu_y += move_y;
852 } 852 }
853} 853}
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 1a6f723292..d54f86de06 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -278,47 +278,55 @@ void change_settings(void)
278} 278}
279 279
280void draw_analog_minimeters(void) { 280void draw_analog_minimeters(void) {
281 rb->lcd_bitmap(sound_speaker, 0, 12, 4, 8, true); 281 rb->lcd_bitmap(sound_speaker, 0, 12, 4, 8);
282 rb->lcd_set_drawmode(DRMODE_FG);
282 if(5<left_needle_top_x) 283 if(5<left_needle_top_x)
283 rb->lcd_bitmap(sound_low_level, 5, 12, 2, 8, false); 284 rb->lcd_bitmap(sound_low_level, 5, 12, 2, 8);
284 if(12<left_needle_top_x) 285 if(12<left_needle_top_x)
285 rb->lcd_bitmap(sound_med_level, 7, 12, 2, 8, false); 286 rb->lcd_bitmap(sound_med_level, 7, 12, 2, 8);
286 if(24<left_needle_top_x) 287 if(24<left_needle_top_x)
287 rb->lcd_bitmap(sound_high_level, 9, 12, 2, 8, false); 288 rb->lcd_bitmap(sound_high_level, 9, 12, 2, 8);
288 if(40<left_needle_top_x) 289 if(40<left_needle_top_x)
289 rb->lcd_bitmap(sound_max_level, 12, 12, 3, 8, false); 290 rb->lcd_bitmap(sound_max_level, 12, 12, 3, 8);
290 291
291 rb->lcd_bitmap(sound_speaker, 54, 12, 4, 8, true); 292 rb->lcd_set_drawmode(DRMODE_SOLID);
293 rb->lcd_bitmap(sound_speaker, 54, 12, 4, 8);
294 rb->lcd_set_drawmode(DRMODE_FG);
292 if(5<(right_needle_top_x-56)) 295 if(5<(right_needle_top_x-56))
293 rb->lcd_bitmap(sound_low_level, 59, 12, 2, 8, false); 296 rb->lcd_bitmap(sound_low_level, 59, 12, 2, 8);
294 if(12<(right_needle_top_x-56)) 297 if(12<(right_needle_top_x-56))
295 rb->lcd_bitmap(sound_med_level, 61, 12, 2, 8, false); 298 rb->lcd_bitmap(sound_med_level, 61, 12, 2, 8);
296 if(24<(right_needle_top_x-56)) 299 if(24<(right_needle_top_x-56))
297 rb->lcd_bitmap(sound_high_level, 63, 12, 2, 8, false); 300 rb->lcd_bitmap(sound_high_level, 63, 12, 2, 8);
298 if(40<(right_needle_top_x-56)) 301 if(40<(right_needle_top_x-56))
299 rb->lcd_bitmap(sound_max_level, 66, 12, 3, 8, false); 302 rb->lcd_bitmap(sound_max_level, 66, 12, 3, 8);
303 rb->lcd_set_drawmode(DRMODE_SOLID);
300} 304}
301 305
302void draw_digital_minimeters(void) { 306void draw_digital_minimeters(void) {
303 rb->lcd_bitmap(sound_speaker, 34, 24, 4, 8, true); 307 rb->lcd_bitmap(sound_speaker, 34, 24, 4, 8);
308 rb->lcd_set_drawmode(DRMODE_FG);
304 if(1<num_left_leds) 309 if(1<num_left_leds)
305 rb->lcd_bitmap(sound_low_level, 39, 24, 2, 8, false); 310 rb->lcd_bitmap(sound_low_level, 39, 24, 2, 8);
306 if(2<num_left_leds) 311 if(2<num_left_leds)
307 rb->lcd_bitmap(sound_med_level, 41, 24, 2, 8, false); 312 rb->lcd_bitmap(sound_med_level, 41, 24, 2, 8);
308 if(5<num_left_leds) 313 if(5<num_left_leds)
309 rb->lcd_bitmap(sound_high_level, 43, 24, 2, 8, false); 314 rb->lcd_bitmap(sound_high_level, 43, 24, 2, 8);
310 if(8<num_left_leds) 315 if(8<num_left_leds)
311 rb->lcd_bitmap(sound_max_level, 46, 24, 3, 8, false); 316 rb->lcd_bitmap(sound_max_level, 46, 24, 3, 8);
312 317
313 rb->lcd_bitmap(sound_speaker, 34, 40, 4, 8, true); 318 rb->lcd_set_drawmode(DRMODE_SOLID);
319 rb->lcd_bitmap(sound_speaker, 34, 40, 4, 8);
320 rb->lcd_set_drawmode(DRMODE_FG);
314 if(1<(num_right_leds)) 321 if(1<(num_right_leds))
315 rb->lcd_bitmap(sound_low_level, 39, 40, 2, 8, false); 322 rb->lcd_bitmap(sound_low_level, 39, 40, 2, 8);
316 if(2<(num_right_leds)) 323 if(2<(num_right_leds))
317 rb->lcd_bitmap(sound_med_level, 41, 40, 2, 8, false); 324 rb->lcd_bitmap(sound_med_level, 41, 40, 2, 8);
318 if(5<(num_right_leds)) 325 if(5<(num_right_leds))
319 rb->lcd_bitmap(sound_high_level, 43, 40, 2, 8, false); 326 rb->lcd_bitmap(sound_high_level, 43, 40, 2, 8);
320 if(8<(num_right_leds)) 327 if(8<(num_right_leds))
321 rb->lcd_bitmap(sound_max_level, 46, 40, 3, 8, false); 328 rb->lcd_bitmap(sound_max_level, 46, 40, 3, 8);
329 rb->lcd_set_drawmode(DRMODE_SOLID);
322} 330}
323 331
324void analog_meter(void) { 332void analog_meter(void) {
@@ -350,8 +358,10 @@ void analog_meter(void) {
350 draw_analog_minimeters(); 358 draw_analog_minimeters();
351 359
352 /* Needle covers */ 360 /* Needle covers */
353 rb->lcd_bitmap(needle_cover, 22, 59, 13, 5, false); 361 rb->lcd_set_drawmode(DRMODE_FG);
354 rb->lcd_bitmap(needle_cover, 78, 59, 13, 5, false); 362 rb->lcd_bitmap(needle_cover, 22, 59, 13, 5);
363 rb->lcd_bitmap(needle_cover, 78, 59, 13, 5);
364 rb->lcd_set_drawmode(DRMODE_SOLID);
355 365
356 /* Show Left/Right */ 366 /* Show Left/Right */
357 rb->lcd_putsxy(16, 12, "Left"); 367 rb->lcd_putsxy(16, 12, "Left");
@@ -383,12 +393,15 @@ void digital_meter(void) {
383 last_num_left_leds = num_left_leds; 393 last_num_left_leds = num_left_leds;
384 last_num_right_leds = num_right_leds; 394 last_num_right_leds = num_right_leds;
385 395
396 rb->lcd_set_drawmode(DRMODE_FG);
386 /* LEDS */ 397 /* LEDS */
387 for(i=0; i<num_left_leds; i++) 398 for(i=0; i<num_left_leds; i++)
388 rb->lcd_bitmap(led, i*9+2+i, 14, 9, 5, false); 399 rb->lcd_bitmap(led, i*9+2+i, 14, 9, 5);
389 400
390 for(i=0; i<num_right_leds; i++) 401 for(i=0; i<num_right_leds; i++)
391 rb->lcd_bitmap(led, i*9+2+i, 52, 9, 5, false); 402 rb->lcd_bitmap(led, i*9+2+i, 52, 9, 5);
403
404 rb->lcd_set_drawmode(DRMODE_SOLID);
392 405
393 if(settings.digital_minimeters) 406 if(settings.digital_minimeters)
394 draw_digital_minimeters(); 407 draw_digital_minimeters();
diff --git a/apps/recorder/icons.c b/apps/recorder/icons.c
index a10f2e1699..7a5a7bd8f7 100644
--- a/apps/recorder/icons.c
+++ b/apps/recorder/icons.c
@@ -323,7 +323,7 @@ bool statusbar_icon_volume(int percent)
323 if (volume==0) { 323 if (volume==0) {
324 lcd_bitmap(bitmap_icons_7x8[Icon_Mute], 324 lcd_bitmap(bitmap_icons_7x8[Icon_Mute],
325 ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 - 4, 325 ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 - 4,
326 STATUSBAR_Y_POS, 7, STATUSBAR_HEIGHT, false); 326 STATUSBAR_Y_POS, 7, STATUSBAR_HEIGHT);
327 } 327 }
328 else { 328 else {
329 /* We want to redraw the icon later on */ 329 /* We want to redraw the icon later on */
@@ -371,7 +371,7 @@ bool statusbar_icon_volume(int percent)
371void statusbar_icon_play_state(int state) 371void statusbar_icon_play_state(int state)
372{ 372{
373 lcd_bitmap(bitmap_icons_7x8[state], ICON_PLAY_STATE_X_POS, STATUSBAR_Y_POS, 373 lcd_bitmap(bitmap_icons_7x8[state], ICON_PLAY_STATE_X_POS, STATUSBAR_Y_POS,
374 ICON_PLAY_STATE_WIDTH, STATUSBAR_HEIGHT, false); 374 ICON_PLAY_STATE_WIDTH, STATUSBAR_HEIGHT);
375} 375}
376 376
377/* 377/*
@@ -380,7 +380,7 @@ void statusbar_icon_play_state(int state)
380void statusbar_icon_play_mode(int mode) 380void statusbar_icon_play_mode(int mode)
381{ 381{
382 lcd_bitmap(bitmap_icons_7x8[mode], ICON_PLAY_MODE_X_POS, STATUSBAR_Y_POS, 382 lcd_bitmap(bitmap_icons_7x8[mode], ICON_PLAY_MODE_X_POS, STATUSBAR_Y_POS,
383 ICON_PLAY_MODE_WIDTH, STATUSBAR_HEIGHT, false); 383 ICON_PLAY_MODE_WIDTH, STATUSBAR_HEIGHT);
384} 384}
385 385
386/* 386/*
@@ -389,7 +389,7 @@ void statusbar_icon_play_mode(int mode)
389void statusbar_icon_shuffle(void) 389void statusbar_icon_shuffle(void)
390{ 390{
391 lcd_bitmap(bitmap_icons_7x8[Icon_Shuffle], ICON_SHUFFLE_X_POS, 391 lcd_bitmap(bitmap_icons_7x8[Icon_Shuffle], ICON_SHUFFLE_X_POS,
392 STATUSBAR_Y_POS, ICON_SHUFFLE_WIDTH, STATUSBAR_HEIGHT, false); 392 STATUSBAR_Y_POS, ICON_SHUFFLE_WIDTH, STATUSBAR_HEIGHT);
393} 393}
394 394
395/* 395/*
@@ -398,7 +398,7 @@ void statusbar_icon_shuffle(void)
398void statusbar_icon_lock(void) 398void statusbar_icon_lock(void)
399{ 399{
400 lcd_bitmap(bitmap_icons_5x8[Icon_Lock], LOCK_X_POS, 400 lcd_bitmap(bitmap_icons_5x8[Icon_Lock], LOCK_X_POS,
401 STATUSBAR_Y_POS, 5, 8, false); 401 STATUSBAR_Y_POS, 5, 8);
402} 402}
403 403
404#if CONFIG_LED == LED_VIRTUAL 404#if CONFIG_LED == LED_VIRTUAL
@@ -408,7 +408,7 @@ void statusbar_icon_lock(void)
408void statusbar_led(void) 408void statusbar_led(void)
409{ 409{
410 lcd_bitmap(bitmap_icon_disk, ICON_DISK_X_POS, 410 lcd_bitmap(bitmap_icon_disk, ICON_DISK_X_POS,
411 STATUSBAR_Y_POS, ICON_DISK_WIDTH, STATUSBAR_HEIGHT, false); 411 STATUSBAR_Y_POS, ICON_DISK_WIDTH, STATUSBAR_HEIGHT);
412} 412}
413#endif 413#endif
414 414
diff --git a/apps/recorder/peakmeter.c b/apps/recorder/peakmeter.c
index 779200cb85..3bab002574 100644
--- a/apps/recorder/peakmeter.c
+++ b/apps/recorder/peakmeter.c
@@ -1108,7 +1108,7 @@ void peak_meter_draw_trig(int xpos, int ypos) {
1108 scrollbar(x, ypos + 1, TRIGBAR_WIDTH, TRIG_HEIGHT - 2, 1108 scrollbar(x, ypos + 1, TRIGBAR_WIDTH, TRIG_HEIGHT - 2,
1109 TRIGBAR_WIDTH, 0, 0, HORIZONTAL); 1109 TRIGBAR_WIDTH, 0, 0, HORIZONTAL);
1110 lcd_bitmap(bitmap_icons_7x8[Icon_Stop], xpos, ypos, 1110 lcd_bitmap(bitmap_icons_7x8[Icon_Stop], xpos, ypos,
1111 ICON_PLAY_STATE_WIDTH, STATUSBAR_HEIGHT, false); 1111 ICON_PLAY_STATE_WIDTH, STATUSBAR_HEIGHT);
1112 break; 1112 break;
1113 1113
1114 case TRIG_STEADY: 1114 case TRIG_STEADY:
@@ -1118,7 +1118,7 @@ void peak_meter_draw_trig(int xpos, int ypos) {
1118 scrollbar(x, ypos + 1, TRIGBAR_WIDTH, TRIG_HEIGHT - 2, 1118 scrollbar(x, ypos + 1, TRIGBAR_WIDTH, TRIG_HEIGHT - 2,
1119 TRIGBAR_WIDTH, 0, TRIGBAR_WIDTH - time_left, HORIZONTAL); 1119 TRIGBAR_WIDTH, 0, TRIGBAR_WIDTH - time_left, HORIZONTAL);
1120 lcd_bitmap(bitmap_icons_7x8[Icon_Stop], xpos, ypos, 1120 lcd_bitmap(bitmap_icons_7x8[Icon_Stop], xpos, ypos,
1121 ICON_PLAY_STATE_WIDTH, STATUSBAR_HEIGHT, false); 1121 ICON_PLAY_STATE_WIDTH, STATUSBAR_HEIGHT);
1122 break; 1122 break;
1123 1123
1124 case TRIG_GO: 1124 case TRIG_GO:
@@ -1127,7 +1127,7 @@ void peak_meter_draw_trig(int xpos, int ypos) {
1127 TRIGBAR_WIDTH, TRIGBAR_WIDTH, TRIGBAR_WIDTH, HORIZONTAL); 1127 TRIGBAR_WIDTH, TRIGBAR_WIDTH, TRIGBAR_WIDTH, HORIZONTAL);
1128 lcd_bitmap(bitmap_icons_7x8[Icon_Record], 1128 lcd_bitmap(bitmap_icons_7x8[Icon_Record],
1129 TRIG_WIDTH - ICON_PLAY_STATE_WIDTH, ypos, 1129 TRIG_WIDTH - ICON_PLAY_STATE_WIDTH, ypos,
1130 ICON_PLAY_STATE_WIDTH, STATUSBAR_HEIGHT, false); 1130 ICON_PLAY_STATE_WIDTH, STATUSBAR_HEIGHT);
1131 break; 1131 break;
1132 1132
1133 case TRIG_POSTREC: 1133 case TRIG_POSTREC:
@@ -1137,7 +1137,7 @@ void peak_meter_draw_trig(int xpos, int ypos) {
1137 TRIGBAR_WIDTH, time_left, TRIGBAR_WIDTH, HORIZONTAL); 1137 TRIGBAR_WIDTH, time_left, TRIGBAR_WIDTH, HORIZONTAL);
1138 lcd_bitmap(bitmap_icons_7x8[Icon_Record], 1138 lcd_bitmap(bitmap_icons_7x8[Icon_Record],
1139 TRIG_WIDTH - ICON_PLAY_STATE_WIDTH, ypos, 1139 TRIG_WIDTH - ICON_PLAY_STATE_WIDTH, ypos,
1140 ICON_PLAY_STATE_WIDTH, STATUSBAR_HEIGHT, false); 1140 ICON_PLAY_STATE_WIDTH, STATUSBAR_HEIGHT);
1141 break; 1141 break;
1142 } 1142 }
1143 1143
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c
index 84c90d2d86..9e58cec19e 100644
--- a/apps/recorder/recording.c
+++ b/apps/recorder/recording.c
@@ -870,7 +870,7 @@ bool f2_rec_screen(void)
870 snprintf(buf, 32, "%d", global_settings.rec_quality); 870 snprintf(buf, 32, "%d", global_settings.rec_quality);
871 lcd_putsxy(0, LCD_HEIGHT/2-h, buf); 871 lcd_putsxy(0, LCD_HEIGHT/2-h, buf);
872 lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward], 872 lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward],
873 LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); 873 LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8);
874 874
875 /* Frequency */ 875 /* Frequency */
876 snprintf(buf, sizeof buf, "%s:", str(LANG_RECORDING_FREQUENCY)); 876 snprintf(buf, sizeof buf, "%s:", str(LANG_RECORDING_FREQUENCY));
@@ -880,7 +880,7 @@ bool f2_rec_screen(void)
880 lcd_getstringsize(ptr, &w, &h); 880 lcd_getstringsize(ptr, &w, &h);
881 lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, ptr); 881 lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, ptr);
882 lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow], 882 lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow],
883 LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true); 883 LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8);
884 884
885 /* Channel mode */ 885 /* Channel mode */
886 switch ( global_settings.rec_channels ) { 886 switch ( global_settings.rec_channels ) {
@@ -901,7 +901,7 @@ bool f2_rec_screen(void)
901 lcd_getstringsize(ptr, &w, &h); 901 lcd_getstringsize(ptr, &w, &h);
902 lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2, ptr); 902 lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2, ptr);
903 lcd_bitmap(bitmap_icons_7x8[Icon_FastForward], 903 lcd_bitmap(bitmap_icons_7x8[Icon_FastForward],
904 LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true); 904 LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8);
905 905
906 lcd_update(); 906 lcd_update();
907 907
@@ -995,14 +995,14 @@ bool f3_rec_screen(void)
995 lcd_getstringsize(ptr, &w, &h); 995 lcd_getstringsize(ptr, &w, &h);
996 lcd_putsxy(0, LCD_HEIGHT/2-h, ptr); 996 lcd_putsxy(0, LCD_HEIGHT/2-h, ptr);
997 lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward], 997 lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward],
998 LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); 998 LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8);
999 999
1000 /* trigger setup */ 1000 /* trigger setup */
1001 ptr = str(LANG_RECORD_TRIGGER); 1001 ptr = str(LANG_RECORD_TRIGGER);
1002 lcd_getstringsize(ptr,&w,&h); 1002 lcd_getstringsize(ptr,&w,&h);
1003 lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h*2, ptr); 1003 lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h*2, ptr);
1004 lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow], 1004 lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow],
1005 LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true); 1005 LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8);
1006 1006
1007 lcd_update(); 1007 lcd_update();
1008 1008
diff --git a/apps/screens.c b/apps/screens.c
index 6849384cda..04a32813d1 100644
--- a/apps/screens.c
+++ b/apps/screens.c
@@ -94,7 +94,9 @@ void usb_display_info(void)
94 94
95#ifdef HAVE_LCD_BITMAP 95#ifdef HAVE_LCD_BITMAP
96 /* Center bitmap on screen */ 96 /* Center bitmap on screen */
97 lcd_bitmap(usb_logo, LCD_WIDTH/2-BMPWIDTH_usb_logo/2, LCD_HEIGHT/2-BMPHEIGHT_usb_logo/2, BMPWIDTH_usb_logo, BMPHEIGHT_usb_logo, false); 97 lcd_bitmap(usb_logo, LCD_WIDTH/2-BMPWIDTH_usb_logo/2,
98 LCD_HEIGHT/2-BMPHEIGHT_usb_logo/2, BMPWIDTH_usb_logo,
99 BMPHEIGHT_usb_logo);
98 status_draw(true); 100 status_draw(true);
99 lcd_update(); 101 lcd_update();
100#else 102#else
@@ -231,14 +233,16 @@ void charging_display_info(bool animate)
231 if (!animate) 233 if (!animate)
232 { /* draw the outline */ 234 { /* draw the outline */
233 /* middle part */ 235 /* middle part */
234 lcd_bitmap(charging_logo, pox_x, pox_y + 8, sizeof(charging_logo), 8, true); 236 lcd_bitmap(charging_logo, pox_x, pox_y + 8, sizeof(charging_logo), 8);
237 lcd_set_drawmode(DRMODE_FG);
235 /* upper line */ 238 /* upper line */
236 charging_logo[0] = charging_logo[1] = 0x00; 239 charging_logo[0] = charging_logo[1] = 0x00;
237 memset(charging_logo+2, 0x80, 34); 240 memset(charging_logo+2, 0x80, 34);
238 lcd_bitmap(charging_logo, pox_x, pox_y, sizeof(charging_logo), 8, false); 241 lcd_bitmap(charging_logo, pox_x, pox_y, sizeof(charging_logo), 8);
239 /* lower line */ 242 /* lower line */
240 memset(charging_logo+2, 0x01, 34); 243 memset(charging_logo+2, 0x01, 34);
241 lcd_bitmap(charging_logo, pox_x, pox_y + 16, sizeof(charging_logo), 8, false); 244 lcd_bitmap(charging_logo, pox_x, pox_y + 16, sizeof(charging_logo), 8);
245 lcd_set_drawmode(DRMODE_SOLID);
242 } 246 }
243 else 247 else
244 { /* animate the middle part */ 248 { /* animate the middle part */
@@ -253,7 +257,7 @@ void charging_display_info(bool animate)
253 charging_logo[i] = 0x01 << bitpos; 257 charging_logo[i] = 0x01 << bitpos;
254 } 258 }
255 } 259 }
256 lcd_bitmap(charging_logo, pox_x, pox_y + 8, sizeof(charging_logo), 8, true); 260 lcd_bitmap(charging_logo, pox_x, pox_y + 8, sizeof(charging_logo), 8);
257 phase++; 261 phase++;
258 } 262 }
259 lcd_update(); 263 lcd_update();
@@ -411,7 +415,7 @@ int pitch_screen(void)
411 lcd_getstringsize(ptr,&w,&h); 415 lcd_getstringsize(ptr,&w,&h);
412 lcd_putsxy((LCD_WIDTH-w)/2, 0, ptr); 416 lcd_putsxy((LCD_WIDTH-w)/2, 0, ptr);
413 lcd_bitmap(bitmap_icons_7x8[Icon_UpArrow], 417 lcd_bitmap(bitmap_icons_7x8[Icon_UpArrow],
414 LCD_WIDTH/2 - 3, h*2, 7, 8, true); 418 LCD_WIDTH/2 - 3, h*2, 7, 8);
415 419
416 snprintf(buf, sizeof buf, "%d.%d%%", pitch / 10, pitch % 10 ); 420 snprintf(buf, sizeof buf, "%d.%d%%", pitch / 10, pitch % 10 );
417 lcd_getstringsize(buf,&w,&h); 421 lcd_getstringsize(buf,&w,&h);
@@ -421,13 +425,13 @@ int pitch_screen(void)
421 lcd_getstringsize(ptr,&w,&h); 425 lcd_getstringsize(ptr,&w,&h);
422 lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, ptr); 426 lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, ptr);
423 lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow], 427 lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow],
424 LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true); 428 LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8);
425 429
426 ptr = str(LANG_PAUSE); 430 ptr = str(LANG_PAUSE);
427 lcd_getstringsize(ptr,&w,&h); 431 lcd_getstringsize(ptr,&w,&h);
428 lcd_putsxy((LCD_WIDTH-(w/2))/2, LCD_HEIGHT/2 - h/2, ptr); 432 lcd_putsxy((LCD_WIDTH-(w/2))/2, LCD_HEIGHT/2 - h/2, ptr);
429 lcd_bitmap(bitmap_icons_7x8[Icon_Pause], 433 lcd_bitmap(bitmap_icons_7x8[Icon_Pause],
430 (LCD_WIDTH-(w/2))/2-10, LCD_HEIGHT/2 - h/2, 7, 8, true); 434 (LCD_WIDTH-(w/2))/2-10, LCD_HEIGHT/2 - h/2, 7, 8);
431 435
432 lcd_update(); 436 lcd_update();
433 } 437 }
@@ -632,11 +636,11 @@ bool quick_screen(int context, int button)
632 } 636 }
633 637
634 lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward], 638 lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward],
635 LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); 639 LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8);
636 lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow], 640 lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow],
637 LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true); 641 LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8);
638 lcd_bitmap(bitmap_icons_7x8[Icon_FastForward], 642 lcd_bitmap(bitmap_icons_7x8[Icon_FastForward],
639 LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true); 643 LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8);
640 644
641 lcd_update(); 645 lcd_update();
642 key = button_get(true); 646 key = button_get(true);
diff --git a/apps/status.c b/apps/status.c
index 535337e8c1..03a69dd210 100644
--- a/apps/status.c
+++ b/apps/status.c
@@ -245,11 +245,11 @@ void status_draw(bool force_redraw)
245 /* draw power plug if charging */ 245 /* draw power plug if charging */
246 if (info.inserted) 246 if (info.inserted)
247 lcd_bitmap(bitmap_icons_7x8[Icon_Plug], ICON_PLUG_X_POS, 247 lcd_bitmap(bitmap_icons_7x8[Icon_Plug], ICON_PLUG_X_POS,
248 STATUSBAR_Y_POS, ICON_PLUG_WIDTH, STATUSBAR_HEIGHT, false); 248 STATUSBAR_Y_POS, ICON_PLUG_WIDTH, STATUSBAR_HEIGHT);
249#ifdef HAVE_USB_POWER 249#ifdef HAVE_USB_POWER
250 else if (info.usb_power) 250 else if (info.usb_power)
251 lcd_bitmap(bitmap_icons_7x8[Icon_USBPlug], ICON_PLUG_X_POS, 251 lcd_bitmap(bitmap_icons_7x8[Icon_USBPlug], ICON_PLUG_X_POS,
252 STATUSBAR_Y_POS, ICON_PLUG_WIDTH, STATUSBAR_HEIGHT, false); 252 STATUSBAR_Y_POS, ICON_PLUG_WIDTH, STATUSBAR_HEIGHT);
253#endif 253#endif
254 254
255 info.redraw_volume = statusbar_icon_volume(info.volume); 255 info.redraw_volume = statusbar_icon_volume(info.volume);
diff --git a/apps/tree.c b/apps/tree.c
index 66a163ab8e..6d25203eac 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -395,8 +395,7 @@ static int showdir(void)
395 offset = (line_height - 8) / 2; 395 offset = (line_height - 8) / 2;
396 lcd_bitmap(icon, 396 lcd_bitmap(icon,
397 CURSOR_X * 6 + CURSOR_WIDTH, 397 CURSOR_X * 6 + CURSOR_WIDTH,
398 MARGIN_Y+(i-start)*line_height + offset, 398 MARGIN_Y+(i-start)*line_height + offset, 6, 8);
399 6, 8, true);
400#else 399#else
401 if (icon < 0 ) 400 if (icon < 0 )
402 icon = Unknown; 401 icon = Unknown;
diff --git a/apps/wps-display.c b/apps/wps-display.c
index 1b7b76547a..841196f46a 100644
--- a/apps/wps-display.c
+++ b/apps/wps-display.c
@@ -112,11 +112,13 @@ static bool wps_loaded = false;
112/* Display images */ 112/* Display images */
113static void wps_display_images(void) { 113static void wps_display_images(void) {
114 int n; 114 int n;
115 lcd_set_drawmode(DRMODE_FG);
115 for (n = 0; n < MAX_IMAGES; n++) { 116 for (n = 0; n < MAX_IMAGES; n++) {
116 if (img[n].loaded) { 117 if (img[n].loaded) {
117 lcd_bitmap(img[n].ptr, img[n].x, img[n].y, img[n].w, img[n].h, false); 118 lcd_bitmap(img[n].ptr, img[n].x, img[n].y, img[n].w, img[n].h);
118 } 119 }
119 } 120 }
121 lcd_set_drawmode(DRMODE_SOLID);
120} 122}
121#endif 123#endif
122 124