diff options
Diffstat (limited to 'apps/plugins/mpegplayer/mpegplayer.c')
-rw-r--r-- | apps/plugins/mpegplayer/mpegplayer.c | 195 |
1 files changed, 105 insertions, 90 deletions
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c index b547d36f6a..a41d3b498a 100644 --- a/apps/plugins/mpegplayer/mpegplayer.c +++ b/apps/plugins/mpegplayer/mpegplayer.c | |||
@@ -257,10 +257,8 @@ struct wvs | |||
257 | int height; | 257 | int height; |
258 | unsigned fgcolor; | 258 | unsigned fgcolor; |
259 | unsigned bgcolor; | 259 | unsigned bgcolor; |
260 | #ifdef HAVE_LCD_COLOR | ||
261 | unsigned prog_fillcolor; | 260 | unsigned prog_fillcolor; |
262 | struct vo_rect update_rect; | 261 | struct vo_rect update_rect; |
263 | #endif | ||
264 | struct vo_rect prog_rect; | 262 | struct vo_rect prog_rect; |
265 | struct vo_rect time_rect; | 263 | struct vo_rect time_rect; |
266 | struct vo_rect dur_rect; | 264 | struct vo_rect dur_rect; |
@@ -310,16 +308,21 @@ static unsigned draw_blendcolor(unsigned c1, unsigned c2, unsigned char amount) | |||
310 | /* Drawing functions that operate rotated on LCD_PORTRAIT displays - | 308 | /* Drawing functions that operate rotated on LCD_PORTRAIT displays - |
311 | * most are just wrappers of lcd_* functions with transforms applied. | 309 | * most are just wrappers of lcd_* functions with transforms applied. |
312 | * The origin is the upper-left corner of the WVS area */ | 310 | * The origin is the upper-left corner of the WVS area */ |
313 | #ifdef HAVE_LCD_COLOR | ||
314 | static void draw_update_rect(int x, int y, int width, int height) | 311 | static void draw_update_rect(int x, int y, int width, int height) |
315 | { | 312 | { |
316 | rb->lcd_update_rect(_X, _Y, _W, _H); | 313 | lcd_(update_rect)(_X, _Y, _W, _H); |
317 | } | 314 | } |
318 | #endif | ||
319 | 315 | ||
320 | static void draw_clear_area(int x, int y, int width, int height) | 316 | static void draw_clear_area(int x, int y, int width, int height) |
321 | { | 317 | { |
318 | #ifdef HAVE_LCD_COLOR | ||
322 | rb->screen_clear_area(rb->screens[SCREEN_MAIN], _X, _Y, _W, _H); | 319 | rb->screen_clear_area(rb->screens[SCREEN_MAIN], _X, _Y, _W, _H); |
320 | #else | ||
321 | int oldmode = grey_get_drawmode(); | ||
322 | grey_set_drawmode(DRMODE_SOLID | DRMODE_INVERSEVID); | ||
323 | grey_fillrect(_X, _Y, _W, _H); | ||
324 | grey_set_drawmode(oldmode); | ||
325 | #endif | ||
323 | } | 326 | } |
324 | 327 | ||
325 | static void draw_clear_area_rect(const struct vo_rect *rc) | 328 | static void draw_clear_area_rect(const struct vo_rect *rc) |
@@ -328,48 +331,69 @@ static void draw_clear_area_rect(const struct vo_rect *rc) | |||
328 | int y = rc->t; | 331 | int y = rc->t; |
329 | int width = rc->r - rc->l; | 332 | int width = rc->r - rc->l; |
330 | int height = rc->b - rc->t; | 333 | int height = rc->b - rc->t; |
334 | #ifdef HAVE_LCD_COLOR | ||
331 | rb->screen_clear_area(rb->screens[SCREEN_MAIN], _X, _Y, _W, _H); | 335 | rb->screen_clear_area(rb->screens[SCREEN_MAIN], _X, _Y, _W, _H); |
336 | #else | ||
337 | int oldmode = grey_get_drawmode(); | ||
338 | grey_set_drawmode(DRMODE_SOLID | DRMODE_INVERSEVID); | ||
339 | grey_fillrect(_X, _Y, _W, _H); | ||
340 | grey_set_drawmode(oldmode); | ||
341 | #endif | ||
332 | } | 342 | } |
333 | 343 | ||
334 | static void draw_scrollbar_draw(int x, int y, int width, int height, | 344 | static void draw_fillrect(int x, int y, int width, int height) |
335 | int items, int min_shown, int max_shown) | ||
336 | { | 345 | { |
337 | #ifdef HAVE_LCD_COLOR | 346 | lcd_(fillrect)(_X, _Y, _W, _H); |
338 | int oldbg = rb->lcd_get_background(); | 347 | } |
339 | rb->lcd_set_background(wvs.prog_fillcolor); | ||
340 | #endif | ||
341 | 348 | ||
342 | rb->gui_scrollbar_draw(rb->screens[SCREEN_MAIN], _X, _Y, | 349 | static void draw_hline(int x1, int x2, int y) |
343 | _W, _H, items, min_shown, max_shown, | 350 | { |
344 | 0 | ||
345 | #ifdef LCD_LANDSCAPE | 351 | #ifdef LCD_LANDSCAPE |
346 | | HORIZONTAL | 352 | lcd_(hline)(x1 + wvs.x, x2 + wvs.x, y + wvs.y); |
347 | #endif | 353 | #else |
348 | #ifdef HAVE_LCD_COLOR | 354 | y = LCD_WIDTH - (y + wvs.y) - 1; |
349 | | INNER_BGFILL | FOREGROUND | 355 | lcd_(vline)(y, x1 + wvs.x, x2 + wvs.x); |
350 | #endif | 356 | #endif |
351 | ); | 357 | } |
352 | 358 | ||
353 | #ifdef HAVE_LCD_COLOR | 359 | static void draw_vline(int x, int y1, int y2) |
354 | rb->lcd_set_background(oldbg); | 360 | { |
361 | #ifdef LCD_LANDSCAPE | ||
362 | lcd_(vline)(x + wvs.x, y1 + wvs.y, y2 + wvs.y); | ||
363 | #else | ||
364 | y1 = LCD_WIDTH - (y1 + wvs.y) - 1; | ||
365 | y2 = LCD_WIDTH - (y2 + wvs.y) - 1; | ||
366 | lcd_(hline)(y1, y2, x + wvs.x); | ||
355 | #endif | 367 | #endif |
356 | } | 368 | } |
357 | 369 | ||
358 | static void draw_scrollbar_draw_rect(const struct vo_rect *rc, int items, | 370 | static void draw_scrollbar_draw(int x, int y, int width, int height, |
359 | int min_shown, int max_shown) | 371 | uint32_t min, uint32_t max, uint32_t val) |
360 | { | 372 | { |
361 | draw_scrollbar_draw(rc->l, rc->t, rc->r - rc->l, rc->b - rc->t, | 373 | unsigned oldfg = lcd_(get_foreground)(); |
362 | items, min_shown, max_shown); | 374 | |
375 | draw_hline(x + 1, x + width - 2, y); | ||
376 | draw_hline(x + 1, x + width - 2, y + height - 1); | ||
377 | draw_vline(x, y + 1, y + height - 2); | ||
378 | draw_vline(x + width - 1, y + 1, y + height - 2); | ||
379 | |||
380 | val = muldiv_uint32(width - 2, val, max - min); | ||
381 | val = MIN(val, (uint32_t)(width - 2)); | ||
382 | |||
383 | draw_fillrect(x + 1, y + 1, val, height - 2); | ||
384 | |||
385 | lcd_(set_foreground)(wvs.prog_fillcolor); | ||
386 | |||
387 | draw_fillrect(x + 1 + val, y + 1, width - 2 - val, height - 2); | ||
388 | |||
389 | lcd_(set_foreground)(oldfg); | ||
363 | } | 390 | } |
364 | 391 | ||
365 | static void draw_hline(int x1, int x2, int y) | 392 | static void draw_scrollbar_draw_rect(const struct vo_rect *rc, int min, |
393 | int max, int val) | ||
366 | { | 394 | { |
367 | #ifdef LCD_LANDSCAPE | 395 | draw_scrollbar_draw(rc->l, rc->t, rc->r - rc->l, rc->b - rc->t, |
368 | rb->lcd_hline(x1 + wvs.x, x2 + wvs.x, y + wvs.y); | 396 | min, max, val); |
369 | #else | ||
370 | y = LCD_WIDTH - (y + wvs.y) - 1; | ||
371 | rb->lcd_vline(y, x1 + wvs.x, x2 + wvs.x); | ||
372 | #endif | ||
373 | } | 397 | } |
374 | 398 | ||
375 | #ifdef LCD_PORTRAIT | 399 | #ifdef LCD_PORTRAIT |
@@ -480,18 +504,18 @@ static void draw_oriented_mono_bitmap_part(const unsigned char *src, | |||
480 | int stride, int x, int y, | 504 | int stride, int x, int y, |
481 | int width, int height) | 505 | int width, int height) |
482 | { | 506 | { |
483 | int mode = rb->lcd_get_drawmode(); | 507 | int mode = lcd_(get_drawmode)(); |
484 | rb->lcd_set_drawmode(DRMODE_FG); | 508 | lcd_(set_drawmode)(DRMODE_FG); |
485 | rb->lcd_mono_bitmap_part(src, src_x, src_y, stride, x, y, width, height); | 509 | lcd_(mono_bitmap_part)(src, src_x, src_y, stride, x, y, width, height); |
486 | rb->lcd_set_drawmode(mode); | 510 | lcd_(set_drawmode)(mode); |
487 | } | 511 | } |
488 | 512 | ||
489 | static void draw_putsxy_oriented(int x, int y, const char *str) | 513 | static void draw_putsxy_oriented(int x, int y, const char *str) |
490 | { | 514 | { |
491 | int mode = rb->lcd_get_drawmode(); | 515 | int mode = lcd_(get_drawmode)(); |
492 | rb->lcd_set_drawmode(DRMODE_FG); | 516 | lcd_(set_drawmode)(DRMODE_FG); |
493 | rb->lcd_putsxy(x + wvs.x, y + wvs.y, str); | 517 | lcd_(putsxy)(x + wvs.x, y + wvs.y, str); |
494 | rb->lcd_set_drawmode(mode); | 518 | lcd_(set_drawmode)(mode); |
495 | } | 519 | } |
496 | #endif /* LCD_PORTRAIT */ | 520 | #endif /* LCD_PORTRAIT */ |
497 | 521 | ||
@@ -503,7 +527,7 @@ static void wvs_text_init(void) | |||
503 | int phys; | 527 | int phys; |
504 | int spc_width; | 528 | int spc_width; |
505 | 529 | ||
506 | rb->lcd_setfont(FONT_UI); | 530 | lcd_(setfont)(FONT_UI); |
507 | 531 | ||
508 | wvs.x = 0; | 532 | wvs.x = 0; |
509 | wvs.width = SCREEN_WIDTH; | 533 | wvs.width = SCREEN_WIDTH; |
@@ -515,8 +539,7 @@ static void wvs_text_init(void) | |||
515 | 539 | ||
516 | ts_to_hms(stream_get_duration(), &hms); | 540 | ts_to_hms(stream_get_duration(), &hms); |
517 | hms_format(buf, sizeof (buf), &hms); | 541 | hms_format(buf, sizeof (buf), &hms); |
518 | rb->lcd_getstringsize(buf, &wvs.time_rect.r, | 542 | lcd_(getstringsize)(buf, &wvs.time_rect.r, &wvs.time_rect.b); |
519 | &wvs.time_rect.b); | ||
520 | 543 | ||
521 | /* Choose well-sized bitmap images relative to font height */ | 544 | /* Choose well-sized bitmap images relative to font height */ |
522 | if (wvs.time_rect.b < 12) { | 545 | if (wvs.time_rect.b < 12) { |
@@ -546,8 +569,8 @@ static void wvs_text_init(void) | |||
546 | rb->snprintf(buf, sizeof(buf), "%d%s", phys, | 569 | rb->snprintf(buf, sizeof(buf), "%d%s", phys, |
547 | rb->sound_unit(SOUND_VOLUME)); | 570 | rb->sound_unit(SOUND_VOLUME)); |
548 | 571 | ||
549 | rb->lcd_getstringsize(" ", &spc_width, NULL); | 572 | lcd_(getstringsize)(" ", &spc_width, NULL); |
550 | rb->lcd_getstringsize(buf, &wvs.vol_rect.r, &wvs.vol_rect.b); | 573 | lcd_(getstringsize)(buf, &wvs.vol_rect.r, &wvs.vol_rect.b); |
551 | 574 | ||
552 | wvs.prog_rect.r = SCREEN_WIDTH - WVS_BDR_L - spc_width - | 575 | wvs.prog_rect.r = SCREEN_WIDTH - WVS_BDR_L - spc_width - |
553 | wvs.vol_rect.r - WVS_BDR_R; | 576 | wvs.vol_rect.r - WVS_BDR_R; |
@@ -568,14 +591,12 @@ static void wvs_text_init(void) | |||
568 | wvs.height = WVS_BDR_T + MAX(wvs.prog_rect.b, wvs.vol_rect.b) - | 591 | wvs.height = WVS_BDR_T + MAX(wvs.prog_rect.b, wvs.vol_rect.b) - |
569 | MIN(wvs.time_rect.t, wvs.stat_rect.t) + WVS_BDR_B; | 592 | MIN(wvs.time_rect.t, wvs.stat_rect.t) + WVS_BDR_B; |
570 | 593 | ||
571 | #if LCD_PIXELFORMAT == VERTICAL_PACKING | 594 | #ifdef HAVE_LCD_COLOR |
572 | wvs.height = ALIGN_UP(wvs.height, 8); | ||
573 | #else | ||
574 | wvs.height = ALIGN_UP(wvs.height, 2); | 595 | wvs.height = ALIGN_UP(wvs.height, 2); |
575 | #endif | 596 | #endif |
576 | wvs.y = SCREEN_HEIGHT - wvs.height; | 597 | wvs.y = SCREEN_HEIGHT - wvs.height; |
577 | 598 | ||
578 | rb->lcd_setfont(FONT_SYSFIXED); | 599 | lcd_(setfont)(FONT_SYSFIXED); |
579 | } | 600 | } |
580 | 601 | ||
581 | static void wvs_init(void) | 602 | static void wvs_init(void) |
@@ -589,8 +610,9 @@ static void wvs_init(void) | |||
589 | wvs.fgcolor = LCD_WHITE; | 610 | wvs.fgcolor = LCD_WHITE; |
590 | wvs.prog_fillcolor = LCD_BLACK; | 611 | wvs.prog_fillcolor = LCD_BLACK; |
591 | #else | 612 | #else |
592 | wvs.bgcolor = LCD_LIGHTGRAY; | 613 | wvs.bgcolor = GREY_LIGHTGRAY; |
593 | wvs.fgcolor = LCD_BLACK; | 614 | wvs.fgcolor = GREY_BLACK; |
615 | wvs.prog_fillcolor = GREY_WHITE; | ||
594 | #endif | 616 | #endif |
595 | wvs.curr_time = 0; | 617 | wvs.curr_time = 0; |
596 | wvs.status = WVS_STATUS_STOPPED; | 618 | wvs.status = WVS_STATUS_STOPPED; |
@@ -623,37 +645,39 @@ static void wvs_refresh_background(void) | |||
623 | char buf[32]; | 645 | char buf[32]; |
624 | struct hms hms; | 646 | struct hms hms; |
625 | 647 | ||
626 | int bg = rb->lcd_get_background(); | 648 | unsigned bg = lcd_(get_background)(); |
627 | rb->lcd_set_drawmode(DRMODE_SOLID | DRMODE_INVERSEVID); | 649 | lcd_(set_drawmode)(DRMODE_SOLID | DRMODE_INVERSEVID); |
628 | 650 | ||
629 | #ifdef HAVE_LCD_COLOR | 651 | #ifdef HAVE_LCD_COLOR |
630 | /* Draw a "raised" area for our graphics */ | 652 | /* Draw a "raised" area for our graphics */ |
631 | rb->lcd_set_background(draw_blendcolor(bg, LCD_WHITE, 192)); | 653 | lcd_(set_background)(draw_blendcolor(bg, DRAW_WHITE, 192)); |
632 | draw_hline(0, wvs.width, 0); | 654 | draw_hline(0, wvs.width, 0); |
633 | 655 | ||
634 | rb->lcd_set_background(draw_blendcolor(bg, LCD_WHITE, 80)); | 656 | lcd_(set_background)(draw_blendcolor(bg, DRAW_WHITE, 80)); |
635 | draw_hline(0, wvs.width, 1); | 657 | draw_hline(0, wvs.width, 1); |
636 | 658 | ||
637 | rb->lcd_set_background(draw_blendcolor(bg, LCD_BLACK, 48)); | 659 | lcd_(set_background)(draw_blendcolor(bg, DRAW_BLACK, 48)); |
638 | draw_hline(0, wvs.width, wvs.height-2); | 660 | draw_hline(0, wvs.width, wvs.height-2); |
639 | 661 | ||
640 | rb->lcd_set_background(draw_blendcolor(bg, LCD_BLACK, 128)); | 662 | lcd_(set_background)(draw_blendcolor(bg, DRAW_BLACK, 128)); |
641 | draw_hline(0, wvs.width, wvs.height-1); | 663 | draw_hline(0, wvs.width, wvs.height-1); |
642 | 664 | ||
643 | rb->lcd_set_background(bg); | 665 | lcd_(set_background)(bg); |
644 | draw_clear_area(0, 2, wvs.width, wvs.height - 4); | 666 | draw_clear_area(0, 2, wvs.width, wvs.height - 4); |
645 | |||
646 | vo_rect_set_ext(&wvs.update_rect, 0, 0, wvs.width, wvs.height); | ||
647 | #else | 667 | #else |
648 | /* Give contrast with the main background */ | 668 | /* Give contrast with the main background */ |
649 | rb->lcd_set_background(LCD_DARKGRAY); | 669 | lcd_(set_background)(GREY_WHITE); |
650 | draw_hline(0, wvs.width, 0); | 670 | draw_hline(0, wvs.width, 0); |
651 | 671 | ||
652 | rb->lcd_set_background(bg); | 672 | lcd_(set_background)(GREY_DARKGRAY); |
653 | draw_clear_area(0, 1, wvs.width, wvs.height - 1); | 673 | draw_hline(0, wvs.width, wvs.height-1); |
674 | |||
675 | lcd_(set_background)(bg); | ||
676 | draw_clear_area(0, 1, wvs.width, wvs.height - 2); | ||
654 | #endif | 677 | #endif |
655 | 678 | ||
656 | rb->lcd_set_drawmode(DRMODE_SOLID); | 679 | vo_rect_set_ext(&wvs.update_rect, 0, 0, wvs.width, wvs.height); |
680 | lcd_(set_drawmode)(DRMODE_SOLID); | ||
657 | 681 | ||
658 | if (stream_get_duration() != INVALID_TIMESTAMP) { | 682 | if (stream_get_duration() != INVALID_TIMESTAMP) { |
659 | /* Draw the movie duration */ | 683 | /* Draw the movie duration */ |
@@ -672,7 +696,7 @@ static void wvs_refresh_time(void) | |||
672 | 696 | ||
673 | uint32_t duration = stream_get_duration(); | 697 | uint32_t duration = stream_get_duration(); |
674 | 698 | ||
675 | draw_scrollbar_draw_rect(&wvs.prog_rect, duration, 0, | 699 | draw_scrollbar_draw_rect(&wvs.prog_rect, 0, duration, |
676 | wvs.curr_time); | 700 | wvs.curr_time); |
677 | 701 | ||
678 | ts_to_hms(wvs.curr_time, &hms); | 702 | ts_to_hms(wvs.curr_time, &hms); |
@@ -681,12 +705,10 @@ static void wvs_refresh_time(void) | |||
681 | draw_clear_area_rect(&wvs.time_rect); | 705 | draw_clear_area_rect(&wvs.time_rect); |
682 | draw_putsxy_oriented(wvs.time_rect.l, wvs.time_rect.t, buf); | 706 | draw_putsxy_oriented(wvs.time_rect.l, wvs.time_rect.t, buf); |
683 | 707 | ||
684 | #ifdef HAVE_LCD_COLOR | ||
685 | vo_rect_union(&wvs.update_rect, &wvs.update_rect, | 708 | vo_rect_union(&wvs.update_rect, &wvs.update_rect, |
686 | &wvs.prog_rect); | 709 | &wvs.prog_rect); |
687 | vo_rect_union(&wvs.update_rect, &wvs.update_rect, | 710 | vo_rect_union(&wvs.update_rect, &wvs.update_rect, |
688 | &wvs.time_rect); | 711 | &wvs.time_rect); |
689 | #endif | ||
690 | } | 712 | } |
691 | 713 | ||
692 | /* Refresh the volume display area */ | 714 | /* Refresh the volume display area */ |
@@ -699,15 +721,13 @@ static void wvs_refresh_volume(void) | |||
699 | rb->snprintf(buf, sizeof (buf), "%d%s", | 721 | rb->snprintf(buf, sizeof (buf), "%d%s", |
700 | rb->sound_val2phys(SOUND_VOLUME, volume), | 722 | rb->sound_val2phys(SOUND_VOLUME, volume), |
701 | rb->sound_unit(SOUND_VOLUME)); | 723 | rb->sound_unit(SOUND_VOLUME)); |
702 | rb->lcd_getstringsize(buf, &width, NULL); | 724 | lcd_(getstringsize)(buf, &width, NULL); |
703 | 725 | ||
704 | /* Right-justified */ | 726 | /* Right-justified */ |
705 | draw_clear_area_rect(&wvs.vol_rect); | 727 | draw_clear_area_rect(&wvs.vol_rect); |
706 | draw_putsxy_oriented(wvs.vol_rect.r - width, wvs.vol_rect.t, buf); | 728 | draw_putsxy_oriented(wvs.vol_rect.r - width, wvs.vol_rect.t, buf); |
707 | 729 | ||
708 | #ifdef HAVE_LCD_COLOR | ||
709 | vo_rect_union(&wvs.update_rect, &wvs.update_rect, &wvs.vol_rect); | 730 | vo_rect_union(&wvs.update_rect, &wvs.update_rect, &wvs.vol_rect); |
710 | #endif | ||
711 | } | 731 | } |
712 | 732 | ||
713 | /* Refresh the status icon */ | 733 | /* Refresh the status icon */ |
@@ -719,11 +739,11 @@ static void wvs_refresh_status(void) | |||
719 | 739 | ||
720 | #ifdef HAVE_LCD_COLOR | 740 | #ifdef HAVE_LCD_COLOR |
721 | /* Draw status icon with a drop shadow */ | 741 | /* Draw status icon with a drop shadow */ |
722 | unsigned oldfg = rb->lcd_get_foreground(); | 742 | unsigned oldfg = lcd_(get_foreground)(); |
723 | int i = 1; | 743 | int i = 1; |
724 | 744 | ||
725 | rb->lcd_set_foreground(draw_blendcolor(rb->lcd_get_background(), | 745 | lcd_(set_foreground)(draw_blendcolor(lcd_(get_background)(), |
726 | LCD_BLACK, 96)); | 746 | DRAW_BLACK, 96)); |
727 | 747 | ||
728 | while (1) | 748 | while (1) |
729 | { | 749 | { |
@@ -738,7 +758,7 @@ static void wvs_refresh_status(void) | |||
738 | if (--i < 0) | 758 | if (--i < 0) |
739 | break; | 759 | break; |
740 | 760 | ||
741 | rb->lcd_set_foreground(oldfg); | 761 | lcd_(set_foreground)(oldfg); |
742 | } | 762 | } |
743 | 763 | ||
744 | vo_rect_union(&wvs.update_rect, &wvs.update_rect, &wvs.stat_rect); | 764 | vo_rect_union(&wvs.update_rect, &wvs.update_rect, &wvs.stat_rect); |
@@ -750,6 +770,7 @@ static void wvs_refresh_status(void) | |||
750 | wvs.stat_rect.l + wvs.x, | 770 | wvs.stat_rect.l + wvs.x, |
751 | wvs.stat_rect.t + wvs.y, | 771 | wvs.stat_rect.t + wvs.y, |
752 | icon_size, icon_size); | 772 | icon_size, icon_size); |
773 | vo_rect_union(&wvs.update_rect, &wvs.update_rect, &wvs.stat_rect); | ||
753 | #endif | 774 | #endif |
754 | } | 775 | } |
755 | 776 | ||
@@ -859,16 +880,14 @@ static void wvs_refresh(int hint) | |||
859 | 880 | ||
860 | /* Set basic drawing params that are used. Elements that perform variations | 881 | /* Set basic drawing params that are used. Elements that perform variations |
861 | * will restore them. */ | 882 | * will restore them. */ |
862 | oldfg = rb->lcd_get_foreground(); | 883 | oldfg = lcd_(get_foreground)(); |
863 | oldbg = rb->lcd_get_background(); | 884 | oldbg = lcd_(get_background)(); |
864 | 885 | ||
865 | rb->lcd_setfont(FONT_UI); | 886 | lcd_(setfont)(FONT_UI); |
866 | rb->lcd_set_foreground(wvs.fgcolor); | 887 | lcd_(set_foreground)(wvs.fgcolor); |
867 | rb->lcd_set_background(wvs.bgcolor); | 888 | lcd_(set_background)(wvs.bgcolor); |
868 | 889 | ||
869 | #ifdef HAVE_LCD_COLOR | ||
870 | vo_rect_clear(&wvs.update_rect); | 890 | vo_rect_clear(&wvs.update_rect); |
871 | #endif | ||
872 | 891 | ||
873 | if (hint & WVS_REFRESH_BACKGROUND) { | 892 | if (hint & WVS_REFRESH_BACKGROUND) { |
874 | wvs_refresh_background(); | 893 | wvs_refresh_background(); |
@@ -888,11 +907,10 @@ static void wvs_refresh(int hint) | |||
888 | } | 907 | } |
889 | 908 | ||
890 | /* Go back to defaults */ | 909 | /* Go back to defaults */ |
891 | rb->lcd_setfont(FONT_SYSFIXED); | 910 | lcd_(setfont)(FONT_SYSFIXED); |
892 | rb->lcd_set_foreground(oldfg); | 911 | lcd_(set_foreground)(oldfg); |
893 | rb->lcd_set_background(oldbg); | 912 | lcd_(set_background)(oldbg); |
894 | 913 | ||
895 | #ifdef HAVE_LCD_COLOR | ||
896 | /* Update the dirty rectangle */ | 914 | /* Update the dirty rectangle */ |
897 | vo_lock(); | 915 | vo_lock(); |
898 | 916 | ||
@@ -902,10 +920,6 @@ static void wvs_refresh(int hint) | |||
902 | wvs.update_rect.b - wvs.update_rect.t); | 920 | wvs.update_rect.b - wvs.update_rect.t); |
903 | 921 | ||
904 | vo_unlock(); | 922 | vo_unlock(); |
905 | #else | ||
906 | /* Defer update to greylib */ | ||
907 | grey_deferred_lcd_update(); | ||
908 | #endif | ||
909 | } | 923 | } |
910 | 924 | ||
911 | /* Show/Hide the WVS */ | 925 | /* Show/Hide the WVS */ |
@@ -930,7 +944,9 @@ static void wvs_show(unsigned show) | |||
930 | 944 | ||
931 | stream_vo_set_clip(NULL); | 945 | stream_vo_set_clip(NULL); |
932 | 946 | ||
947 | #ifdef HAVE_LCD_COLOR | ||
933 | draw_clear_area(0, 0, wvs.width, wvs.height); | 948 | draw_clear_area(0, 0, wvs.width, wvs.height); |
949 | #endif | ||
934 | 950 | ||
935 | if (!(show & WVS_NODRAW)) { | 951 | if (!(show & WVS_NODRAW)) { |
936 | #ifdef HAVE_LCD_COLOR | 952 | #ifdef HAVE_LCD_COLOR |
@@ -1393,7 +1409,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
1393 | DEBUGF("Could not initialize streams\n"); | 1409 | DEBUGF("Could not initialize streams\n"); |
1394 | } else { | 1410 | } else { |
1395 | rb->splash(0, "Loading..."); | 1411 | rb->splash(0, "Loading..."); |
1396 | |||
1397 | init_settings((char*)parameter); | 1412 | init_settings((char*)parameter); |
1398 | 1413 | ||
1399 | err = stream_open((char *)parameter); | 1414 | err = stream_open((char *)parameter); |