diff --git a/apps/credits.c b/apps/credits.c index f8b060f31c..5743f2e7a5 100644 --- a/apps/credits.c +++ b/apps/credits.c @@ -113,28 +113,28 @@ void roll_credits(void) int height; int width; - lcd_getfontsize(FONT_UI, &width, &height); + lcd_getstringsize("A", &width, &height); while(1) { - lcd_clear_display(); - for ( i=0; i <= (64-y)/height; i++ ) - lcd_putsxy(0, i*height+y, line+i= numnames) - break; - y+=height; - } + if(y<0) { + line++; + if(line >= numnames) + break; + y+=height; + } } return; diff --git a/apps/main_menu.c b/apps/main_menu.c index 199dca66e7..aa87ed39a3 100644 --- a/apps/main_menu.c +++ b/apps/main_menu.c @@ -88,20 +88,20 @@ int show_logo( void ) debugf("read_bmp_file() returned %d, width %d height %d\n", failure, width, height); - - for(i=0, eline=0; i < height; i+=8, eline++) { - /* the bitmap function doesn't work with full-height bitmaps - so we "stripe" the logo output */ - lcd_bitmap(&buffer[eline*width], 0, 10+i, width, - (height-i)>8?8:height-i, false); - } + + for(i=0, eline=0; i < height; i+=8, eline++) { + /* the bitmap function doesn't work with full-height bitmaps + so we "stripe" the logo output */ + lcd_bitmap(&buffer[eline*width], 0, 10+i, width, + (height-i)>8?8:height-i, false); } #endif snprintf(version, sizeof(version), "Ver. %s", appsversion); - lcd_getfontsize(FONT_SYSFIXED, &font_w, &font_h); + lcd_setfont(FONT_SYSFIXED); + lcd_getstringsize("A", &font_w, &font_h); lcd_putsxy((LCD_WIDTH/2) - ((strlen(version)*font_w)/2), - LCD_HEIGHT-font_h, version, FONT_SYSFIXED); + LCD_HEIGHT-font_h, version); lcd_update(); #else diff --git a/apps/menu.c b/apps/menu.c index ac5c857a70..96b0bfdf02 100644 --- a/apps/menu.c +++ b/apps/menu.c @@ -29,11 +29,11 @@ #include "panic.h" #include "settings.h" #include "status.h" +#include "screens.h" #ifdef HAVE_LCD_BITMAP #include "icons.h" #include "widgets.h" -#include "screens.h" #endif struct menu { @@ -95,7 +95,7 @@ void put_cursorxy(int x, int y, bool on) #ifdef HAVE_LCD_BITMAP int fh, fw; int xpos, ypos; - lcd_getfontsize(FONT_UI, &fw, &fh); + lcd_getstringsize("A", &fw, &fh); xpos = x*6; ypos = y*fh + lcd_getymargin(); if ( fh > 8 ) @@ -134,7 +134,8 @@ static void menu_draw(int m) #ifdef HAVE_LCD_BITMAP int fw, fh; int menu_lines; - lcd_getfontsize(FONT_UI, &fw, &fh); + lcd_setfont(FONT_UI); + lcd_getstringsize("A", &fw, &fh); if (global_settings.statusbar) menu_lines = (LCD_HEIGHT - STATUSBAR_HEIGHT) / fh; else @@ -147,7 +148,6 @@ static void menu_draw(int m) lcd_clear_display(); /* ...then clean the screen */ #ifdef HAVE_LCD_BITMAP lcd_setmargins(MARGIN_X,MARGIN_Y); /* leave room for cursor and icon */ - lcd_setfont(FONT_UI); #endif /* correct cursor pos if out of screen */ if (menus[m].cursor - menus[m].top >= menu_lines) @@ -184,7 +184,7 @@ static void put_cursor(int m, int target) #ifdef HAVE_LCD_BITMAP int fw, fh; int menu_lines; - lcd_getfontsize(FONT_UI, &fw, &fh); + lcd_getstringsize("A", &fw, &fh); if (global_settings.statusbar) menu_lines = (LCD_HEIGHT - STATUSBAR_HEIGHT) / fh; else diff --git a/apps/recorder/bounce.c b/apps/recorder/bounce.c index fc11aefe68..cfb194e7ec 100644 --- a/apps/recorder/bounce.c +++ b/apps/recorder/bounce.c @@ -224,7 +224,7 @@ static void loopit(void) } snprintf(buffer, 30, "%s: %d", values[show].what, values[show].num); - lcd_putsxy(0, 56, buffer, 0); + lcd_putsxy(0, 56, buffer); timeout--; } for(i=0, yy=y, xx=x; @@ -241,13 +241,13 @@ static void loopit(void) } -Menu bounce(void) +bool bounce(void) { int w, h; char *off = "[Off] to stop"; int len = strlen(SS_TITLE); - lcd_getfontsize(SS_TITLE_FONT, &w, &h); + lcd_getstringsize(SS_TITLE,&w, &h); /* Get horizontel centering for text */ len *= w; @@ -262,10 +262,10 @@ Menu bounce(void) h /= 2; lcd_clear_display(); - lcd_putsxy(LCD_WIDTH/2-len, (LCD_HEIGHT/2)-h, SS_TITLE, SS_TITLE_FONT); + lcd_putsxy(LCD_WIDTH/2-len, (LCD_HEIGHT/2)-h, SS_TITLE); - len = strlen(off); - lcd_getfontsize(0, &w, &h); + len = 1; + lcd_getstringsize(off, &w, &h); /* Get horizontel centering for text */ len *= w; @@ -279,13 +279,13 @@ Menu bounce(void) else h /= 2; - lcd_putsxy(LCD_WIDTH/2-len, LCD_HEIGHT-(2*h), off,0); + lcd_putsxy(LCD_WIDTH/2-len, LCD_HEIGHT-(2*h), off); lcd_update(); sleep(HZ); loopit(); - return MENU_OK; + return false; } #endif diff --git a/apps/recorder/icons.c b/apps/recorder/icons.c index 76169fe0ee..6414a17418 100644 --- a/apps/recorder/icons.c +++ b/apps/recorder/icons.c @@ -235,10 +235,12 @@ void statusbar_icon_volume(int percent) /* display volume lever numerical? */ if (TIME_BEFORE(current_tick,switch_tick)) { snprintf(buffer, sizeof(buffer), "%2d", percent); - lcd_getstringsize(buffer, FONT_SYSFIXED, &width, &height); + lcd_setfont(FONT_SYSFIXED); + lcd_getstringsize(buffer, &width, &height); if (height <= STATUSBAR_HEIGHT) lcd_putsxy(ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 - - width/2, STATUSBAR_Y_POS, buffer, FONT_SYSFIXED); + width/2, STATUSBAR_Y_POS, buffer); + lcd_setfont(FONT_UI); } else { /* display volume bar */ volume = volume * 14 / 100; @@ -246,7 +248,8 @@ void statusbar_icon_volume(int percent) if(i%2 == 0) step++; for(j=1; j <= step; j++) - lcd_drawpixel(ICON_VOLUME_X_POS + i, STATUSBAR_Y_POS + 7 - j); + lcd_drawpixel(ICON_VOLUME_X_POS + i, + STATUSBAR_Y_POS + 7 - j); } } } @@ -307,8 +310,10 @@ void statusbar_time(int hour, int minute) strncpy(buffer, "--:--", sizeof buffer); } - lcd_getstringsize(buffer, FONT_SYSFIXED, &width, &height); + lcd_setfont(FONT_SYSFIXED); + lcd_getstringsize(buffer, &width, &height); if (height <= STATUSBAR_HEIGHT) - lcd_putsxy(TIME_X_END - width, STATUSBAR_Y_POS, buffer, FONT_SYSFIXED); + lcd_putsxy(TIME_X_END - width, STATUSBAR_Y_POS, buffer); + lcd_setfont(FONT_UI); } #endif diff --git a/apps/recorder/oscillograph.c b/apps/recorder/oscillograph.c index c3b76c4626..25ae10f01b 100644 --- a/apps/recorder/oscillograph.c +++ b/apps/recorder/oscillograph.c @@ -45,7 +45,7 @@ static int drawMode = DRAW_MODE_FILLED; * hardware scrolling of the display. The user can change * speed */ -Menu oscillograph(void) +bool oscillograph(void) { /* stores current volume value left */ int left; @@ -184,7 +184,7 @@ Menu oscillograph(void) if (draw) { char buf[16]; snprintf(buf, sizeof buf, "Speed: %d", -speed); - lcd_putsxy(0, (y + LCD_HEIGHT - 8) % LCD_HEIGHT, buf, 0); + lcd_putsxy(0, (y + LCD_HEIGHT - 8) % LCD_HEIGHT, buf); lcd_update_rect(0, (y + LCD_HEIGHT - 8) % LCD_HEIGHT, LCD_WIDTH, 8); } @@ -197,5 +197,5 @@ Menu oscillograph(void) lcd_update(); /* standard return */ - return MENU_OK; + return false; } diff --git a/apps/recorder/sokoban.c b/apps/recorder/sokoban.c index 3e5d447ae9..68961f775d 100644 --- a/apps/recorder/sokoban.c +++ b/apps/recorder/sokoban.c @@ -1846,14 +1846,14 @@ static void update_screen(void) { snprintf (s, sizeof(s), "%d", current_level+1); - lcd_putsxy (86, 22, s, 0); + lcd_putsxy (86, 22, s); snprintf (s, sizeof(s), "%d", moves); - lcd_putsxy (86, 54, s, 0); + lcd_putsxy (86, 54, s); lcd_drawrect (80,0,32,32); lcd_drawrect (80,32,32,64); - lcd_putsxy (81, 10, str(LANG_SOKOBAN_LEVEL), 0); - lcd_putsxy (81, 42, str(LANG_SOKOBAN_MOVE), 0); + lcd_putsxy (81, 10, str(LANG_SOKOBAN_LEVEL)); + lcd_putsxy (81, 42, str(LANG_SOKOBAN_MOVE)); /* print out the screen */ lcd_update(); } @@ -2197,7 +2197,7 @@ static bool sokoban_loop(void) if (current_level == NUM_LEVELS) { for(ii=0; ii<30 ; ii++) { lcd_clear_display(); - lcd_putsxy(10, 20, str(LANG_SOKOBAN_WIN), 2); + lcd_putsxy(10, 20, str(LANG_SOKOBAN_WIN)); lcd_update(); lcd_invertrect(0,0,111,63); lcd_update(); @@ -2220,12 +2220,12 @@ bool sokoban(void) { bool result; int w, h; - int len = strlen(SOKOBAN_TITLE); + int len; - lcd_getfontsize(SOKOBAN_TITLE_FONT, &w, &h); + lcd_getstringsize(SOKOBAN_TITLE, &w, &h); /* Get horizontel centering for text */ - len *= w; + len = w; if (len%2 != 0) len = ((len+1)/2)+(w/2); else @@ -2237,18 +2237,17 @@ bool sokoban(void) h /= 2; lcd_clear_display(); - lcd_putsxy(LCD_WIDTH/2-len, (LCD_HEIGHT/2)-h, SOKOBAN_TITLE, - SOKOBAN_TITLE_FONT); + lcd_putsxy(LCD_WIDTH/2-len, (LCD_HEIGHT/2)-h, SOKOBAN_TITLE); lcd_update(); sleep(HZ*2); lcd_clear_display(); - lcd_putsxy( 3,12, str(LANG_SOKOBAN_QUIT), 0); - lcd_putsxy( 3,22, str(LANG_SOKOBAN_F1),0); - lcd_putsxy( 3,32, str(LANG_SOKOBAN_F2),0); - lcd_putsxy( 3,42, str(LANG_SOKOBAN_F3),0); + lcd_putsxy( 3,12, str(LANG_SOKOBAN_QUIT)); + lcd_putsxy( 3,22, str(LANG_SOKOBAN_F1)); + lcd_putsxy( 3,32, str(LANG_SOKOBAN_F2)); + lcd_putsxy( 3,42, str(LANG_SOKOBAN_F3)); lcd_update(); sleep(HZ*2); diff --git a/apps/recorder/tetris.c b/apps/recorder/tetris.c index 5264b8e789..53012fd717 100644 --- a/apps/recorder/tetris.c +++ b/apps/recorder/tetris.c @@ -319,7 +319,7 @@ static void move_down(void) } snprintf (s, sizeof(s), "%d Rows - Level %d", lines, level); - lcd_putsxy (2, 42, s, 0); + lcd_putsxy (2, 42, s); new_block(); move_block(0,0,0); @@ -371,7 +371,7 @@ static bool game_loop(void) if(gameover()) { lcd_clearrect(0, 52, LCD_WIDTH, LCD_HEIGHT - 52); - lcd_putsxy (2, 52, str(LANG_TETRIS_LOSE), 0); + lcd_putsxy (2, 52, str(LANG_TETRIS_LOSE)); lcd_update(); sleep(HZ * 3); return false; @@ -403,7 +403,7 @@ bool tetris(void) init_tetris(); draw_frame(start_x, start_x + max_x - 1, start_y - 1, start_y + max_y); - lcd_putsxy (2, 42, str(LANG_TETRIS_LEVEL), 0); + lcd_putsxy (2, 42, str(LANG_TETRIS_LEVEL)); lcd_update(); next_b = t_rand(blocks); diff --git a/apps/recorder/wormlet.c b/apps/recorder/wormlet.c index 0edd550966..5fb48aa48e 100644 --- a/apps/recorder/wormlet.c +++ b/apps/recorder/wormlet.c @@ -1213,8 +1213,8 @@ static void score_board(void) snprintf(buf2, sizeof(buf2), str(LANG_WORMLET_CRASHED)); break; } - lcd_putsxy(FIELD_RECT_WIDTH + 3, y , buf, 0); - lcd_putsxy(FIELD_RECT_WIDTH + 3, y+8, buf2, 0); + lcd_putsxy(FIELD_RECT_WIDTH + 3, y , buf); + lcd_putsxy(FIELD_RECT_WIDTH + 3, y+8, buf2); if (!worms[i].alive){ lcd_invertrect(FIELD_RECT_WIDTH + 2, y, @@ -1224,9 +1224,9 @@ static void score_board(void) } snprintf(buf , sizeof(buf), str(LANG_WORMLET_HIGHSCORE), highscore); #ifndef DEBUG_WORMLET - lcd_putsxy(FIELD_RECT_WIDTH + 3, LCD_HEIGHT - 8, buf, 0); + lcd_putsxy(FIELD_RECT_WIDTH + 3, LCD_HEIGHT - 8, buf); #else - lcd_putsxy(FIELD_RECT_WIDTH + 3, LCD_HEIGHT - 8, debugout, 0); + lcd_putsxy(FIELD_RECT_WIDTH + 3, LCD_HEIGHT - 8, debugout); #endif } @@ -1451,7 +1451,7 @@ static void test_worm_food_collision(void) { collision_count++; } snprintf(buf, sizeof buf, "collisions: %d", collision_count); - lcd_putsxy(0, LCD_HEIGHT -8, buf, 0); + lcd_putsxy(0, LCD_HEIGHT -8, buf); lcd_update(); } if (collision_count != FOOD_SIZE) { @@ -1470,7 +1470,7 @@ static void test_worm_food_collision(void) { collision_count ++; } snprintf(buf, sizeof buf, "collisions: %d", collision_count); - lcd_putsxy(0, LCD_HEIGHT -8, buf, 0); + lcd_putsxy(0, LCD_HEIGHT -8, buf); lcd_update(); } if (collision_count != FOOD_SIZE * 2) { @@ -1518,7 +1518,7 @@ static void test_worm_argh_collision(void) { collision_count ++; } snprintf(buf, sizeof buf, "collisions: %d", collision_count); - lcd_putsxy(0, LCD_HEIGHT -8, buf, 0); + lcd_putsxy(0, LCD_HEIGHT -8, buf); lcd_update(); } if (collision_count != ARGH_SIZE * 2) { @@ -1535,7 +1535,7 @@ static void test_worm_argh_collision(void) { collision_count ++; } snprintf(buf, sizeof buf, "collisions: %d", collision_count); - lcd_putsxy(0, LCD_HEIGHT -8, buf, 0); + lcd_putsxy(0, LCD_HEIGHT -8, buf); lcd_update(); } if (collision_count != ARGH_SIZE * 4) { @@ -1562,7 +1562,7 @@ static int testline_in_rect(void) { lcd_drawrect(rx, ry, rw, rh); lcd_drawline(x1, y1, x2, y2); lcd_update(); - lcd_putsxy(0, 0, "failed 1", 0); + lcd_putsxy(0, 0, "failed 1"); button_get(true); testfailed = 1; } @@ -1573,7 +1573,7 @@ static int testline_in_rect(void) { !line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh)) { lcd_drawrect(rx, ry, rw, rh); lcd_drawline(x1, y1, x2, y2); - lcd_putsxy(0, 0, "failed 2", 0); + lcd_putsxy(0, 0, "failed 2"); lcd_update(); button_get(true); testfailed = 2; @@ -1585,7 +1585,7 @@ static int testline_in_rect(void) { !line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh)) { lcd_drawrect(rx, ry, rw, rh); lcd_drawline(x1, y1, x2, y2); - lcd_putsxy(0, 0, "failed 3", 0); + lcd_putsxy(0, 0, "failed 3"); lcd_update(); button_get(true); testfailed = 3; @@ -1597,7 +1597,7 @@ static int testline_in_rect(void) { !line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh)) { lcd_drawrect(rx, ry, rw, rh); lcd_drawline(x1, y1, x2, y2); - lcd_putsxy(0, 0, "failed 4", 0); + lcd_putsxy(0, 0, "failed 4"); lcd_update(); button_get(true); testfailed = 4; @@ -1609,7 +1609,7 @@ static int testline_in_rect(void) { line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh)) { lcd_drawrect(rx, ry, rw, rh); lcd_drawline(x1, y1, x2, y2); - lcd_putsxy(0, 0, "failed 5", 0); + lcd_putsxy(0, 0, "failed 5"); lcd_update(); button_get(true); testfailed = 5; @@ -1622,7 +1622,7 @@ static int testline_in_rect(void) { line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh)) { lcd_drawrect(rx, ry, rw, rh); lcd_drawline(x1, y1, x2, y2); - lcd_putsxy(0, 0, "failed 6", 0); + lcd_putsxy(0, 0, "failed 6"); lcd_update(); button_get(true); testfailed = 6; @@ -1637,7 +1637,7 @@ static int testline_in_rect(void) { !line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh)) { lcd_drawrect(rx, ry, rw, rh); lcd_drawline(x1, y1, x2, y2); - lcd_putsxy(0, 0, "failed 7", 0); + lcd_putsxy(0, 0, "failed 7"); lcd_update(); button_get(true); testfailed = 7; @@ -1649,7 +1649,7 @@ static int testline_in_rect(void) { !line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh)) { lcd_drawrect(rx, ry, rw, rh); lcd_drawline(x1, y1, x2, y2); - lcd_putsxy(0, 0, "failed 8", 0); + lcd_putsxy(0, 0, "failed 8"); lcd_update(); button_get(true); testfailed = 8; @@ -1661,7 +1661,7 @@ static int testline_in_rect(void) { !line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh)) { lcd_drawrect(rx, ry, rw, rh); lcd_drawline(x1, y1, x2, y2); - lcd_putsxy(0, 0, "failed 9", 0); + lcd_putsxy(0, 0, "failed 9"); lcd_update(); button_get(true); testfailed = 9; @@ -1673,7 +1673,7 @@ static int testline_in_rect(void) { !line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh)) { lcd_drawrect(rx, ry, rw, rh); lcd_drawline(x1, y1, x2, y2); - lcd_putsxy(0, 0, "failed 10", 0); + lcd_putsxy(0, 0, "failed 10"); lcd_update(); button_get(true); testfailed = 10; @@ -1685,7 +1685,7 @@ static int testline_in_rect(void) { line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh)) { lcd_drawrect(rx, ry, rw, rh); lcd_drawline(x1, y1, x2, y2); - lcd_putsxy(0, 0, "failed 11", 0); + lcd_putsxy(0, 0, "failed 11"); lcd_update(); button_get(true); testfailed = 11; @@ -1698,7 +1698,7 @@ static int testline_in_rect(void) { line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh)) { lcd_drawrect(rx, ry, rw, rh); lcd_drawline(x1, y1, x2, y2); - lcd_putsxy(0, 0, "failed 12", 0); + lcd_putsxy(0, 0, "failed 12"); lcd_update(); button_get(true); testfailed = 12; @@ -1715,10 +1715,10 @@ static int testline_in_rect(void) { x2 = 10; y2 = 20; if (!(line_in_rect(x1, y1, x2, y2, rx, ry, rw, rh) && - line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh))) { + line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh))) { lcd_drawrect(rx, ry, rw, rh); lcd_drawline(x1, y1, x2, y2); - lcd_putsxy(0, 0, "failed 13", 0); + lcd_putsxy(0, 0, "failed 13"); lcd_update(); button_get(true); testfailed = 13; @@ -1735,10 +1735,10 @@ static int testline_in_rect(void) { x2 = 10; y2 = 19; if (!(line_in_rect(x1, y1, x2, y2, rx, ry, rw, rh) && - line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh))) { + line_in_rect(x2, y2, x1, y1, rx, ry, rw, rh))) { lcd_drawline(x1, y1, x2, y2); lcd_invertrect(rx, ry, rw, rh); - lcd_putsxy(0, 0, "failed 14", 0); + lcd_putsxy(0, 0, "failed 14"); lcd_update(); button_get(true); testfailed = 14; @@ -1780,7 +1780,7 @@ static int test_specific_worm_collision(void) { } lcd_invertpixel(x + FIELD_RECT_X, y + FIELD_RECT_Y); snprintf(buf, sizeof buf, "collisions %d", collisions); - lcd_putsxy(0, LCD_HEIGHT - 8, buf, 0); + lcd_putsxy(0, LCD_HEIGHT - 8, buf); lcd_update(); } } @@ -1837,7 +1837,7 @@ static void test_make_argh(void){ } snprintf(buf, sizeof buf, "(%d;%d) fail%d try%d", x, y, failures, tries); - lcd_putsxy(0, LCD_HEIGHT - 8, buf, 0); + lcd_putsxy(0, LCD_HEIGHT - 8, buf); lcd_update(); lcd_invertrect(x + FIELD_RECT_X, y+ FIELD_RECT_Y, ARGH_SIZE, ARGH_SIZE); lcd_update(); @@ -1875,7 +1875,7 @@ static void test_worm_argh_collision_in_moves(void) { hit_count ++; } snprintf(buf, sizeof buf, "in 5 moves hits: %d", hit_count); - lcd_putsxy(0, LCD_HEIGHT - 8, buf, 0); + lcd_putsxy(0, LCD_HEIGHT - 8, buf); lcd_update(); } if (hit_count != ARGH_SIZE + 5) { diff --git a/apps/screens.c b/apps/screens.c index 04870d1f1a..29888ff358 100644 --- a/apps/screens.c +++ b/apps/screens.c @@ -62,24 +62,24 @@ int on_screen(void) lcd_clear_display(); ptr = str(LANG_PITCH_UP); - lcd_getstringsize(ptr,FONT_UI,&w,&h); - lcd_putsxy((LCD_WIDTH-w)/2, 0, ptr, FONT_UI); + lcd_getstringsize(ptr,&w,&h); + lcd_putsxy((LCD_WIDTH-w)/2, 0, ptr); lcd_bitmap(bitmap_icons_7x8[Icon_UpArrow], LCD_WIDTH/2 - 3, h*2, 7, 8, true); snprintf(buf, sizeof buf, "%d%%", pitch); - lcd_getstringsize(buf,FONT_UI,&w,&h); - lcd_putsxy((LCD_WIDTH-w)/2, h, buf, FONT_UI); + lcd_getstringsize(buf,&w,&h); + lcd_putsxy((LCD_WIDTH-w)/2, h, buf); ptr = str(LANG_PITCH_DOWN); - lcd_getstringsize(ptr,FONT_UI,&w,&h); - lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, ptr, FONT_UI); + lcd_getstringsize(ptr,&w,&h); + lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, ptr); lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow], LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true); ptr = str(LANG_PAUSE); - lcd_getstringsize(ptr,FONT_UI,&w,&h); - lcd_putsxy((LCD_WIDTH-(w/2))/2, LCD_HEIGHT/2 - h/2, ptr, FONT_UI); + lcd_getstringsize(ptr,&w,&h); + lcd_putsxy((LCD_WIDTH-(w/2))/2, LCD_HEIGHT/2 - h/2, ptr); lcd_bitmap(bitmap_icons_7x8[Icon_Pause], (LCD_WIDTH-(w/2))/2-10, LCD_HEIGHT/2 - h/2, 7, 8, true); @@ -162,18 +162,18 @@ bool f2_screen(void) char buf[32]; /* Get the font height */ - lcd_getstringsize("A",FONT_UI,&w,&h); + lcd_getstringsize("A",&w,&h); lcd_stop_scroll(); while (!exit) { lcd_clear_display(); - lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_SHUFFLE), FONT_UI); - lcd_putsxy(0, LCD_HEIGHT/2 - h, str(LANG_F2_MODE), FONT_UI); + lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_SHUFFLE)); + lcd_putsxy(0, LCD_HEIGHT/2 - h, str(LANG_F2_MODE)); lcd_putsxy(0, LCD_HEIGHT/2, global_settings.playlist_shuffle ? - str(LANG_ON) : str(LANG_OFF), FONT_UI); + str(LANG_ON) : str(LANG_OFF)); lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward], LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); @@ -181,8 +181,8 @@ bool f2_screen(void) global_settings.mp3filter ? str(LANG_ON) : str(LANG_OFF)); /* Get the string width and height */ - lcd_getstringsize(buf,FONT_UI,&w,&h); - lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, buf, FONT_UI); + lcd_getstringsize(buf,&w,&h); + lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, buf); lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow], LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true); @@ -236,20 +236,20 @@ bool f3_screen(void) char* ptr; ptr = str(LANG_F3_STATUS); - lcd_getstringsize(ptr,FONT_UI,&w,&h); + lcd_getstringsize(ptr,&w,&h); lcd_clear_display(); - lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_F3_SCROLL), FONT_UI); - lcd_putsxy(0, LCD_HEIGHT/2 - h, str(LANG_F3_BAR), FONT_UI); + lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_F3_SCROLL)); + lcd_putsxy(0, LCD_HEIGHT/2 - h, str(LANG_F3_BAR)); lcd_putsxy(0, LCD_HEIGHT/2, - global_settings.scrollbar ? str(LANG_ON) : str(LANG_OFF), FONT_UI); + global_settings.scrollbar ? str(LANG_ON) : str(LANG_OFF)); lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward], LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); - lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2, ptr, FONT_UI); - lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, str(LANG_F3_BAR), FONT_UI); + lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2, ptr); + lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, str(LANG_F3_BAR)); lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2, - global_settings.statusbar ? str(LANG_ON) : str(LANG_OFF), FONT_UI); + global_settings.statusbar ? str(LANG_ON) : str(LANG_OFF)); lcd_bitmap(bitmap_icons_7x8[Icon_FastForward], LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true); lcd_update(); @@ -288,5 +288,3 @@ bool f3_screen(void) return false; } #endif - - diff --git a/apps/settings.c b/apps/settings.c index 025a911557..673bca70d1 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -866,33 +866,33 @@ bool set_time(char* string, int timedate[]) lcd_puts(0, 1, buffer); /* recalculate the positions and offsets */ - lcd_getstringsize(string, FONT_UI, &width, &prev_line_height); - lcd_getstringsize(buffer, FONT_UI, &width, &line_height); - lcd_getstringsize(":", FONT_UI, &separator_width, &height); + lcd_getstringsize(string, &width, &prev_line_height); + lcd_getstringsize(buffer, &width, &line_height); + lcd_getstringsize(":", &separator_width, &height); strncpy(reffub, buffer, 2); reffub[2] = '\0'; - lcd_getstringsize(reffub, FONT_UI, &width, &height); + lcd_getstringsize(reffub, &width, &height); cursor[0][INDEX_X] = 0; cursor[0][INDEX_Y] = prev_line_height; cursor[0][INDEX_WIDTH] = width; strncpy(reffub, buffer + 3, 2); reffub[2] = '\0'; - lcd_getstringsize(reffub, FONT_UI, &width, &height); + lcd_getstringsize(reffub, &width, &height); cursor[1][INDEX_X] = cursor[0][INDEX_WIDTH] + separator_width; cursor[1][INDEX_Y] = prev_line_height; cursor[1][INDEX_WIDTH] = width; strncpy(reffub, buffer + 6, 2); reffub[2] = '\0'; - lcd_getstringsize(reffub, FONT_UI, &width, &height); + lcd_getstringsize(reffub, &width, &height); cursor[2][INDEX_X] = cursor[0][INDEX_WIDTH] + separator_width + cursor[1][INDEX_WIDTH] + separator_width; cursor[2][INDEX_Y] = prev_line_height; cursor[2][INDEX_WIDTH] = width; - lcd_getstringsize(buffer, FONT_UI, &width, &prev_line_height); + lcd_getstringsize(buffer, &width, &prev_line_height); snprintf(buffer, sizeof(buffer), "%s 20%02d %s %02d ", dayname[timedate[6]], @@ -902,22 +902,22 @@ bool set_time(char* string, int timedate[]) lcd_puts(0, 2, buffer); /* recalculate the positions and offsets */ - lcd_getstringsize(buffer, FONT_UI, &width, &line_height); + lcd_getstringsize(buffer, &width, &line_height); strncpy(reffub, buffer, 3); reffub[3] = '\0'; - lcd_getstringsize(reffub, FONT_UI, &weekday_width, &height); - lcd_getstringsize(" ", FONT_UI, &separator_width, &height); + lcd_getstringsize(reffub, &weekday_width, &height); + lcd_getstringsize(" ", &separator_width, &height); strncpy(reffub, buffer + 4, 4); reffub[4] = '\0'; - lcd_getstringsize(reffub, FONT_UI, &width, &height); + lcd_getstringsize(reffub, &width, &height); cursor[3][INDEX_X] = weekday_width + separator_width; cursor[3][INDEX_Y] = cursor[0][INDEX_Y] + prev_line_height; cursor[3][INDEX_WIDTH] = width; strncpy(reffub, buffer + 9, 3); reffub[3] = '\0'; - lcd_getstringsize(reffub, FONT_UI, &width, &height); + lcd_getstringsize(reffub, &width, &height); cursor[4][INDEX_X] = weekday_width + separator_width + cursor[3][INDEX_WIDTH] + separator_width; cursor[4][INDEX_Y] = cursor[0][INDEX_Y] + prev_line_height; @@ -925,7 +925,7 @@ bool set_time(char* string, int timedate[]) strncpy(reffub, buffer + 13, 2); reffub[2] = '\0'; - lcd_getstringsize(reffub, FONT_UI, &width, &height); + lcd_getstringsize(reffub, &width, &height); cursor[5][INDEX_X] = weekday_width + separator_width + cursor[3][INDEX_WIDTH] + separator_width + cursor[4][INDEX_WIDTH] + separator_width; diff --git a/apps/tree.c b/apps/tree.c index ce27f7b235..3aba7fa3b4 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -193,7 +193,8 @@ static int showdir(char *path, int start) #ifdef HAVE_LCD_BITMAP int line_height = LINE_HEIGTH; int fw, fh; - lcd_getfontsize(FONT_UI, &fw, &fh); + lcd_setfont(FONT_UI); + lcd_getstringsize("A", &fw, &fh); tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh; line_height = fh; #else @@ -591,7 +592,7 @@ bool dirbrowse(char *root) bool lastshowhidden = global_settings.show_hidden_files; #ifdef HAVE_LCD_BITMAP int fw, fh; - lcd_getfontsize(FONT_UI, &fw, &fh); + lcd_getstringsize("A", &fw, &fh); tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh; #else tree_max_on_screen = TREE_MAX_ON_SCREEN; @@ -740,16 +741,14 @@ bool dirbrowse(char *root) lcd_puts(0, 0, str(LANG_LANGUAGE_LOADED)); #else lcd_getstringsize(str(LANG_LANGUAGE_LOADED), - FONT_UI, &fw, &fh); + &fw, &fh); if(fw>LCD_WIDTH) fw=0; else fw=LCD_WIDTH/2 - fw/2; - lcd_putsxy(fw, - LCD_HEIGHT/2 - fh/2, - str(LANG_LANGUAGE_LOADED), - FONT_UI); + lcd_putsxy(fw, LCD_HEIGHT/2 - fh/2, + str(LANG_LANGUAGE_LOADED)); #endif lcd_update(); sleep(HZ); @@ -762,7 +761,7 @@ bool dirbrowse(char *root) snprintf(buf, sizeof buf, "%s/%s", currdir, file->name); font_load(buf); - lcd_getfontsize(FONT_UI, &fw, &fh); + lcd_getstringsize("A", &fw, &fh); tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh; /* make sure cursor is on screen */ while ( dircursor > tree_max_on_screen ) { diff --git a/apps/wps-display.c b/apps/wps-display.c index 98a1d8b632..ec1e9c76e5 100644 --- a/apps/wps-display.c +++ b/apps/wps-display.c @@ -548,7 +548,7 @@ bool wps_refresh(struct mp3entry* id3, int ffwd_offset, bool refresh_all) #else int w,h; int offset = global_settings.statusbar ? STATUSBAR_HEIGHT : 0; - lcd_getstringsize("M",FONT_UI,&w,&h); + lcd_getstringsize("M",&w,&h); slidebar(0, i*h + offset + 1, LCD_WIDTH, 6, (id3->elapsed + ff_rewind_count) * 100 / id3->length, Grow_Right); diff --git a/firmware/drivers/lcd-recorder.c b/firmware/drivers/lcd-recorder.c index 9f86d8f1c4..fee42d9ef4 100644 --- a/firmware/drivers/lcd-recorder.c +++ b/firmware/drivers/lcd-recorder.c @@ -228,17 +228,9 @@ void lcd_setfont(int newfont) curfont = newfont; } -void lcd_getfontsize(int font, int *width, int *height) +int lcd_getstringsize(unsigned char *str, int *w, int *h) { - struct font* pf = font_get(font); - - *width = pf->maxwidth; - *height = pf->height; -} - -int lcd_getstringsize(unsigned char *str, int font, int *w, int *h) -{ - struct font* pf = font_get(font); + struct font* pf = font_get(curfont); int ch; int width = 0; @@ -279,10 +271,10 @@ void lcd_puts(int x, int y, unsigned char *str) if(!str || !str[0]) return; - lcd_getstringsize(str, curfont, &w, &h); + lcd_getstringsize(str, &w, &h); xpos = xmargin + x*w / strlen(str); ypos = ymargin + y*h; - lcd_putsxy( xpos, ypos, str, curfont); + lcd_putsxy(xpos, ypos, str); lcd_clearrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h); #if defined(SIMULATOR) && defined(HAVE_LCD_CHARCELLS) @@ -293,10 +285,10 @@ void lcd_puts(int x, int y, unsigned char *str) } /* put a string at a given pixel position */ -void lcd_putsxy(int x, int y, unsigned char *str, int font) +void lcd_putsxy(int x, int y, unsigned char *str) { int ch; - struct font* pf = font_get(font); + struct font* pf = font_get(curfont); while (((ch = *str++) != '\0')) { bitmap_t *bits; @@ -645,15 +637,14 @@ void lcd_puts_scroll(int x, int y, unsigned char* string ) struct scrollinfo* s = &scroll; unsigned char ch[2]; int w, h; - int width, height; - lcd_getfontsize(curfont, &width, &height); + int width; ch[1] = 0; /* zero terminate */ ch[0] = string[0]; width = 0; s->space = 0; while ( ch[0] && - (width + lcd_getstringsize(ch, curfont, &w, &h) < + (width + lcd_getstringsize(ch, &w, &h) < (LCD_WIDTH - x*8))) { width += w; s->space++; @@ -664,7 +655,7 @@ void lcd_puts_scroll(int x, int y, unsigned char* string ) s->textlen = strlen(string); s->space += 2; - lcd_getstringsize(string,curfont,&w,&h); + lcd_getstringsize(string,&w,&h); if ( w > LCD_WIDTH - xmargin ) { s->offset=s->space; s->startx=x; @@ -688,7 +679,7 @@ void lcd_stop_scroll(void) struct scrollinfo* s = &scroll; scroll_count = 0; - lcd_getstringsize( s->text, FONT_UI, &w, &h); + lcd_getstringsize( s->text, &w, &h); lcd_clearrect(xmargin + s->startx*w/s->textlen, ymargin + s->starty*h, LCD_WIDTH - xmargin, @@ -745,7 +736,7 @@ static void scroll_thread(void) s->offset = 0; } - lcd_getstringsize( s->text, FONT_UI, &w, &h); + lcd_getstringsize( s->text, &w, &h); lcd_clearrect(xmargin + s->startx*w/s->textlen, ymargin + s->starty*h, LCD_WIDTH - xmargin, diff --git a/firmware/drivers/lcd.h b/firmware/drivers/lcd.h index 76e38375e4..32f636059c 100644 --- a/firmware/drivers/lcd.h +++ b/firmware/drivers/lcd.h @@ -117,11 +117,10 @@ extern void lcd_invertpixel(int x, int y); extern void lcd_roll(int pixels); extern void lcd_setfont(int font); -extern void lcd_getfontsize(int font, int *width, int *height); -extern void lcd_putsxy(int x, int y, unsigned char *string, int font); +extern void lcd_putsxy(int x, int y, unsigned char *string); +extern int lcd_getstringsize(unsigned char *str, int *w, int *h); #endif /* CHARCELLS / BITMAP */ -extern int lcd_getstringsize(unsigned char *str, int font, int *w, int *h); #endif /* __LCD_H__ */ diff --git a/firmware/panic.c b/firmware/panic.c index 10ff454c40..fefde2eb34 100644 --- a/firmware/panic.c +++ b/firmware/panic.c @@ -50,8 +50,8 @@ void panicf( char *fmt, ...) #elif defined(HAVE_LCD_BITMAP) lcd_clear_display(); - //FIXME putsxy may call panic... - lcd_putsxy(0,0,panic_buf,FONT_SYSFIXED); + lcd_setfont(FONT_SYSFIXED); + lcd_putsxy(0,0,panic_buf); lcd_update(); #else diff --git a/uisimulator/common/stubs.c b/uisimulator/common/stubs.c index 3360afefa7..3534497e45 100644 --- a/uisimulator/common/stubs.c +++ b/uisimulator/common/stubs.c @@ -98,11 +98,11 @@ void ata_spindown(int s) (void)s; } -Menu simulate_usb(void) +bool simulate_usb(void) { usb_display_info(); while (button_get(true) & BUTTON_REL); - return MENU_OK; + return false; } void lcd_define_pattern (int which,char *pattern,int length) diff --git a/uisimulator/win32/Makefile b/uisimulator/win32/Makefile index 2dc45ebdc5..803cc64fef 100644 --- a/uisimulator/win32/Makefile +++ b/uisimulator/win32/Makefile @@ -72,7 +72,7 @@ APPS = main.c tree.c menu.c credits.c main_menu.c icons.c language.c \ MENUS = games_menu.c demo_menu.c settings_menu.c sound_menu.c ifeq ($(DISPLAY),-DHAVE_LCD_BITMAP) - APPS += snake.c tetris.c sokoban.c bounce.c snow.c bmp.c \ + APPS += tetris.c sokoban.c bounce.c snow.c bmp.c \ widgets.c wormlet.c endif @@ -127,9 +127,6 @@ $(OBJDIR)/icons.o: $(MACHINEDIR)/icons.c $(OBJDIR)/widgets.o: $(RECDIR)/widgets.c $(CC) $(APPCFLAGS) -c $< -o $@ -$(OBJDIR)/snake.o: $(RECDIR)/snake.c - $(CC) $(APPCFLAGS) -c $< -o $@ - $(OBJDIR)/tetris.o: $(RECDIR)/tetris.c $(CC) $(APPCFLAGS) -c $< -o $@ diff --git a/uisimulator/x11/Makefile b/uisimulator/x11/Makefile index fa65130555..abf63cba24 100644 --- a/uisimulator/x11/Makefile +++ b/uisimulator/x11/Makefile @@ -87,7 +87,7 @@ APPS = main.c tree.c menu.c credits.c main_menu.c language.c\ MENUS = games_menu.c demo_menu.c settings_menu.c sound_menu.c ifeq ($(DISPLAY),-DHAVE_LCD_BITMAP) - APPS += tetris.c sokoban.c bounce.c snake.c snow.c bmp.c widgets.c wormlet.c + APPS += tetris.c sokoban.c bounce.c snow.c bmp.c widgets.c wormlet.c endif SRCS = screenhack.c uibasic.c resources.c visual.c lcd-x11.c stubs.c \ @@ -191,9 +191,6 @@ $(OBJDIR)/sokoban.o: $(RECDIR)/sokoban.c $(OBJDIR)/bounce.o: $(RECDIR)/bounce.c $(CC) $(APPCFLAGS) -c $< -o $@ -$(OBJDIR)/snake.o: $(RECDIR)/snake.c - $(CC) $(APPCFLAGS) -c $< -o $@ - $(OBJDIR)/snow.o: $(RECDIR)/snow.c $(CC) $(APPCFLAGS) -c $< -o $@