diff options
author | Tomer Shalev <shalev.tomer@gmail.com> | 2009-10-06 08:20:12 +0000 |
---|---|---|
committer | Tomer Shalev <shalev.tomer@gmail.com> | 2009-10-06 08:20:12 +0000 |
commit | fafd18c0f2cae9e47f7def42253ccf4a84bcbc37 (patch) | |
tree | 833506146a3257d1ca7477d14f9729848c66e3f2 | |
parent | a1dfe6441d1fda2eedf492952d6180ebbf96482d (diff) | |
download | rockbox-fafd18c0f2cae9e47f7def42253ccf4a84bcbc37.tar.gz rockbox-fafd18c0f2cae9e47f7def42253ccf4a84bcbc37.zip |
Use pointer to viewport
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22980 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/screens.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/apps/screens.c b/apps/screens.c index 478338de55..5162cc4d14 100644 --- a/apps/screens.c +++ b/apps/screens.c | |||
@@ -544,10 +544,10 @@ bool set_time_screen(const char* title, struct tm *tm) | |||
544 | unsigned int statusbar_height = 0; | 544 | unsigned int statusbar_height = 0; |
545 | unsigned int separator_width, weekday_width; | 545 | unsigned int separator_width, weekday_width; |
546 | unsigned int prev_line_height; | 546 | unsigned int prev_line_height; |
547 | static unsigned char daysinmonth[] = | 547 | static unsigned char daysinmonth[] = |
548 | {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; | 548 | {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; |
549 | unsigned char buffer[20]; | 549 | unsigned char buffer[20]; |
550 | struct viewport vp[NB_SCREENS]; | 550 | struct viewport viewports[NB_SCREENS]; |
551 | int nb_lines; | 551 | int nb_lines; |
552 | 552 | ||
553 | /* 6 possible cursor possitions, 2 values stored for each: x, y */ | 553 | /* 6 possible cursor possitions, 2 values stored for each: x, y */ |
@@ -602,17 +602,19 @@ bool set_time_screen(const char* title, struct tm *tm) | |||
602 | 602 | ||
603 | FOR_NB_SCREENS(s) | 603 | FOR_NB_SCREENS(s) |
604 | { | 604 | { |
605 | viewport_set_defaults(&vp[s], s); | 605 | struct viewport *vp = &viewports[s]; |
606 | screens[s].set_viewport(&vp[s]); | 606 | |
607 | nb_lines = viewport_get_nb_lines(&vp[s]); | 607 | viewport_set_defaults(vp, s); |
608 | 608 | screens[s].set_viewport(vp); | |
609 | nb_lines = viewport_get_nb_lines(vp); | ||
610 | |||
609 | /* minimum lines needed is 2 + title line */ | 611 | /* minimum lines needed is 2 + title line */ |
610 | if (nb_lines < 4) | 612 | if (nb_lines < 4) |
611 | { | 613 | { |
612 | vp[s].font = FONT_SYSFIXED; | 614 | vp->font = FONT_SYSFIXED; |
613 | nb_lines = viewport_get_nb_lines(&vp[s]); | 615 | nb_lines = viewport_get_nb_lines(vp); |
614 | } | 616 | } |
615 | 617 | ||
616 | /* recalculate the positions and offsets */ | 618 | /* recalculate the positions and offsets */ |
617 | if (nb_lines >= 3) | 619 | if (nb_lines >= 3) |
618 | screens[s].getstringsize(title, NULL, &prev_line_height); | 620 | screens[s].getstringsize(title, NULL, &prev_line_height); |
@@ -640,7 +642,7 @@ bool set_time_screen(const char* title, struct tm *tm) | |||
640 | } | 642 | } |
641 | 643 | ||
642 | /* draw the screen */ | 644 | /* draw the screen */ |
643 | screens[s].set_viewport(&vp[s]); | 645 | screens[s].set_viewport(vp); |
644 | screens[s].clear_viewport(); | 646 | screens[s].clear_viewport(); |
645 | /* display the screen title */ | 647 | /* display the screen title */ |
646 | screens[s].puts_scroll(0, 0, title); | 648 | screens[s].puts_scroll(0, 0, title); |
@@ -656,12 +658,12 @@ bool set_time_screen(const char* title, struct tm *tm) | |||
656 | for(i=0; i<6; i++) | 658 | for(i=0; i<6; i++) |
657 | { | 659 | { |
658 | if (cursorpos == (int)i) | 660 | if (cursorpos == (int)i) |
659 | vp[s].drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID); | 661 | vp->drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID); |
660 | 662 | ||
661 | screens[s].putsxy(cursor[i][INDEX_X], | 663 | screens[s].putsxy(cursor[i][INDEX_X], |
662 | cursor[i][INDEX_Y], ptr[i]); | 664 | cursor[i][INDEX_Y], ptr[i]); |
663 | 665 | ||
664 | vp[s].drawmode = DRMODE_SOLID; | 666 | vp->drawmode = DRMODE_SOLID; |
665 | 667 | ||
666 | screens[s].putsxy(cursor[i/4 +1][INDEX_X] - separator_width, | 668 | screens[s].putsxy(cursor[i/4 +1][INDEX_X] - separator_width, |
667 | cursor[0][INDEX_Y], SEPARATOR); | 669 | cursor[0][INDEX_Y], SEPARATOR); |